Every business exists to provide useful products and/or services to people, in a mutual exchange of value. It’s that simple. It’s hard, however, to create a sustainable business, which is why so many software startups end up disappearing after a few years.
I have been involved in many startups over the years, and have seen a lot of success as well as a lot of failure. It has been interesting to see technologies evolve, paradigms change, and patterns emerge.
Change has emerged as one of the only constants in today’s market, regardless of the product delivered or target sector, even more so when looking at software.
The emergence of the web as the primary delivery mechanism for most new applications has accelerated the adoption of and evolution of software, as has the abstraction and commoditisation of infrastructure (cloud computing, software defined networking, etc) and frameworks that allow developers to focus on features rather than “plumbing”. All of the above have caused, and allow for rapid response to, change.
Success does not, however, just depend on a company’s ability to adapt to change — its agility — but a number of other factors. With the maturation of the Internet and its pervasive presence in all facets of people’s professional and personal life, the world has become an increasingly connected and faster place. Delivering a product that creates value for its user is just as relevant as it has always been, but it is no longer enough. The barriers for competition are low, and these competitors are able to serve markets from anywhere.
In order for a software startup to succeed, it will need market maturity (e.g. the value of its product is recognised and sought after by a significant percentage of the target market), market share, and monetisation.
If the market is not mature, there may not be a large enough pool of users in order to justify investment and those users may not be willing to pay enough, if at all, for the product. If the company does not capture and retain a large enough market share, it may cease to be relevant and struggle on the sidelines, or disappear altogether. If there is no way for the company to create appropriate revenue streams from the product, then the whole exercise is a waste of time.
As the market matures, it becomes increasingly important for a company to ensure that its product continues to deliver value, for an increasing market share, and to make money … all at speed. The faster a company can acheive these things, the greater its chance of success.
Whilst a product idea or unique implementation may have been the cause for initial success, execution at speed is now key.
Aside from the product’s value proposition, and the company’s agility in response to the market, rapid scalability has become a key success factor. Without the ability to scale, a ceiling is quickly reached where initial success quickly becomes unsustainable. As the company struggles, the competition jumps in and while the market matures (e.g. potential customer bases increases), that initial success becomes an increasingly small market share.
If it makes sense to focus solely on a domestic market, it is even more important to build in the ability to scale at speed.
Application to Delivery
There is often an unnecessary tension created between the commercial and technology teams within a company, exacerbated by the failure to realise the above imperatives.
As a CTO, I always look to commercial goals to drive any of my decisions, technical or otherwise (I would suggest to anyone in a similar role that disagrees to have a chat to their CEO or board). Assuming the product is worthwhile, and given the need to respond to change and to scale, at speed, all of your efforts need to support this need.
The question becomes, “how?” Although it is certainly an enabler, there is no magic technology that will deliver success. How people are organised, how they work, and the tools they use are all important ingredients in the recipe for success.
Scalability, with that emphasis on speed and agility, needs to be built in to everything. The good news, is that none of the solutions need to be invented. They are already here, and just need to be applied. There are proven patterns for success in collaborative, flat, and matrixed teams. Agile and lean methods can be used to enable predictable and flexible delivery of appropriate features. Cloud solutions, new platforms and languages allow for rapid development and deployment.
None of this is news, but too many companies end up chasing their tail as they add more staff, deal with a code-base that becomes increasingly hard to deliver from, application performance that leaves their customers unsatisfied, and a general failure to cope with growth and deliver fast enough.
Of course, every situation is unique, and so they would need to be tailored to that unique situation (e.g. how to structure a team, apply agile methods, which specific technology, etc). If you are starting up or at an early stage, think of the following as something to follow as you develop. If you have already reached that growth stage, think of it as changes to be applied to what you already have.
The need for capital is worthy of a mention. Whilst you may have bootstrapped to this point, scaling at speed more often than not requires access to additional capital. By the time you need it, you don’t have time to find it. Think about it early and often.