Part III: Manifestation

Manifestation

“The journey of a thousand miles begins with one step.” - Lao Tzu

The Idea

In the prior sections, we went through some of the challenges ourselves and others had faced as well as the revelations we learned from them. These learnings are the precurser or spark that lead to the beginnings of something we believe to be revolutionary.

These items can be boiled down to the following key motivators:

  • The disconnect between systems and the needs of businesses in the modern era
  • The challenges of silos and inefficiencies they represent
  • The inconsistent view of how product is thought about and structured
  • The eventual revolution of how AI will change the world as we knew it

The above items brewing together and increasing over time like a perfect storm until the clarity emerged.

We sought to re-imagine what people building, supporting, operating, and growing products needed. Could we be everything to everyone? No. But for the 80% we will do our best to fix things.

Here’s what we imagined:

  • A single platform replacing the core functionality of some systems, augmenting others
  • A platform built fully embracing and designed for AI
  • A platform that related everything back to product and customer
  • Integrated with systems to gather events/context (e.g., monitoring alerts, git events, etc.)
  • A modern browser interface
  • Fully integratable with APIs (benefits for both headed and headless modes)

The Tenants

Convergence

We felt the pain of engineering not having access to the support system and context from customer discussions. We felt the pain of product management not having all the context to define and prioritize clearly. We felt the pain of sales reps not having clarity on their customers’ tickets, engineering roadmaps, and the status of items relevant to them. We felt the pain of support not having access to information like customer details and the status of pipeline opportunities. Lastly, we felt the pain of having to ‘ask’ for access or context instead of natively having it in the context of the work.

Why not just give everyone access to everything? Cost All of these have per-seat licensing, so it was not fiscally possible.

Why not just build a ton of integrations to replicate all data everywhere? Opportunity Cost. Integrations take time and each of these would have to be done point-to-point which doesn’t scale and/or work when things change.

We pondered if this was just isolated to us, however, after many discussions with our peers and established corporations; we found it is something that is rampant across many organizations, big and small alike.

Perturbed by this inefficiency and understanding the impact this had on ourselves and others alike, we had enough and knew there had to be a better way, hence the beginnings of what led to DevRev.

We dreamed to enable people to move from the legacy siloed model:

Silos - Legacy

To a converged model where everyone could operate in unison on the shared context:

Silos - Future

Platform-first Thinking

From the inception of our journey, we held a steadfast commitment to extensibility and the future integration of third-party add-ons. This significantly influenced how we approached the design of our services and the manner in which we established interfaces between various elements.

At the heart of DevRev lies a comprehensive platform, housing all the essential components required to construct a robust enterprise system. While we do provide a user-friendly interface through our application, which abstracts many of these underlying APIs; our platform’s versatility shines when utilized in a headless fashion or as part of a hybrid solution. Much like how cloud services (IaaS, PaaS) furnish the building blocks for running diverse workloads, our platform empowers users to develop applications atop its foundation.

During our initial stages, we pondered the foundational building blocks essential for our platform, characterized by the following diagram:

DevRev Platform

Built for AI

With all of the buzz around ChatGPT, LLMs, and AI, everyone is hopping on the bandwagon with “support.” But how much of this is fluff vs. reality?

When we initially thought about the company, AI was a foundational focus for the product. This is why we chose devrev.ai when we registered our domain in 2020 (far before this recent hype).

We aren’t just now hopping on the bandwagon; we’ve been preparing for it.

Domain Name: devrev.ai
Registry Domain ID: 982682_nic_ai
Registry WHOIS Server: whois.nic.ai
Creation Date: 2020-06-07T22:25:10.749Z

At its core, DevRev was built to converge the events, products and people (customers, partners and employees) focused around building, operating, supporting, and growing of products. Through the linkage between these objects, we were able to build a powerful knowledge graph that is used to drive every piece of the system.

With the ability to triangulate across these vertices, we can do some really amazing things and provide much more understanding and insight. This is applicable to not only correlation, or clustering (similarity), but brings the power of AI to things like analytics, trend analysis, and prioritization, as well as many more.

By converging things and having a common context, all teams are using; the goal is to enable them to operate as a much more cohesive unit with much higher efficiency and satisfaction.

