This is an actual problem we have to decide on with our startup. Help me decide!
SCENARIO You are doing a startup. You have launched, you have customers, revenue and some traction. You are growing steadily.
You have just taken a seed round, which gives you enough runway for exactly 12 months. At the end of that 12 months, you need to be cash flow positive or you may as well pack up your bags and go home.
You have 4 staff, 3 of whom are developers and 1 of whom is the sales and marketing person. You have a board with 1 investor and 2 founders on it.
Your product is an early iteration, which means it meets the needs of some of your target market but not all. It needs continuous development in order to reach "product to market fit", and reaching that fit is an important aspect of becoming cash flow positive.
Your product is built in a particular technology which means that 40% of the development work can only be done by 1 of the developers (development bottleneck). This affects your speed of development. The other 60% of development can be done by all 3 developers.
Now, assuming that the sales and marketing techniques and the focus on the conversion funnel remains exactly the same no matter what you do with your technology, you have two broad choices:
Choice 1 Stick with your existing technology platform, and focus on reaching product to market fit. Accept that you will have a dev bottleneck, but do so knowing that it is preferable to have the full 12 months of runway at your disposal in order to maximise success.
Key advantage = Full 12 months of runway to reach cash flow positive
Key disadvantage = 40% of dev is bottle necked through a single developer
Choice 2 Spend the first 60 days of your runway rewriting your platform in a way that 3 developers can work on 95% of it, rather than only 60% of it. Spend the next 8 months focusing on reaching product to market fit on your new platform.
Key advantage = Once you have rewritten the core tech, everyone on the team can be fully productive on the platform
Key disadvantage = Rewriting the core tech probably reduces your runway window by 2 months, giving you 10 months to succeed rather than 12.
THE QUESTION What would you do - choice 1 or choice 2, and why?
Estimates for fully rewriting code are notoriously understated. It will almost always take longer than planned for a rewrite. I suggest that you stay on course and get cash flow positive and worry about rewriting later. Instead of rewriting, you should also get all of your devs familiar with the current technology stack that you are using.
The most important thing is to become cash flow positive as fast as humanly possible. Once that's achieved, then you can rewrite the code. So, I would choose option 1.
As an aside, I find it hard to believe that the other developers can't learn the other technology. It just seems odd. I would maybe buddy up your developers for a while to get you out of this issue. Also, if your key guy get's hit by a bus, you are in serious jeopardy. Having someone else know what she/he knows is important as well but the fact still remains that the shorter your time to cash flow positive, the better.
Big plus , you have customers and are generating revenues, that being said you need to factor them in the equation and see how changing the technology/architecture affects them.
Also anytime you are planning to change your architecture it must be because of the flaws of the architecture itself and not that not all of your people can work on it. I am pretty sure the time taken for a developer to learn a technology is way lesser than changing a solution built on it. Thus I would go with choice 1 and also try and get the developer to learn the technology thus making him an asset rather than a bottle neck.
Best of luck :-)
Given the problem as presented I'd go for choice (1) - but I'd do my utmost to get rid of that developer bottleneck.
Having a bus-number of 1 for a company is always a bad sign. What happens to you if you lose that key developer?
Keep using the current technology stack and get the developers who currently don't understand it up to speed. Doing things like pair programming with the current in-house expert would be one way.
Can you mention the particular technology that the other developers can't pickup ?
The other choice you left out was getting the other developers useful in the entire code base. I cannot see why at least one other develoepr can't learn the code. It is certainly cheaper, faster and less risky than re-writing.
If they can't, then get rid of one or more and bring in people who can learn it. Sounds harsh and easy for me to say, but they are supposed to be professionals. In a startup.