Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Add Code Insights team page #2140

Merged
merged 15 commits into from
Jan 7, 2021
Merged
1 change: 1 addition & 0 deletions company/goals/index.md
Original file line number Diff line number Diff line change
Expand Up @@ -34,6 +34,7 @@ See "[Guidelines for goals](guidelines.md)" for more information about how we ch
### [Search](../../handbook/engineering/search/goals.md#goals)
### [Security](../../handbook/engineering/security/goals.md#goals)
### [Web](../../handbook/engineering/web/goals.md#goals)
### [Code Insights](../../handbook/engineering/code-insights.md#goals)

## [Product](../../handbook/product/goals.md)

Expand Down
71 changes: 71 additions & 0 deletions handbook/engineering/code-insights/index.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,71 @@
# Code insights team

The code insights team will be responsible for building and delivering code insights to engineering leaders, empowering data-driven decisions in engineering organizations.

<img src="./screenshot.svg" alt="Screenshot of a code insights dashboard with graphs" />

## What is code insights?

Code insights is the first feature in Sourcegraph that can tell you things about your code at a **high level**.

Code insights dashboards will answer questions like "How is a migration progressing?", "What areas of the code are most vulnerable to bugs?", and "How many developers are using a specific API?" Code insights will also incorporate third-party data like code coverage or static analysis metrics to deliver on the promise of aggregating everything you can know about your code.

Sourcegraph is in the unique position to give these insights because we have universal code search: to know _anything_ about your code at a high level confidently means you must know _everything_ about your code at a low level.

Code insights connects many features that Sourcegraph already has and builds on top of them.
We go beyond single-step code intelligence and search to connect the full cycle of analyzing (code intelligence), monitoring (code insights), and actionably changing a codebase (campaigns).

Code insights is the first feature primarily built for non-search-based user personas (developers), instead focusing first on the needs of engineering directors and VPs.

For more information about code insights, see the original [product document](https://docs.google.com/document/d/1EHzor6I1GhVVIpl70mH-c10b1tNEl_p1xRMJ9qHQfoc/edit) or this [demo](https://www.youtube.com/watch?v=XqeRb6Mc4Co) of a code insights prototype.

## Goals

**Problem:** Engineers and engineering managers/directors/VPs want to be able to understand their codebase at a high level (which parts of the code base are health/unhealthy? How close are we to removing all instances of a code smell?). Existing tools that just use git data don't answer these questions because they don't look at the code itself, just the pattern of commits. Sourcegraph has all the information needed to answer these questions, but there is currently no way for an engineering leader to get the answer out of Sourcegraph.

**Value to Sourcegraph:** The Sourcegraph sales cycle is unusual because although we consistently wow our users, the economic decision-maker is usually not one of these users. Instead, the people with the power to sign a contract with us are higher up within an organization and usually depend on running a trial to fully understand the value of Sourcegraph. When code insights answers these personas' higher-level questions about codebases that our core features do not currently answer, it can dramatically speed up our sales cycle as well as our sales pipeline by giving decision makers a reason to buy Sourcegraph without needing to run a trial.

**Milestones and Outcomes:**

_Because code insights is an entirely new feature and closely informed by customer feedback, the further in the future goals get, the more flexible the order of these milestones is (especially when it comes to interleaving "business" milestones like beta/GA/paid, with feature milestones, like third-party data or monitoring/campaign integration)._

1. ✅ Three customers give us qualitative feedback after using our code insights prototypes to guide the initial product direction.

- **Outcome:** We have a list of potential features and their likely value that we can use to achieve our initial adoption milestones ([Productboard view](https://sourcegraph.productboard.com/feature-board/2327586-code-insights-next-objective)).

1. 🔄 We have decided on and implemented metrics to quantitatively measure the adoption of code insights prototypes (see [RFC 279](https://docs.google.com/document/d/1I10tm5CFZvzQYNeV--JacRGLLIUesXQBp6ZO8uhakRs/edit#)).

- **Outcome:** We have weekly quantitative reports on the use of code insights at each customer.

1. Code insights can scale to large (if not the largest) codebases.

- **Outcome:** All but the largest customers can use insights prototypes over their entire codebase to answer questions about the state of _all_ of their code.

1. Code insights provides the functionality and positioning to be immediately useful to many customers (this may include integrations with campaigns, code monitoring, or third party data sources – see [Productboard feature view](https://sourcegraph.productboard.com/feature-board/1793095-code-insights)).
Joelkw marked this conversation as resolved.
Show resolved Hide resolved

- **Outcome:** Code insights features are actively in use by VPs/Directors at 5+ enterprise customers.

1. Customers can easily create their own custom insights in an intentionally-designed UI.
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

in an intentionally-designed UI.

What does this mean?

Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I should have said "dedicated UI" for clarity, even if the this milestone's UI form won't be as "dedicated" as something like the campaigns UI yet.

Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

So like a WYSIWYG editor for creating code insights?

Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Sort of, though I don't know what WYSIWYG means when WYS is code and WYG is a visual graph (is Looker/Bigquery what you mean?) because it might still be code-as-UI here. The core of this is "you don't have to go and set it up like a prototype in your settings file" but "there's a UI that we built for this purpose" even if this isn't its final form as we learn about problems or personas who would prefer a different UI.

The simplest first step would be to just pull out the code insights settings code into its own settings-like editor you access somewhere in the UI so you don't get distracted or confused by a busy interface when setting up an insight.


- **Outcome:** Code insights can move from prototype to beta feature (easy to enable or enabled by default, documented, and supported by the CE team rather than the product team).
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Should we have an outcome like "We have at least one customer created code insight that is actively used"?

Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Yep, great thought.


1. Code insights is GA (generally available) for all customers and has low/no barriers to wide adoption.
Joelkw marked this conversation as resolved.
Show resolved Hide resolved

- **Outcome:** Customers communicate to their AE/CE that they use code insights in making engineering decisions.
- **Outcome:** Overall usage of code insights increases as many existing customers start using code insights for the first time.
- **Outcome:** Customers use code insights with limited help from CE in setting them up.

1. Code insights provides enough value to be a paid product.

- **Outcome:** Existing customers buy code insights as its own paid feature.
- **Outcome:** Customers who express explicit interest in the code insights features have a faster sales cycle through our pipeline than our average customer.
- **Outcome:** Code insights is the primary driver behind 5 new enterprise sales.

## Roadmap

Our [roadmap is in Productboard](https://sourcegraph.productboard.com/roadmap/2327428-code-insights-objectives-roadmap). We organize our roadmap by milestone objective rather than feature, because to achieve each milestone we may shift or prioritize features based on further customer feedback or product decisions.

## We're hiring for this team!

We are building the code insights team by hiring [frontend engineers](../hiring/software-engineer-frontend.md) and [backend engineers](../hiring/software-engineer-backend.md). The engineering manager for this team will be [Felix Becker](../../../company/team/index.md#felix-becker) and the product manager will be [Joel Kwartler](../../../company/team/index.md#joel-kwartler-he-him).
New team members will initially contribute work towards code insights under the umbrella of the [web team](../web/index.md) and split off into their own independent team once we have enough team members.
Loading