The following figure (I know, it’s a lot) shows a real-world example of how we can correlate between product, people (contributors, customers), support, build, opportunities, docs, and a whole plethora of other objects:

DevRev Trails

Ok, but why should I care?

When it comes to making decisions or gathering insight, the more context you have the better the decision you can make. Just think about this in real-world scenarios…

When you buy a car do you just consider the features of the car? No, you consider the features, your finances, practicality, terms, what the spouse will say, etc. When you purchase a product, you consider the need, cost, runway, future needs, etc.

Now, say you want to prioritize which work you should focus on and deliver in the next sprint. You’d need information about other items in-flight, staff workload, customer impact of items, dependent opportunities, and a lot of additional data.

With DevRev, we have the full context and can use that to feed into the models. With the other point systems, you’d need to consolidate somewhere manually or lose valuable context which the models need.

Would you trust something making decisions without full context?

How we embrace

Coming from Nutanix, we saw a lot of customers looking to move from monolithic systems to those of a more scalable, converged nature.

Because we knew AI would be a crucial part of the system, this impacted how we designed our platform. Affecting things like our service design, delivery architecture, change tracking, object model, analytics and almost everything we’ve done in the system; even the way we designed our interface and UX was built to embrace this.

What are some examples of how we architected things differently?

  • We built a badass knowledge graph
    • This is at the core of the DevRev platform and is used by every piece of the system
    • We have defined links between objects which allows us to keep track of various relationships between objects
    • Given this, we are able to easily create graphs of relationships (edges) between objects (nodes)
    • This allows us to triangulate and correlate between items (can also be used in vector DB scenarios)
    • Using this constructed vector DB we can easily cluster objects across various dimensions (we use this to cluster similar events into an incident, for example)
    • We can also triangulate between a customer, product, ticket, issue, and developer allowing us to feed “events” between objects that may be relevant
  • We used a flexible document DB instead of traditional relational systems
    • Using this structure, we have a ton of flexibility in the document structure, the ability to annotate and extend
    • Relational systems can be very rigid and can quickly get messy with a ton of constraints, especially if you haven’t built a ton of abstractions into the data model
    • This was key enabler for the next point (customization)
  • We built customization in from the start
    • We knew extensibility would be key for any platform
    • Given the simplicity of customization, we can easily extend our object model with new annotations or context that can be used and fed into models
    • This means, that a customer or vendor, can easily extend our object model with new data on objects which can be used by models, new object types, or with the output of a model
  • We built multi-tenancy into the object
    • Rather than physically segmenting tenant data, we built tenancy into the objects using specific attributes which act as partitions
    • This allows us to create macro partitions (e.g., customer) or extremely granular partitions (e.g., user level)
    • This gives us a ton of flexibility as all data is in one place and the granularity can range from macro to micro
  • We designed our services for the cloud
    • Being built in the “era of cloud” we had a lot of very nice tools available to us (e.g. K8s, Lambda, edge computing, WASM, etc.)
    • We fully embraced these methodologies allowing us to create a set of very flexible [micro, function, edge]-based services
    • This allows us to rapidly scale resourcing (e.g. scale-up/down) and iterate quickly
    • Also, by leveraging edge logic and WASM (client-side), we can do some really amazing things (more to come here)
  • We are built to iterate quickly
    • AI evolves faster than we can imagine; being able to iterate quickly is quintessential to ensure customers get the value of this evolution
    • Given the granularity of our services, teams can operate with much more autonomy and speed
    • We were also built during the CI/CD era, meaning we have fully continuous integration and delivery. As an example, we deploy hundreds of changes daily
    • With monolithic systems, changing things can be complicated as you need to build things at a much more macro level
    • Also, some vendors who didn’t grow up in the “as a service” era will need to change processes to embrace CI/CD (some may have)
    • A good ask here is how frequently changes are deployed
    • When something new comes out, we can react and enable rapidly; others may be slower to enable, leading to a gap between when something is “available” and “really available”

Most of the available items and concepts we had weren’t even ideas when a majority of the other vendors were created. Having gone through a great deal of platform re-architecture, it is a nightmare (if it works).

This means that those vendors can’t simply “bolt-on” AI, or if they do I would question the efficiency of this.

The “Trinity” (product, people, work)

