3 lessons engineering should learn from sales and upper management

In today's world, you can't do a whole lot of decision-making without data to back you up. Unless you don't mind wasting your time, that is.

It's true for pretty much every aspect of business. You simply cannot make an informed decision without information to back it up. The sales and upper management worlds understood that truth before their counterparts, and they now have a ton of analytics to back their decision-making.

In view of that, you'd assume that developers must have some pretty deep analytics of their own, right?

Surprisingly, they don't.

Here are some of the ways in which development teams would benefit from sales, and management teams.

1. Start tracking and improving performance based on relevant metrics

I'm talking about bounce rates, conversion rates, click rates, followers, value per visit, return on investment on ads, customer satisfaction, and so on.

Granted, some of those are vanity metrics, but we'll touch on that another day. The point is that they have data upon which to make decisions—data that they can view in a clean and organized manner.

<img style="width: 75%" src="/content/images/2015/02/sales-dashboard.png "alt="sales dashboard">

Having all this data helps them make better decisions. It also helps them validate their hypotheses based on actual numbers as opposed to subjective assessments. Lastly, it keeps teams on the same page and helps them set a common direction.

As developers, we may have a nice toolset, but we have nothing of real value with which to track and measure our performance and objectives.

The irony is that we're the very ones who built those sales and upper management dashboards—dashboards that are now becoming the norm, like Google analytics, Mixpanel, Ducksboard, among many, many more.

2. Become accountable

With numbers out in the open for everyone to see, sales and upper management teams have grown more transparent and, in turn, more accountable. Team members realize how critical it is that their individual goals stay closely aligned with the goals of the team.

Right now, it's as though development teams operate using a black box, to the point where members of a same team don't know what the others are working on. Agile is incredibly helpful in keeping members of a same team aware of how a project is going. Daily stand-up meetings and planning poker are great at empowering developers, but I think we can do even better.

What if we had a nice way to figure out whether:

  • someone's working on too many stories at once
  • a story has been stuck for a couple of days and it hasn't been flagged
  • a story keeps going back and forth between QA and development
  • a certain team member consistently gets his or her stories rejected (maybe we can help)
  • we're spending all our resources on bugs

Not to mention getting insights on code quality and code coverage.

3. Make things easier for decision-makers

According to this article:

Microsoft Corp. chief executive officer (CEO) Satya Nadella has an online dashboard that he looks at every day—one for each of his executive staff with real-time graphs and data on everything from financial performance to product usage.

For most, this is something that's easily achievable, as they already measure their work and know if they're improving based on clear objectives shared by the whole department. It's extremely valuable for a company to be able to understand if a department is doing well or not. However it's still hard to ascertain whether the software team is improving and becoming more efficient or gradually slowing down and wasting money.

As Martin Fowler puts it in this post:

We see so much emotional discussion about software process, design practices and the like. Many of these arguments are impossible to resolve because the software industry lacks the ability to measure some of the basic elements of the effectiveness of software development. In particular we have no way of reasonably measuring productivity.

So what's keeping engineers from doing this already?

It could simply be that it's very hard to track. It's a lot easier to track the number of visits on your website than it is to track the average time it takes to close an issue, predict the release date of a feature, or determine who needs help at any given time.

But we do need to improve, so one way or another, we need this kind of data. Some visionary teams are building those dashboards themselves, even if they're spending valuable time on something that isn't directly part of the product. They realize the value of transparency and they know they'll recover that money by building a better product or by becoming better developers.

In addition to the development cost, those teams struggle with having an unfinished solution, and end up allocating more time and money to maintain it. It isn't long before most teams get bored and stop using their homemade solutions.

What's the solution?

Insight's dashboard is our way of making a first step towards a solution. And we build this dashboard on top of Pivotal Tracker to make it effortless for agile teams to get the metrics they need to succeed.

<img style="width: 75%" src="/content/images/2015/02/dev-dashboard.png"alt=" Agile development dashboard">

This is just a beginning. We must bring transparency to the field of software development. As professionals, we need to keep getting better at what we do each and every day. Let's design ourselves a clear white box. We're certainly able to do that. After all, we are the masterminds behind all the analytics that are driving performance for sales, and upper management teams.