Lately I have been pondering the challenges faced by early stage startups trying to launch or maintain a website that drives or supports a key part of their operation. While exact numbers vary greatly it is generally understood that only a small fraction of young tech startups survive their first years. There are many well explored reasons for why businesses with even the best of ideas and intentions nevertheless fall apart – poor management, lack of focus, inadequate marketing and customer research, just to name a few. My focus here, however, will be what can go wrong from the software side of a tech startup and to offer some advice and suggestions on how to prevent and address these problems.
Perhaps the biggest challenge is the reality that crafting good software is hard to do. Moreover, doing it well is rare and expensive while doing it poorly is quite common, and ultimately even more costly. Even talented entrepreneurs with sharp business acumen may be naive to the complexities of translating a great concept into software. These startup owners need to focus on their own business domains and rarely have the time and passion to learn and keep up with the technologies needed to actualize their plan. Invariably they will need to lean on trained software architects and engineers to translate their dreams into reality.
Hiring Developers
So the first big choice for the budding tech entrepreneur is who to hire to do the work. There is often the irresistible temptation to go with a cheaper option. Sometimes a company will start out with or maybe transition to hiring an in house junior programmer to save on the costs of hiring a consultancy that might cost multiple amounts per hour.
The problem here is that the developer will likely be working by themselves and not have enough exposure to other developers. Stuck in a silo, such a developer may not get enough exposure to new technologies, solutions and best practices and the quality of their work will suffer. At some point, the developer may face the reality that their lack of experience and insufficient support is hindering the progress of the product as well as their own personal development as a programmer. Meanwhile, the owner will start to realize that the hourly savings are being far outweighed by reduced productivity and poor quality. Sadly, the costs only mount when they then must call in outside support to rescue an application that takes multiple times the effort to salvage and clean up than had it been built correctly from the start.
On the other hand, sometimes the gamble pays off and a young brilliant programmer does rise to the occasion. By staying abreast of the leading edge of their craft, some clever code gets an MVP launched and all looks promising. Unfortunately, with time such a rising star will likely get bored being constrained by the limited needs of one business domain. They will soon get snatched up by more exciting opportunities leaving the startup with with a gaping hole to fill.
Working with Consultancies
Ultimately, my sense is that most small startups are better off hiring a consultancy with a mixed team of architects, designers and full stack developers. Such a diverse team is equipped to guide a young project from the initial planning stages to MVP to further stages of long term feature expansion, scaling and general maintenance.
Here again, there may be the temptation to seek out a cheap consultancy that depends on outsourced offshore programmers. No doubt these engineers can be quite talented and at a fraction the cost. However, the communication challenges of dealing with odd time zones and foreign languages can be quite debilitating, especially for ensuring that the initial vision of the product is well executed.
On the other hand, going with a high-end consultancy is quite unnecessary for a small startup that is just trying to get something bootstrapped and launched as quickly and efficiently as possible. Larger consultancies may be used to unconstrained budgets and will have a harder time adjusting to the limitations of a small startup. I recommend going with a small to medium size consultancy with a simple office space or, better yet, staffed by remote developers that keep costs down by working from home in more affordable parts of the country and less extravagant lifestyle choices.
Blending In-house with Consultancies
Ultimately, you may also evolve towards a successful blend in which a capable in-house developer cooperates with the outside consultancy. I would advise leaning on the consultancy to help screen the developer to make sure you are finding a good match for your business and the technological skills needed to maintain its underlying software applications. Once your product is launched, an in-house developer can be a good way to keep costs down while making incremental improvements. Be sure however to keep good contact and relations with the consultancy so that you can fall back for support in case you lose your staff developer or decide to quickly ramp up development.
While hiring a small consultancy may be the best choice it will definitely not be cheap so here are a few more suggestions to consider:
- Think long and hard about whether this is really a risk you want to take. If you’re at all unsure about your commitment to this project, then you’re better off taking the time to save money, gather skills and resources, and build up your confidence and vision before going forward.
- Define the leanest MVP possible and estimate how soon and how much revenue it can generate. Your morale and confidence and that of your team and investors will be greatly bolstered the sooner you can get real people using your product.
- Make sure you have enough funding. You can assume that software development will cost between 2-3 times as much as you initially estimate. Make sure you definitely have enough to get an initial prototype launched so that you can start getting feedback from users and hopefully more interest from further investors. You don’t want to stall development and lose momentum and focus by having to go seek out more rounds of investment midstream.
- Consider learning to code. Many successful tech startups are started by developers themselves for good reason. Often it is cheapest and least risky to hire yourself. If you are a bright business person then you are probably smart enough to learn how to program. Even the smallest of towns now offer part-time crash courses and of course, the internet is chock full of fun, accessible ways to learn to code. Even if you don’t end up writing much of the code by yourself the more you understand about how such a key aspect of your business works, the better off you will be.
Advice for Developers
Finally, here is my overall advice for consultancies and developers when engaging with a small tech startup: be as honest and transparent as possible about your skills and costs. While it can be tempting to get involved with an exciting new venture or help out a desperate rescue situation, no one is served if it becomes clear that the client cannot afford the costs and risks involved with your service. Ultimately the damage to your morale and reputation long term will more than outweigh the immediate income.
If you think there is a potential match then proceed with caution. Stage development in smaller business cycles with clearly defined goals and estimates. Encourage your client to keep seeking out investment and revenue streams and be sure they are paying attention to their bottom line. Better to overestimate the time and costs for development and send your client back to the drawing board until they are well funded and clear about what is really needed to further their business.