Welcome to Getting to Zero.
A lot of content is written to help teams launch new products and go from 0 to 1. But most companies have a different problem - how do we maintain the speed and quality of the early days as our product grows?
Things start to break as team sizes get too large so the informal processes of the startup are replaced with “grown-up” processes like business case sign-offs, functional separation, stage gate handoffs, and formalised testing and deployment processes.
These processes are based on the best practices that led to companies being able to scale to unprecedented sizes in the 20th Century so it made sense to apply them to software development as well.
The only annoying thing is that these don’t seem to be working as well for software as they did for manufacturing. And it comes down to one thing:
We are using processes optimised for manufacturing to govern design problems.
Product development is design
When people think of coding they don’t often think of design, but that is exactly what it is. There are as many ways of writing software as writing a book or a song. You start with a blank sheet and use your creativity to solve a problem.
One thing all design problems have in common is that there is no guarantee that people will like what you design.
90% of software features fail to deliver the expected value because products require customers to change their behaviour and we can’t predict how people will behave.
Design processes are messier than manufacturing processes because they require upfront research to uncover problems, ideation to explore different possible ways to solve the problem, continuous iteration because our first ideas are rarely the best and then finally building the solution. Applying strict handoffs and signoffs to a messy design process is a guaranteed recipe for failure - and the data backs this up.
The best designs have a cross-functional group of people iterating quickly from ideas right through to satisfied customers. Dependencies and handoffs are the mortal enemy of good products because they lock in scope early, and shift people from thinking about the outcomes of what they are trying to achieve to ensuring that they follow the process. We call these dependencies and handoffs blockers - because they block teams from building high-quality products.
Removing blockers isn’t easy because everyone will argue for their pet process. Finance will argue that they need business case sign-offs to ensure due diligence in where money is being invested. Functional managers will argue how separating functional experts will improve efficiencies of scale. And stakeholders will insist on governance check-ins to ensure that teams aren’t needlessly wasting money. These are valid concerns but there are other ways to achieve all of these goals without blocking teams.
Some people say that bureaucracy is the price you pay for success, but also people have been saying that things are impossible until they’re not. There is a better way.
Check out zeroblockers.com where we go into much more detail on how to improve your processes or subscribe here to read case studies from people sharing how they are improving the processes in their companies.