Article By: Prince Osinachi Nchiba
====
I remember having to play an expert role in auditing a particular unicorn startup based out of South Africa. The co-founder of the business was telling me about some of the challenges they were facing within their engineering team. I realised the following:
- There was no technical product roadmap guiding the software development cycle.
- There was no clear validation as to why the technologies being deployed to solve users’ problems were the right fit.
- There was no clear definition of the technical resources for the startup to scale.
- There was no strategy around resolving technical debt when growth comes.
I diagnosed and detected that the root cause of the challenges this startup faced emanated from the pointer highlighted above. I was able to guide and help resolve these issues.
However, I noticed that these issues are prevalent among many tech startups within the digital technology space in Africa. Hence, why I have decided to put this article together.
A second story…
A second piece of evidence that proves that this challenge exists among scaling startups is “Evernote”.
Before the company became a unicorn in 2012, it had issues with scaling its software solution as a result of the way it was set up initially.
There were issues with latency, downtimes, and technical debt, meanwhile, the numbers for user growth grew by leaps and bounds, and it was hard to keep up.
Evernote finally shut down in 2015. The cost of not setting up software development properly can be very steep, for any type of startup.
That brings us to two junctures:
- How do we set up software development properly (when it had not been set up at all)?
- How do we fix software development properly when it has been wrongly set up?
How do we set up software development properly (when it had not been set up at all)?
The answer to this is by ensuring the following are done:
- Hire quality software developers and solution architects: There are a lot of decisions engineers make at the nascent stage of a product. These decisions can make or mar the startup in future. It is important to hire properly. Hiring engineers with more experience and more commitment to work will save the startup a lot of engineering costs. If you are a non-technical co-founder, it is advisable to get someone who is very experienced with tech that can advise you while you are mustering up your first team.
- Keep proper documentation: Keeping proper documentation is another step that is important during the setup stage. A product manager can be hired to take this up. Important documents like user stories, user research, product requirement documents, user flows, etc. are very important documentation the startup needs at the early stages.
- Forecast growth and position for scale: Having a prognostic and descriptive perspective in software development is crucial. It is important we factor in traffic volumes and data accruement while designing the software architect and developing the same. It is a thing to know how to drive growth, it is another to know how to manage growth. The software team needs to be aware of this and plan for this.
How do we fix software development properly when it has been wrongly set up?
- Isolate the issues on the flawed platform while working on a new fix: At this point, the best thing is to identify the flaws within the system and map out a new fix. This might mean creating a new test environment or sandbox. The new changes can then be pushed to this new environment and then merged to production after it has been successfully tested. It is important to consult with a DevOps professional or Solutions Architect if the issues are based on the system’s framework.
- Hire specialists to assess the risks of change: While working on setting up properly, it is important to conduct a risk assessment of the before state and after state of the changes intended. This anticipation of the risks helps in creating pathways that can help avert these risks e.g this could mean creating a backup on the database, firewall protection, etc.
- Plan for user migration: If the changes required mean a new platform needs to be instituted, a proper migration plan needs to be created.
- Ensure good customer support is in place: While changes are being made to the system, it is crucial to make sure the user experience is not impacted negatively. There needs to be a strategic plan to use customer support to cover up for the gaps the new implementation might create.
To contextualize it better, here is an expectation of the technical infrastructure needed based on the business stages of the startup.
Infrastructure Readiness Chart Based on Startup Stages:
To further help, I have prepared a worksheet called the “Scalability matrix”. This free resource will help in guiding you on the status and readiness of your startup’s software development process.
Here is a filled sample below:
Feel free to access this free worksheet HERE.
With the above, I believe setting up software development for your startup will no longer be a chore.