2 min read

Want to improve your team’s performance? Make things simpler!

Want to improve your team’s performance? Make things simpler!

It happens more than you’d expect or hope for. The effort spent on developing a product feature takes much longer than you’d expect. A conversation with the developers leads to a reasonable explanation: “Before we can start with ABC, we need to DEF because of GHI …”. While this explanation is completely valid within the working paradigm of the team, it is killing performance.

Simplify essential complexity; diminish accidental complexity

The only way to get out of this catch-22 is to simplify the overall complexity of the way the team works. Easier said than done, so below you find some practical simplifications I find worth trying. Not all of them are possible overnight, the ordering may be a starting point for your simplification journey. 

  • Squeeze the grey zone. Tasks in the grey zones are “under investigation”, “ready to test”, and “maybe worth investigating”, … No developer can focus on it to get it over and done, but these tasks will pop-up so now and then to claim attention. As a team, get rid of these tasks as soon as you can. Do not let them linger around and eat your time! 
  • Simplify requirements. This one takes some guts from the product owner, but too many requirements address imaginary problems. Continuously and rigorously ask the question: how does this requirement help my users achieve their goals? Is this the most easy requirement to do so? Are there simpler requirements still giving your users the value they are looking for? 
  • Automate! Automate! Automate! One of the most complex things in a project or product development is to assess the quality of the current state of development. The only way to give an easy-to-interpret and consistent answer is to have a very simple metric that is simple to generate. Embedding automated testing in your continuous integration cycle is one of the key elements to getting to your goal. New feature development and bug fixing will go much faster once you have the no-regression guarantee built into your development cycle!
  • Simplify design. Once you got rid of the grey zones, had your requirements pass the simplification gate, and implemented a highly automated development cycle, you can start working on the simplification of your design. Are the implemented processes the simplest possible way to meet the requirements? What parts of your architecture can be refactored to become “the lean and mean” foundation of your application rather than an inextricable tangle of frameworks and third-party applications? What code can be rewritten so that it is readable for the newcomer on the team? Whenever possible, foresee design simplification efforts when adding new features. It is an investment that will pay back!

Steps 1 & 3 are mainly focussing on the accidental complexity, and 2 and 4 address the essential complexity. Now just do not expect magic :) Steps 1 to 3 will help your development process to become more predictable and free up time for your team. But it is only with simplification of your software that the ultimate goal of developing better software quicker, will become reality