When examining the realm of business, one encounters several pivotal elements:

  • Products (the offerings that companies create and deliver)
  • People (encompassing both customers and employees)
  • Work (the activities revolving around product development, customer support, and operational tasks)

The existence of companies hinges upon the products they offer to their customers. The presence of customers is essential, for without them, a product lacks viability, and consequently, a company’s existence is jeopardized. Conversely, the absence of a product would leave a company bereft of its customer base.

Work serves as the driving force behind engaging and nurturing customers, providing them with support, and continuously evolving the product. Neglecting the work required to support customers can lead to attrition and churn. Furthermore, failing to invest effort in acquiring, engaging, and nurturing customers hinders a product’s and company’s growth. Lastly, the importance of laboring to build and enhance products cannot be overstated, as it prevents a misalignment between the evolving demands of consumers and the product’s capabilities.

To succeed, businesses must integrate product, people, and work. This synergy ensures products meet customer needs and adapt to future demands, fostering success.

Security

In the realm of security and privacy, they often find themselves relegated to an afterthought rather than integral components of the original product concept. Our past experiences at other organizations underscored the formidable challenges posed by attempting to retrofit elements like role-based access control (RBAC) onto semi-mature platforms. The stark reality is that the longer such considerations are delayed, the more daunting they become, sometimes reaching a point where implementation appears elusive.

Armed with the wisdom from these experiences, we were resolute in our conviction that security must be elevated to the status of a first-class citizen in our development philosophy. Vital facets such as identity, authentication (AuthN), authorization (AuthZ), compliance, and platform security demanded the same level of attention as any other service or component.

Our approach involved a symbiotic design process, orchestrating our authorization platform and object model in unison. This synergistic approach proved immensely potent. Within our object model, we meticulously laid the groundwork, ensuring we possessed the requisite keys to partition and segment data effectively. This profound understanding of the structure empowered us to fashion granular and precise authorization mechanisms. By dedicating upfront effort to this aspect, we’ve endowed our system with authorization capabilities that some mature companies can only envision, including support for role-based access control (RBAC), attribute-based access control (ABAC), policy-based access control (PBAC), field-level security, lease-based access, conditional policies, and more.

From a compliance perspective, our rigorous efforts encompassed adherence to regulations such as SOC2 and ISO-27001. These considerations exerted influence over various facets of our architecture, notably shaping our approach to edge security through our web-application firewall (WAF) and our handling of configuration management.

Even within our internal operations, we wholeheartedly embraced the zero-trust model, recognizing that the human factor often serves as the most susceptible threat vector.

DevRev on DevRev

While it may sound idealistic and somewhat disconnected from reality, we firmly believe that as builders of a product, we should experience its challenges more intensely than anyone else. We are committed to leaving no stone unturned to thoroughly evaluate every aspect of what we deliver to our external customers. In our journey as a product provider, we have fully immersed ourselves in every stage: building, operating, supporting, and growing our product, using our own creation.

However, within this commitment lies a paradox, which also presents an opportunity. We find ourselves in a situation reminiscent of inception, where we are building the very product we use to build our product. We consciously chose not to take shortcuts; instead, we invested the necessary time and effort to develop, implement, and continually refine our tools, ensuring a rigorous and efficient approach to product development.

Through these experiences, we believe it has allowed us to push out a much better product with the right motivations. However, we are not all customers, and not all customers are alike. So while we will continue to run the building, operating, supporting, and growing of our product on our product, we will continually listen to our customers, collaborate with them and partner with them to build something better together.

The Future

Vision

“The greatest danger for most of us is not that our aim is too high and we miss it, but that it is too low and we reach it.” - Michelangelo

In the evolving landscape of technology and human progress, it is our vision and dreams that propel us forward. We must continually strive to elevate our aspirations, to reach for the stars rather than settling for the ordinary. Our journey doesn’t end with the status quo; it thrives on pushing boundaries, imagining the impossible, and pioneering new horizons.

As we look to the future, let us remember that our potential knows no bounds. We are the architects of our destiny, and it is our audacious dreams and unwavering commitment to progress that will lead us to new frontiers. So, let us raise our ambitions, challenge the norm, and together, push the bar higher than ever before, for it is in aiming for the extraordinary that we truly find greatness.

essential