Globalization is something that affects all aspects of our lives. It’s not something that only really matters to businesses—it has many impacts on our personal lives too. Some of the ways are obvious:
- News from around the world is instantly available
- We’re all able to log on to eBay and order items from overseas (and those with children know how the wait for those items can endure)
- We can play online games with people from around the world
Some of the ways are less obvious:
- Increased mobility has an impact on emissions and our climate
- In aggregate, we communicate less with people who are geographically local to us and with a wider, more disparate group
- The collective against which we measure ourselves is much wider
It was the last point of each of those groups that spawned the idea for this blog post—bear with me for a moment while I explain. I am not a great player of computer games. I like them, I like playing them, I remember them fondly from my childhood—I just don’t have a lot of free time at this point in my life. If there’s any category of computer games that I gravitate towards, it’s driving games. My current favorite is Gran Turismo Sport.
Throughout my childhood and early adulthood, I was always ‘the driving games guy.’ Bear in mind that because this was when multiplayer games involved a serial cable and a good deal of lugging equipment round to a friend’s house, the pool of people against which I could measure my ability was much smaller.
Sometimes, I find myself with half an hour of free time and fire up a game and play online. That experience is humbling. There are a lot of people out there who are considerably better than I am. Initially, this frustrated me until I took a step back and realised the pool of people I measured myself against had expanded. I was no longer comparing myself against a select few friends who lived close enough to me. I was now competing against a global audience, many of whom have a lot more time to put into honing their skills than I do.
What does this have to do with software?
After thinking about this for a while, I was left with a choice:
- Never play driving games online again, because there is no way I would win
- Accept that taking part in a game, and being retrospective about where I could improve, was a positive use of my time
It occurred to me that this is similar to the process of bringing a new product to market. The choice in this context is slightly different:
- Wait until the product is completely perfect before releasing it
- Deliver quickly and often, and use the feedback from customers to prioritise areas for improvement
The commonality between these can be seen more clearly by thinking about the motivation behind them. In each of the first bullet points, we are setting a very high bar for entry—we wouldn’t play a game we couldn’t win, and we wouldn’t release a product that didn’t conform to our definition of perfect. In each of the second points, we lower that bar to “good enough,” and seek to use feedback to raise that bar over time. That is not to say that there is no bar.
We wouldn’t want to play online if we had no hope of winning. Game developers put a lot of effort into the matching algorithms that put players of similar abilities together. Equally, we wouldn’t want to put out software that failed to meet the expectations of our customers—that would alienate them, and we wouldn’t get the feedback we needed to improve it.
The Gap
The gap is the distance between perfect and good enough. We close this gap through practise (we keep trying to improve our skills at a game until they are finely honed) and practice (we apply the feedback that we’ve received to improve our products). There is a large ladder to climb to get from “good enough” to “perfect.”
Let’s illustrate that with a relatively common example: Microsoft Word. It has been out for many years, and the ladder that it climbs keeps getting extended through both increased availability of computing power and increased mobility of data. Is it perfect? No. And it will never be perfect. There are so many use cases, and ability levels of users that compromise are inherent in the design, and, as such, the best it can hope to achieve is perfect for the largest number of users. Imagine if, in 1983, the authors of Microsoft Word had decided that they didn’t want to release it just yet—they wanted to wait for perfection. Had they held true to that, we’d most likely still not have seen the release of Word, and Lotus Word Pro would be more than a fond memory.
Word has been delivering value for 37 years from its various positions on that ladder. Arguably, at times it has descended that ladder. But there is a lot of value that would have been lost if Microsoft had waited for “perfect.”
Iteration and Improvement
A very smart Product Manager I worked with introduced me to the phrase:
If you’re not at least a bit embarrassed by your first release,
you probably waited too long to release.
As developers and technologists, that phrase feels a little uncomfortable. We feel like that problem should be solved. We don’t want to be embarrassed about something we put so much of our heart and soul into!
Accepting that maxim is an important step in our growth as professionals; even if we did fix every issue we knew about, our system still wouldn’t be perfect. There will be use cases we haven’t considered, edge cases we didn’t dream of, and users who do things we never expected. The only way we begin to understand those unknowns is to deliver software to users with a goal to improve and iterate over time. Those users will extract value from the software and, as it grows, be delighted by the improvements that we make.
Equally, in our own lives, the only way we improve our skills is practise. If I play computer games online, it’s a lot more fun than trying to get to “perfect” on my own. Lately, I have been trying my hand at woodwork. I’ve made a couple of pieces for my friends and family—simple enough things—and I haven’t had a piece that has gone ‘right’ yet. But the end-product has been “good enough” and valued by the recipients.
There’s No Better Time Than Now
Perhaps you have a project that you’ve been waiting to perfect? It might be time to consider whether it is already good enough—you might be surprised at how much other people value your efforts.
Matt is Director of Platform Delivery at SentryOne, facilitating development activities across our product portfolio. Having spent the first part of his career working in payment and loyalty systems, working with several high volume databases, Matt developed a passion for tooling around database systems. He took some time to develop the tools that eventually became DBA xPress when they were acquired by Pragmatic Works. After working with Pragmatic Works to build out their database tooling, Matt joined SentryOne where he is excited to have the opportunity to take that tooling to the next level.