It is not something I want to say to a new client, but even before we touch a line of code, I know it will be the third version of their new product that will be great. The first two versions will serve their purpose but will be at just okay from a user’s perspective.
Time is linear but product development is not. Products evolve in an Iterative-Incremental manor. And it takes a few versions before we know enough to build a great product. I’m talking major versions here, not minor increments or builds.
My experience is that the first three versions achieve different things:
- Version 1 proves the need
- Version 2 proves the solution
- Version 3 optimises the solution for the need
The first version of the product will be more encouraging than good. It will demonstrate that there is a real need to be addressed, a problem to be solved. Version 1 of Journalism Portal was knocked up in MS Sharepoint 2007. It wasn’t productised, it wasn’t enterprise, it didn’t fulfil all requirements for all potential users. But it did demonstrate a real need and was sufficient good to attract further investment.
The second version will be good. This is where we demonstrate our solution fulfils the need.
It takes until the third version for the product to be great. By that time the problem space, the users, the technology, and the solution are well understood. We’ll know enough to build a great solution. To take our solution and optimise it to meet the need. That has implications all through the stack, from UX design, user interface, server side, and architecture in general.
Unfortunately most companies, when they commission bespoke software, believe they are buying the complete perfect solution. Ultimately the money they put up front, for the first version, is a small fraction of their ultimate spend. It’ll take three versions to get a great solution. But there will always be something more to add.
And that is why I recommend companies build less, start sooner, and innovate constantly.
Some companies do allocate sufficient funding up front to get through those three versions.