Alternatives to Flow | Pluralsight
How to build your own data-driven engineering reporting without Flow.
Jul 31, 2017 • 3 Minute Read
Take a look around at virtually every other group in the enterprise—over the past decade, data-driven leadership has transformed them all.
Sales teams use a set of key metrics: sales quotas, average deal size, % close rates. Marketing teams rely on key metrics: average cost-per-click, % click through, target acquisition costs. Finance teams are all about the data: gross margins, cost of goods sold, net margins. Customer service teams lead with data as well: average handle time, time to first response, customer satisfaction.
Even many aspects of software development already use metrics… networking has latency, packet loss, hop count, throughput. Sysops has CPU utilization, swap usage, connection counts, thread counts, etc.
But what key metrics does software engineering use to report on productivity? To be blunt: none.
And that’s a real problem. It’s a problem because it undermines our ability to advocate for corporate resources (e.g. budget). It limits our ability to represent our value to business stakeholders. It makes it hard to play fair.
Relying mostly on gut-feel it makes it hard to avoid favoritism, hidden biases, and uneven expectations. And worst of all, it makes us very vulnerable to the ever-changing political winds of the executive suite.
Flow has pioneered data-driven engineering leadership with codebase analytics, metrics specifically for software development, and a playbook to help teams increase productivity by 20%.
But Flow is not for everyone.
Some engineering managers use their homegrown spreadsheets. And others prefer the flexibility of cobbling together a bespoke solution (regardless of cost to build or maintain).
If you’re in the “we build everything ourselves” camp, we get it — and we want you to succeed. The following is a breakdown of the range of tools and services available to you, so you can identify the data-driven approach that best fits your needs.
Low Level Stats
You can think of these as fun stats and curiosities that poke around the question "Hey what have you been up to lately?”
The lowest level is perfect if you’re curious about basic stats like number of commits or number of lines of code changed per user. You won’t find anything particularly actionable in these, but you may learn a little about your team. Just keep in mind that the industry mostly agrees that counting lines of code is a flawed approach to measuring productivity.
There are a number of open-source packages that generate statistics from GitHub (most notably, GitHub-Stats or Git in general (GitStats, `git - short log`, and `git log -- pretty format`). Some of the stats that you can find by using these include general statistics (total files, lines, etc.), activity calendars (commits by hour of day, day of week, etc.), and a list of authors by their percentage of contributions.
Things to watch out for:
- Limited visibility
- Measuring things that don’t really matter
- Lack of actionable or appropriate reporting for the enterprise
KPIs not immediately accessible in Git
The next level up is when you want to begin using KPIs that are not immediately accessible from Git itself. To go this route, you’ll want to export your git log into Excel, where you can use pivot tables and graphs to visualize specific sets of data.
This may be exactly what you’re looking for if you have a handful of contributors and a single repo. It’s quite feasible if have some curiosity about a few specific data points and you’re dealing with a single repo, a few contributors, and you know how to use `git log`.
Things to watch out for:
- Intensive manual work
- Duplicate authors
- Merge commits
- Complex branching strategies
- Double counting work
- Correctly handling time series data (some engineers work weekends, most don’t)
Enterprise Dashboard Aggregators
The next level of reporting can be found with software like Domo, Tableau, IBM Cognos, Qlik and their competitors in the Business Intelligence space.
They all use the same approach, where you can use plugins from services like Bitbucket, GitHub, JIRA, and put them onto graphs that are specifically designed to look good on a projector.
This is big, heavy, and expensive software that is ideal for creating sophisticated out-of-the-box visualizations, where you have complete granular control of the data stream.
These tools don’t provide domain expertise in software development. Since you can display absolutely anything, you have to know exactly what you're trying to investigate. And you have to know how to use the tool and know a lot about the data so that you're fairly and honestly representing productivity-centric data.
Without industry benchmarks, you’re left without any prescriptive guidance. You may have more information that you did before, but you won’t have smart information.
Things to watch out for:
- Outlier detection
- False positives
- Distorted data from libraries or squashed commits
- How does our team stack up against the industry?
- What do I do with this data and what action should I take?
How does this compare to Flow?
Unlike the other solutions outline above, Flow deeply analyzes data from your codebase and provides a unified view of software development productivity across all teams and repos.
We benchmark this data against millions of commits from similar projects, and generate an extraordinary set of real-time graphs that are understandable and actionable for line managers, executives, and engineers alike.
The end result is a data-driven set of reports to lead with facts instead of feelings, and a proven system to increase your software team’s productivity.
If one of the solutions above works for you, great! But if you’d like to know how Flow can help your team move faster, you can contact us in the live chat and we’d happy to get you started with a free trial.