Launch HN: Okay (YC W20) – Analytics for engineering teams
For the past 12 years, we’ve been engineers and then managers of teams of 5 to 150 in several types of companies - startups and big tech. We’ve seen the dev experience being affected by the same problems everywhere: maybe it’s a slow build on your local machine, too many meetings and interviews, or inefficient code review practices that force you to open 10 PRs in parallel to make progress on a given week. We personally struggled with automated tests suites that would take 4 hours to complete and we saw teammates become so desensitized to heavy oncall load that they would stop complaining and just give up.
We also learned that the discussion about engineering metrics always falls into a false dichotomy: don’t measure anything because engineering is creative work (it is!) or measure engineers in intrusive ways along meaningless dimensions like lines of code. We believe that the way to overcome this false dichotomy is to apply quantitative measurements empathetically, that is, with a clear understanding of the human impacts of what's being measured on the people doing the actual work - for example, by measuring how noisy on-call pages disrupt an engineer’s life after hours. The key is to focus on bottlenecks instead of output, and on the team level rather than on individuals. So we set out to build a product where you can see all the data from all your dev tools, query it, make sense of trends, and build alerts for when things go wrong.
At its core, Okay is an end-to-end analytics platform focused on engineering data. First, we ingest data from tools like Google Calendar, Github, Pagerduty, etc. We join it with the team structure that we find in services like Workday. In addition to pre-built integrations, you can also use a tracing-like API to capture e.g. how long local builds are taking. Then, we clean up and enrich the signal: tagging interviews correctly, rebuilding the full history of a PR as a connected chain of review events, inferring dimensions like tenure (which can e.g. help capture new hire experience). Finally, we expose all this data in a query builder UI that closely maps to the underlying SQL query, and we enable users to choose from visualizations we built specifically for representing engineering work: time series of course, but also calendars (e.g. to understand the life of a PR) or heatmaps (e.g. to identify a painful on-call rotation quickly). The opinionated part of Okay is all in the data modeling we do on behalf of users - we aim to reflect our values (team-based vs individuals) and to retain a lot of expressiveness so that users can ask questions like “what is the code review experience of our new hires in our NYC office compared to the SF office?”.
You can check how Okay works by going to our website (https://www.okayhq.com) or checking our product video (https://www.youtube.com/watch?v=jzzo3m4280k). We don’t have free trials because once you identify bottlenecks and set the right alerts to create new habits, it usually takes several weeks to see the changes happen - we’re talking about humans working together after all, so it does require a little bit of upfront investment. We price based on the number of users and engineers on the team.
If you are interested or have specific questions for your use-case, we’d love to connec...
35 comments
[ 6.0 ms ] story [ 81.7 ms ] threadVery pleased that this is not the case. This is the most thoughtful attempt at software engineering metrics I have seen yet. Especially like the build time tracking because at a prior company, builds took 4 minutes and running the full test suite could take another 6.
We couldn't convince management that this was a problem (multiplied numbers make people suspicious, idk). This would have shown them the hours wasted per year, which would have been far more than the cost of JRebel or installing HotSwap.
I just want to comment on
> We also learned that the discussion about engineering metrics always falls into a false dichotomy: don’t measure anything because engineering is creative work (it is!) or measure engineers in intrusive ways along meaningless dimensions like lines of code.
I think with close to 50 years of doing things wrong with software development metrics, we've left a very bitter taste in the mouths of developers and it is fully understandable that developers would be weary and skeptical of software development metrics. It is certainly one sided and I do agree this false dichotomy needs to be addressed.
When it is all over, if software development metrics is done right (with the emphasis on done right), developers should be the ones advocating for it, since it means:
- They can work more efficiently since software metrics can help them better understand how a piece of code came to be
- Better sell themselves for promotions and raises. For example, they can use it to highlight impact and what it means if they leave. Their manager may know they are a top contributor but if their manager can't sell them, it won't help. With software metrics, manager's should be able to highlight how their developer is having an impact when the raise/promotion pool is divided up.
- And so forth
I honestly think the best way to get everybody onboard with metrics, is to clearly show that it takes effort to generate meaningful insights. And this is why I'm not so much focused on providing canned reports, but rather, I want to provide business intelligence for the software development lifecycle.
The goal (which it sounds like Okay is working towards as well) is to connect all the dots in the software development lifecycle and provide users with the necessary data to make informed decisions. In the business world, we have "business intelligence specialist" because nobody takes for granted how difficult it is to get business insights. And it is truly baffling how we don't have "software development specialist" to help us interpret efficiency and productivity as context matters and not everybody is qualified to interpret development metrics.
Take for example, XKCD 303: https://xkcd.com/303/. Engineers spend so much time waiting on compile, build, and deployment time. It is such a waste of time and resources. These are things that engineers tend to absorb resulting in engineers getting blamed for low velocity.
The other area is on call metrics. Healthy oncall metrics significantly increases engineering QOL.
Agreed. My goal is produce a connected efforts graph that can accurately connect code with effort and time spent (meetings, code reviews, waiting for builds, etc.)
This is why I refer to this as business intelligence for the software development lifecycle. Insights come from data and you can't use traditional BI tools to analyze software development data. If you want to understand effort, you need to be able to slice and dice coding activity which GitHub and traditional BI tools can't do easily or at all.
Take the following for example, if you want to quickly understand the significance of three commits, you can do something like this:
https://public-001.gitsense.com/insights/github/repos?q=comm...
which will stitch together the commits in real-time for analysis. And this is what I ultimately mean by being able to slice and dice software development activity. And how I see thing is, BI for software development activity is both useful for developers and leaders.
Slowness in this processes can certainly frustrate and extend overall timeframes, but surely engineers must be capable of multi-tasking to some degree, and able to do something useful with those minutes between commit and deploy? ;)
I'm considered "extremely high output" in my current position, and I don't really deserve it - I ought to be called "unusually good at coping with our problems" instead.
Congrats on the launch! Looks like an interesting (and more human) approach.
Another example is a manager who noticed that one engineer on their teams was carrying 70% of the PR review load for the team. This was creating a situation where this person was burning out under the review load, but they also assumed that everyone was doing this same amount. We actually see this problem a lot, where people get used to bad situations just out of habit. In this case, the manager re-organized the code review process to make it more fair.
You mention that you're trying to get data from existing tools rather than requiring self-reporting. What are you using to track time spent on local builds?
I'm currently building a service to speed up both local and CI builds. I'd love to talk with you more; my email is in my profile.
I'm interested, but it's unlikely that I'm going to be building teams on either of these platforms in the future, considering how easy these are to host internally now.
The tool looks awesome, exactly the right kind of metrics, without the invasive accounting for every second that others have tried to enforce in the past! Excellent work!
Pricing is hard, it makes total sense to just not publish prices early on.
(At the end of the day it should be a measurable part of the sales funnel, and perhaps should be A/B tested.)
For Okay, I wonder about the hybrid approach. They could have the “startup plan” that has published pricing and self-service signup, and then the “enterprise plan” that requires contacting them for pricing and setup.
* some words are too complicated or seldomly used - "tenure", "runbook" are not words people know here.
* seems like a gdpr nightmare (connecting okay to all kinds of data sources like calendars, repos, etc. You would need legal agreements, in the best case servers in Europe) so yeah, maybe just focus on the US :D
* as a data source in Germany you would definitely need Outlook and Azure DevOps
* upload the product demo on a new YouTube channel. Add a voice-over. Currently it's too fast and I did not understand it.
* I'd prefer a "getokay.com" domain, hq makes no sense, also hard to understand
Try googling for the word “okay”. Now, try googling for the word “google”.
The Chef and Puppet communities have some of this problem themselves, although with Chef you can at least include the original name of the company that created the product.
Imagine if IBM was to launch today, and they chose to name themselves “Machine”. Just how useful would that name actually be? Or if Microsoft launched today, and they chose to call themselves just “Soft”.
It’s not like you can copyright the word “okay”.
Naming is hard. For many reasons. We know that. It is one of only two “hard” problems in computer science, and I submit that it is the only universal “hard” problem.
You need to spend enough time to get this right, and do so before you launch, otherwise you are crippling yourself for the life of the company or product.
With respect, nothing you do with your product or company will make a difference if you don’t have a suitably discoverable and memorable name.