New Year Resolutions (Engineering)
Photo by Dragoș Grigore on Unsplash

New Year Resolutions (Engineering)

There is a very effective way to achieve your goals or targets. Just set a tangible yet ambitious goal for a specific period of time and move toward it by making small progress. Each step at a time.

Software development or any Engineering department management has the same target, but setting and agreeing on common KPI is quite difficult. Each company has it's own KPI metrics for its Engineering team.

There are tons of metrics on how you can measure your team:

  • Velocity and Cycle time
  • Sprint burndown and Commit frequency
  • Release burndown and Cycle time
  • Cumulative flow and Flow efficiency
  • Code coverage by automated tests and Test Automation quota.
  • McCabe Cyclomatic Complexity (MCC) and Legacy Refactoring
  • Commit size and Speed of Review

I have tested almost all of them. Breaking down Engineering Complexity in a simple comprehensive number that you may share among teammates and management is quite a challenge.

Looking at some best performing teams or squads (how we name it nowadays) I recommend to break down all your KPI in two categories.

Output vs Outcome

Example of your output will be a number of lines of code produced to solve a specific problem or frequency your team commits during a sprint. So everything you measure "as you go". I would highly recommend to dumb these metrics form your KPI board.

Focus instead on Outcome - or End result that leads to integral software implementation. An example: E2E Feature delivery with good test coverage. In Accellerate by Kim, Forsgren, and Humble it's described as a Lead Time or time it takes to solve a business request (user story). There are further 3 metrics covered in this book: Deployment Frequency, Change Fail Percentage. Mean Time to Restore (MTTR).

I believe while other metrics could be increased by setting up CI/CD Pipeline and driving healthy level or automation and roll-back procedures. Lead Time is a key metric that covers personal motivation as well as accountability and code ownership.

While I am giving the Lead Time a well deserved winning KPI on Engineering Board there another part that plays an equally important role. Non-Engineering Metrics.

What? Aren't coders' only motivation is coding and testing out with different technologies?

No, it's not and if that's the only motivation than burn out is just around the corner...

Output above Outcome

Non-Engineering Metrics are all about output (not outcome):

  • Regular sleeping hours.
  • Sport, Meditation or any other Body/Mind exercise.
  • Healthy food.
  • Side interest and hobby that gives you joy and enthusiasm.

There are many more. But the key metrics here are fundamentally different from Engineering KPIs. It is outputs above outcomes. You are focusing on the immediate tangible results "as you go" with your outcome might not be visible or immediately achievable. Sometimes for a long period of time. (Losing weight is a good example of an outcome, output here is healthy habits that's you build every day to reach your goal)

My personal Non- Engineering KPIs 2019:

Doing regular pull-ups in order to reach 25 pull-ups at the end of the year. Done!

Do sport at least 4 days per week. Done!

Limit alcohol consumption to only 1 Beer per evening. Done 80% of the times :)

Going to bad in regular hours. Failed!

The new year is a perfect opportunity to set your Engineering and Non-Engineering KPI (Resolutions) and try to make them happened!

What's your best Engineering and non-Engineering KPIs?






To view or add a comment, sign in

Explore content categories