When I pull at the threads that cut across my work, the motto of Version 1 is better than Version 0 – or a variation thereof – is one of my most common themes. I share the idea with clients often, and I believe it is an essential principle of being effective in business. Fundamentally, this is about getting things done, getting it out there, and then making it better – iteratively.
This is an extension of the idea of good enough, which I have discussed previously. In many cases, we don’t need to strive for perfection before getting started. We just need to get to a point of being good enough.
When I was a software developer – very early in my career – I believed that I needed to write perfect code: bug free, feature rich, with perfect usability. Such perfection comes at a cost. It takes longer, delaying release, and is fundamentally impossible. There is always another feature that can be added, another bug to be fixed, and something else that needed to be changed to improve the user experience.
Getting a version to market was better than getting no version to market. And so it started.
Version 1 > Version 0
While this was an idea that slowly started to make sense to me, it seemed such a sacriligious thought that I daren’t share it with anyone else.
A few years later, in the early 1990s, I attended my first big US trade show, Interop, in Dallas TX. I was no longer a coder, and was now a ‘Telecommunications Consultant.’ Interop was the tradeshow in this sector, a must-attend event for serious suppliers and buyers – and consultants. The show’s name was derived from the notion of interoperability, at that time a critical issue in building networks.
This was also the first time I met Bill Gates. This would have been soon after the release of Windows 3.11, and networking with Windows was something of a hot new thing. Bill Gates – then CEO of Microsoft – gave a presentation on the future of Windows and what would become the Office suite, along with their still-new network server technology, LAN Manager. I really can’t remember the detail of what Gates talked about that day, but was amused by his somewhat amateurish, hand-written acetates projected on an overhead projector. (I was told later that it was his father that was running the projector, but I cannot confirm that).
I was also amused at what seemed to be a never-ending list of new versions of Windows and LAN Manager on his roadmap. The release of Windows 3.0 was soon followed by Windows 3.1, and then very quickly by Windows 3.11, which added full Windows networking client capabilities out-of-the-box. And according to Gates, there were more to come (which I don’t think happened. The next major release was Windows 95).
There was a question about the need for so many releases, with an underlying sentiment of ‘can’t you guys get it right the first time?’ Gates talked about the need to wait for the hardware to catch up, a constant spiral of improvement between Intel and Microsoft. But the discussion amongst the other Kiwi attendees was somewhat different: Microsoft were recognised as the master of ‘get it to market, then fix it.’ And this is what we perceived the iterative releases of Windows were: the need to get products to market that were good enough as quickly as possible.
Microsoft were not alone in this. The networking equipment we ran – powered at its core by a Cisco AGS+ router – relied on a range of different devices, all running different operating systems. Our vendor’s support engineers were adamant: never install Version x.0 of anything. Wait a few weeks for the bug releases – x.01 and x.02 – before upgrading.
This was the genesis of ‘Version 1 is better than Version 0.’ When I returned to Auckland after my trip to Interop to present to my colleagues and clients on what I had learned, this is the only way I could articulate the point: you need to get the product out there – even if not perfect – in order to have something to iterate, to improve. It is better to have a flawed Version 1 available to stake your place in the market, than to believe you can attain perfection before launch. Before launch, you only have a Version 0, which is – from a customer’s perspective – useless.
A corollary is that – through iteration – Version 2 will be better than Version 1. Your first release garners feedback, and suggestions on what needs to be addressed. Use your customer base to find the problems and shortcomings, and have an effective feedback mechanism to prioritise what you fix.
Years later, I found the following quote that has the same sentiment:
You can always edit a bad page. You can’t edit a blank page.
Jodi Picoult
I have used this idea across a range of situations. It was certainly a staple of my work during the DotCom days at the turn of the century. Indeed, one of the challenges of website development is not being able to adequately capture the requirements of the various audiences to which your website was intended to appeal. Could you even be certain you knew who your online audiences would be?
But the idea can be applied in almost every field. Writing a book? Get the first draft done, and then seek feedback (taking Picoult’s idea to heart, with external input as well). Developing a new product? Build a working prototype so you can get target customer feedback. Focus in on their key concerns. Writing an assignment for school? Do your best first attempt, and then ask for comment from friends, a former student of the course, or even your lecturer. I almost always provide an early draft of a report to the client to get their feedback, and then finesse based on their feedback.
Making this work requires a willingness to do the work, learn what you can from the feedback, and iterate. This approach is not a shortcut. You don’t farm out a substandard attempt to try and get others to do your work for you. That’s just lazy.
Rome Wasn’t Built in a Day
Another angle on iteration is that it helps build worlds. Just not all at once.
A feature of an iterative mindset is that, by design, it takes time. You are not trying to solve a major challenge all at once. If you have the luxury of time – writing a blog entry for example – you can use iteration to knead the words and an idea until it is ready (good enough). Indeed, the blog is the perfect metaphor for the iterative approach. No post is ever truly complete. I can come back and tweak any of my previous thoughts to better reflect my thinking at that time.
When ideas are committed to paper (or their electronic equivalent), they tend to become clearer. There is a natural iteration loop with written words that generally improves clarity. The words certainly become better defined and articulated. But without an iterative mindset, written words can become rigid.
I find this approach also applies in so many other fields in business: innovation management, product development, strategy creation, software development, design, to name a few. Wherever there is a meaningful interplay between the goal and the method(s), iteration between them improves the process. As long as you start, and build your first version, you then have something to improve upon. And you keep iterating as you move closer and closer to your goal.
This, for me, is inherent in the notion that Execution is Strategy. You cannot separate the two. Execution is the expression of strategy, and execution is part of redefining strategy. And vice versa.
Just Do Something
Which basically leads me here:
Imperfect action is better than perfect inaction.
US President Harry S. Truman
While Truman’s statement is (probably) not intended to be about iteration, for me this quote fits well. With the benefit of an iterative improvement mindset, taking that first definitive step is essential. That first step, borne of imperfect action, gets those first words on the page, starts the ideation for the next big thing at your firm, kicks off your next great software product. Iteration isn’t just between versions, it is within them as well. Iteration is a part of the process.
You may think of iteration in terms of a sprint. Or a cycle, a loop, or any number of terms used in various methodologies. In many cases, these articulations are relatively narrow – and, I am sure, there are some I am yet to learn that are much broader. However you describe it, the core principle is about getting things done, getting it out there, and then making it better – iteratively.