Although Unit Testing is a crucial aspect of every software project, it is mostly neglected in organizations that produce some sort of software nowadays.
This is even more true for startups. As they usually start trying out something, there is no need for unit testing in the beginning. Software then emerges dynamically, based on measured experience and needs of users. To cope these needs, software has to be developed rapidly – with no time or interest for creating things such as unit tests – functionality delivers more costumer value!
In this post, I want to highlight why it is not only most important for your startup to do unit testing, but also why it is the one task that allows you to survive on the long run.
Therefore, I want to share with you two thoughts that show you the short- and long-term effects of unit testing on your business:
#Unit Tests = #Customers
As a startup, you do not enjoy the convenience of reputation. As your customers don’t know your brand, they will leave you unless they get what they expect. There is no backup if you don’t deliver to them. However, buggy software is what no customer ever expects. So if a customer is faced with a bug in your software, you will most probably lose her forever. And even more importantlyy, she won’t tell you about the bug, because she simply doesn’t care – and more and more leaving customers will follow. This is why you want to make sure that your software not only works, but has no bugs that will keep your customers from buying. The most efficient way to achieve this is unit testing. With unit tests, you have a safety net to detect errors before deploying buggy software to your servers. In fact, I claim that the more unit tests you write, the more customers will stay on your side, and become regular customers (that might even report a bug if they find it). And the less unit tests you write, the more customers will leave your site due to undetected bugs.
The better the quality of your Unit Tests, the more likely you are to survive startup phase
As a startup, your main goal is to survive in the market, to eventually leave the startup phase and become an established company one day. Most startups achieve this by either (i) getting bought by a huger firm, or (ii) emerging themselves.
In both cases, the quality of your code, and even more importantly, the quality of your quality assessment tools (i.e. your Unit Tests) is the most crucial aspect of your success. Let’s examine this in more detail for both scenarios that your startup will hopefully face in the future:
- You are bought by a huger firm: If a company spends money to take over your startup, it expects value that outweighs this investment in return. This means that bought assets must be easy and cheap to (i) integrate into existing systems, and (ii) extend in the future. But how should they do that, if they don’t know about the quality of the software they are buying? Will their whole system break after an integration? Is it really worth testing the whole system themselves? Do they even have the knowledge to write unit tests about YOUR system themselves? Or even worse: can they migrate the system (e.g. into another programming language), if they don’t know if it works the same after the migration than before? No serious organization will buy your startup unless these questions are answered! And they can only be answered positively, if you have a sufficient degree of unit tests that you can show them!
- You emerge yourself: If you emerge yourself, this means that your product is valuable enough to attract a huge number of (regular) customers. However, the needs of these customers will change over time. In order to keep surviving, you will have to constantly adapt your code base. But how will you do that, if your code base becomes a messy piece that you do not want to touch, because you cannot tell what kind of side effects any code change will trigger? Or how do you want to migrate your software to a more scalable infrastructure, if you don’t know if everything will work as expected after the migration? Again, Unit Testing to the rescue!
So as a startup that wants to have customers in the short term, and become successful and profitable in the long term: start doing unit testing!
Do you agree?
Do you want to add further aspects to my statements?
Let me know in the comments section below.