Technical debt affects all companies, and in startups where there is pressure to get things out the door as quickly as possible, the pressure to build up technical debt is high.
Is it an acceptable strategy to build up some technical debt to achieve momentum and market share in an early stage startup? With the view to when there is greater funding and a little more stability this debt can be more easily payed off.
It seems to me that this isn't a bad idea, as plans and architecture can change dramatically and time spent perfecting systems which have a short lifespan is wasteful.
But I am unsure at what stage you should start to pay back. Obviously this will cause a dip in perceived productivity at some point. Are there any guidelines as to when and how much you should start to refine the systems?
Or is it realistic to stick to 100% unit tested, peer reviewed bullet proof code from the start?