Hacker News new | ask | show | jobs
Ask HN: Does startups need to focus on execute despite having technical debt?
2 points by nRike 4489 days ago
To give you little context: 230k users since november 2013, 1.4m monthly pageviews, 50% users MoM growth. So at this point we're having discussions whether if we still need to do hacks and monkey-patching our overall system or start doing massive refactors to our core funcionality code. What do you think? Have you experienced something like this?
4 comments

Without having lots of data about your current system, business resources, business health, runway, expected growth, technical challenges, income, expenses, and other constraints it's very difficult for an outsider to come up with an informed decision on how best you can proceed given your unique set of circumstances.
I agree with that. In the more general sense, do you think is a good approach doing monkey-patching, for a startup whose already made their first sales? Lets say we just raised money from an accelerator and no taking outside investment than that.

My main doubt about that is, do you think is a good approach to keep doing crappy code even if we're already doing money with this? And if not, when would be a good moment to start refactoring?

Somehow I doubt your customers are complaining about the quality of your code and if you are making money there's no business case for rewriting code.
Its really hard to say without being in your situation, but assuming that you keep growing, it sounds like there's inevitably going to be a point where you need to do some major infrastructure refactoring/quality of life changes. I think that you should plan for that. Looking at your current situation and trying to estimate when you'll need to make these changes for some feature down the line or some major goal should give you an idea of when they'll actually be necessary. That isn't saying keep accruing technical debt infinitely, but rather figure out a natural point of growth/stability where the changes make sense and the debt needs to be erased.
That makes sense. In a personal note, I think doing monkey-patching code is okay in a discovery mode, but now we have a small revenue stream, we should focus on make the platform more reliable, and probably taking our users as the proxy to understand where the product lacks quality.
Debt provides leverage. If the burden will obviously prevent reaching 2 million page views per month then it might be time to restructure. If it might keep you from hitting 20 million, all the bottle necks on that path havent been built yet. So there's no way to solve that problem now and anyway growing by an order of magnitude is a more important problem to solve.

That's not to say that building a wall around new code to keep the mud out is a bad idea, but that's a response to growth.

I completely agree. I recently started looking for this topic because the feeling I get is that everything is messy and its becoming a nightmare just to think about it. In my case, I'm taking more responsabilities and I think we need to start implementing best practices with our engineering team. Does that makes sense to you?
Better practices going forward make sense. But rewriting working code should have a business case when the working code solves a business problem. Scaling and maintenance are second order problems. Success is the first order problem.
I would set up some kind of performance testing environment of your core pages. Then I would let the numbers guide your decisions.
I like this approach, data cannot be argued.