Most methods, frameworks and technologies promise, some more implicitly than others, that they are the way to create products faster. Or better. Or both.
Well, there is good and there is bad news. The bad news is that there is no magic all-containing one-size-fits-all solution that you can buy which results in better software faster. The good news is that there are numerous tools, patterns and techniques that all can contribute in creating better software faster. The only thing we’ll need to create better software faster is a holistic view on product development.
A holistic approach
A holistic approach means that we regard the process of creating products as a complete system rather than separate parts. Strategy, business cases, agile, scaling agile, continuous delivery, devops and many other subjects can add value but are all just parts of the bigger picture and should be regarded just like that.
Better software sooner
If we look at product development in a very simplistic way we translate ideas and objectives to working products. The sooner we can get feedback on these products the sooner we know if we are working towards these objectives.
I don’t refer to technical quality here. That part is solved by going faster. For a quick delivery not only the software quality but also the processes for creation to delivery should be in order.
By better I mean that the products that we make really solve the problems we intended it to do. Are our features really adding value? In order to be able to answer this question we need to validate our assumptions against the real world usage. One of the main sources here is the data we collect when people use our products: “We thought that this feature x was a great idea but users seem to keep using feature y”. The faster we know this, the faster we can improve and make our product better.
In order to be able to validate our ideas we need to make sure we specify expectations and how and when an idea is good enough on forehand. The minimal information needed can be something like:
Let’s say that we have a great idea that will solve a problem for our customers. So we know which problem we want to solve for who and we have an expectation about what effect the solution will have. The only thing that matters now is getting this idea to the customers as soon as possible in order to validate our great idea.
Our process of getting ideas to production should primarily be focussed on speed. In order to do this we continuously monitor the whole flow and see where we can improve. It does not say how to solve these bottleneck but we have unlimited tools, patterns and techniques that can help us.
A great starting point for finding bottlenecks in getting ideas to production for me is often a value stream map:
Better software sooner
It might sound like a bad advertisement slogan but it is possible to create better software faster. It is hard work and there will always be something not quite perfect but that’s life. It all comes down to these two main things:
Faster: the speed it takes to get an idea to the customers.
Better: validation of objectives against outcomes.