Startups are usually in a rush to deliver features as fast as possible to compete with other companies. However this makes them sometimes go slower and lose customers. Let’s see why it is important to dedicate some time to stabilise the platform.
Improve the customer retention and acquisition
Customers usually prefer a small number of features that work great that many mediocre ones. If they find constantly issues or the screens are slow, they may decide to look for other company and may also talk bad about yours, making you lose potential customers.
Better support for new features
“No tree can grow to heaven unless its roots reach down to hell”. C.G. Jung.
A big project needs strong foundations. At the beginning the teams can build quickly without thinking in the long term, but once the platform starts growing and getting big customers, it is needed to clean the base so the projects can grow stronger.
Allow to go faster
Developers sometimes have to use workarounds to meet deadlines, what is called as tech debt. These workarounds may be inoffensive but many times they are a short term fixes that affect the long term as they don’t allow to build on top of them. It is important to differentiate between good and bad debt (e.g. a minor issue vs a blocking one), prioritise it and dedicate some time to fix it.
Allow to scale
Having time to split a big application allows to scale better each part so it supports a bigger number of customers. Having some time to experiment also allows to try technologies that scale better (for example being able to activate more nodes automatically when the demand increases) and reduces the deployment effort.
Allow to grow the team
A big application is easier to maintain If it is split into smaller and more manageable pieces. This way different teams can work in separate parts and deploy them without affecting each other. It also makes easier the onboarding of new developers as they can focus in a small piece instead of having to understand the whole system and they are more happy working with clean and nice code.
Less churn rate
Developers are usually in a rush that may burn them out and make them look for a different place, what would make the company spend a lot in recruitment and spend time and effort in onboarding. It is important to have some breath periods that reduce the stress and allow to try new technologies that will allow the team to perform better.
Many features are maintained by a different team that the one that did the initial implementation, and the original developers may not even be at the company anymore. If the existing features don’t have enough test coverage, it is possible that they are broken when the team tries to add new one, and they may only notice the error when the customers find issues. Due to this it is important to spend time increasing the test coverage to ensure that the code is easy to maintain in the future.
The stabilisation periods cost time and money but are worth in the long term and will allow the company grow. The could be skipped in the early stages but the sooner they are added the better as they will keep the customers happy and will allow to get more.
What do you think? Does your team have some stabilisation periods or the fast growth doesn’t allow to do it? I would love to read your opinion in the comments below.