4 ms·
Remember that debt is an analogy, what we're really talking about is bad code we have chosen to live with. More startups fail from not enough money coming in t
by aaronblohowiak 14y ago
Remember that debt is an analogy, what we're really talking about is bad code we have chosen to live with.
More startups fail from not enough money coming in than from having tech fail. Many mid-life startups fail because their technical debt causes them to be unable to quickly grow and respond to changing conditions.
How to get the speed of development with short-term thinking but avoid long-term pain?
* Keep it contained. The big-picture diagram should be pretty good, but the details of implementation can be shitty as long as the same interface would accomodate the better version. This sets you up for success later when you need to replace the bad implementation with a better one.
* keep your core clean. The more features and other code paths rely on a chunk of code, the more 'core' it is. "Core" code should be kept clean because of the risk that bad core code poses to the business.
* comment your regrets and thoughts about how you'd fix it in the code so when you burn out and some new hacker is trying to fix your crap they will at least be able to have an idea of what you were intending to do.
- adv0r 14y agoThank you for you answer ;) I'm actually making my master thesis on this topic, and you are the first person I hear ( sort of) telling me that "Many mid-life startups fail because their technical debt causes them to be unable to quickly grow and respond to changing conditions." If you could please support this statement somehow, I'd really appreciate (not because I don't trust you or I disagree, but because researches need references ;)
- aaronblohowiak 14y agoSorry, I only have anecdotes. You need data =D
- adv0r 14y agoif you did worked in startups, you are data :D (did u? ) :D
- SoftwareMaven 14y agoI saw it nearly happen with a dot-com I worked at. "Architectural releases" (e.g. "just cleaning up technical debt") provide nothing but risk for customers and an opportunity for competition to catch up. In my mind, this is what is meant by phrases like "excellent startup teams are good at execution". They can ride the line between getting features done without becoming bogged down in their own code. It's easy to hack something out. It's easy to spend all your time making in an architectural masterpiece. It's really hard to balance that in a way that allows for continued growth.