Running a startup can be tough. Money are resources are scarce and you find yourself in a constant pattern of being forced to make the very most of the little you can get. Often, you surprise yourself with what you can achieve.
When you have very little, there are basically two options – Get more, or be more resourceful. I prefer the latter. Personally, I think it’s a great life skill because it takes you from a position of weakness where it’s easy to blame problems on everyone and everything else, to a position of empowerment where you are in control and have the ability to solve any problem.
If you look up the definition of “scalability” you will find something along the lines of “ability to change in size”, but my view is that “resourcefulness” and “scalability” are closely related, if not synonymous. Fundamentally, they both deal with the notion of optimising resources, and this is key to the success of any startup.
I bootstrapped my first software startup Skills Base in 2012, a business that now services some of the world’s largest companies. I didn’t have significant resources, but I was resourceful and I learned some key scalability techniques that I can now share with you.
1. There must be a co-founding Chief Software Freak
I’m not talking about just a software developer or someone that has written software before. I’m talking about a software freak – someone with significant qualifications and experience who works all day developing software and then comes home at night and develops more software in their spare time. Only this type of person is going to get you to the promised land, and they absolutely must feel like they have ownership in the product being developed. Having a software freak as an equity stake holder in any software startup is an absolute must.
Software development is part science and part art. Designing an elegant software solution is not dissimilar to designing a home. The home owner can specify to the developer the number of bedrooms, bathrooms and living spaces, but they don’t expect to have to specify the method used in constructing the home’s foundations for example. Fortunately the housing industry has laws and standards that housing developers must comply with, however there is nothing regulating software development. To your Chief Software Freak, your software is their Picasso. It’s their passion to make it as elegantly designed as possible and they take the utmost and unashamed pride in it.
An outsourced developer will not love your software. This is not to say that development work can’t be outsourced, however the point is that there must be someone with substantial knowledge, passion and skin in the game to spec the work, monitor progress, and QA at the end of it before acceptance. In the absence of this, shortcuts will be taken at your expense and your company will quickly accumulate the horror of technical debt.
2. Only address problems in a scalable way
One of the biggest issues that IT departments face is “Technical debt”. Technical debt is a lot like credit card debt in that it can offer a quick workaround solution to an immediate problem, but rest assured you will be paying for it into the future. Racking up technical debt exponentially increases the cost and difficulty of maintaining and improving software, which serves to stifle innovation, ultimately causing a business to lose its competitive edge.
Another way of describing it is “The Band-Aid solution”. You find a problem and fix it with a fast solution. Sure, the problem is hidden now however the underlying issue is not fixed and is likely to resurface. Worse, the software now contains hacks that don’t consider the wider architecture and will serve to disrupt or hinder it into the future.
Occasionally it is necessary to apply a band-aid solution when there is a pressing issue that impacts customers. The important thing is that it is considered temporary and that a sustainable solution is developed as a priority that comprehensively addresses the underlying issue.
3. Leverage the giant – Amazon Web Services is the greatest gift ever given to startups
Let me start by saying that apart from being a customer of AWS, I have no other affiliation or endorsement with them. However I would argue that AWS has had the single largest impact on software and computing since the smartphone – and most of the general public have never heard of it.
In the early 2000’s a software startup’s first task commonly was not to build a prototype or MVP, but to raise money. Part of that money would be allocated to IT infrastructure. In those days you bought physical servers, put them in racks, and maintained them. You also had to provision for peak load. That is, you would need to purchase infrastructure that would handle your busiest possible peak time, even if that peak only occurred rarely. Most of the time your infrastructure would sit there idle, slowly leeching funds from your bank account while nerds in white coats kept the beast running 24x7x365.
Amazon turned that on its head by building the world’s largest, most secure, most reliable computing infrastructure network, and then made it available to everyone, starting for free. This has made it possible for any solo operator running out of their bedroom to focus energy on developing the important IP – the software, while paying Amazon a tiny fee to borrow a piece of their giant compute resource at a rate of cents by the hour. Amazon enabled these operators to grow by providing access to their world-class infrastructure, allowing operators to gradually increase their infrastructure costs directly in proportion with growth and revenue. Amazon have benefited immensely from this by helping tiny startups become some of the world’s most successful startups and Amazon’s largest customers.
4. Maximise resolutions at Tier-0
As you grow, there is more and more to do. You have to continually develop and improve the service, vigilantly protect it against security threats, market and sell the product, as well as everything else that comes with running a business.
A lot of this is controllable and plannable, but one thing is not – customer support. Running a business with international customers is a 24×7 barrage of enquiries, requests and questions. Many business’s first reaction to this is to increase staffing numbers accordingly. However, there is a more scalable approach.
The IT Service Delivery world uses the concept of “Multi-tiered support”. Generally a three level system with level 1 representing the front line, first point of contact, or “service desk”, level 2 representing troubleshooting teams, and level 3 representing advanced problem solving teams. However, an additional Tier-0 was later added to represent “self-help”. That is, solving the customer’s problem before they even have to contact anyone in the company.
Tier-0 resolution is the ultimate goal not only for improved customer satisfaction, but for a scalable startup. Your software should document itself well enough that a customer can figure it out, including figuring out solutions to problems, without having to contact anyone. The net result is that you get more time to focus on the value-add activities in your business.
Where an enquiry falls through to Tier-1 and is resolved at that tier, additional steps must be taken to document the resolution and publish it so that future occurrences are resolved at the Tier-0 level. The goal must always be to maximise resolutions at Tier-0.
5. Implement Continuous Integration
Your Chief Software Freak must implement Continuous Integration. CI is your friend and is the watchdog that helps catch bugs, errors, mistakes, and can save you a lot of grief.
The most important aspect of CI is Unit Testing. Unit Tests are written by your software developers and assert “For this input I expect the software to produce the following output”. As such Unit Testing asserts your software behaves the way it was designed to, and that if any changes are made into the future, long after developers have forgotten how a part of the software works, Unit Tests are there to raise a big red flag stopping the code from being released until someone investigates what has been broken.
Automated testing methods such as Unit Testing do not replace other forms of testing such as user testing, however they are a great means of increasing the robustness of the software testing process, thereby accelerating your capacity for making changes, improving your offering to customers, and streamlining the on-boarding of future developer resources.
6. Only target customers that help you achieve scalability
You can easily find yourself spending 80% of your time on 5% of your customers. You might even say that there seems to be a fundamental mismatch between your offering and that 5% of customers. They seem to eternally struggle with it and need a lot of help and guidance while the other 95% seem to get by just fine.
When you add up the time spent, you have to ask – was it really worth it? What if that time could have been spent acquiring 5 aligned customers for every 1 of those misaligned? One thing’s for sure, you would have 5 times more customers and 80% more time.
It’s important to know your target customer profile and market only to them. Understand the channels they use and use those channels to reach them. Craft quality copywriting that speaks directly to their needs. Acquire customers that will love you and promote you to other like-minded people, augmenting your customer acquisition activities via the best form of advertising – word of mouth.