3 ms·
Anyone can build an app, just as anyone can build a house. But if you want a roof that won’t rot for 20 years, you need to pay someone who knows how to build a
by erikpukinskis 8y ago
Anyone can build an app, just as anyone can build a house. But if you want a roof that won’t rot for 20 years, you need to pay someone who knows how to build a proper house.
By the same token, if you want an app that will still be maintainable in 5 years, you need a professional. An amateur can build most requirements, but the architecture will seize up if it’s just layers of hacks.
It’s sort of an interesting situation for startups, because their business requirements for newly acquired users are often changing on <5 year timeframes. So actually throwing away the whole system every few years turns out to be an OK strategy.
The problem is previously acquired customers, who won’t generally deal well if you tell them half of your products features are going away for 18 months, or maybe forever.
You can sometimes hack around this by basically ditching all of your old customers and taking a high turnover strategy.
That can work well for the middle of your growth curve. You burn a chunk of your addressable market in the long term. Also most companies don’t have the nerve to do it.
And it can cause cash problems.
But there are viable strategies that way.
- shados 8y ago> if you want an app that will still be maintainable in 5 years That's part of the issue. People have been making teams who CANT build apps still maintainable in 5 years. Everyone has and only a select few remember/know that it's possible. At a previous job, I was in a meeting where we pointed out an app had become unmaintainable to the point of requiring a rewrite. One of the engineers who built it pointed out "Well, we built this app a year and a half ago, of course it's unmaintainable, what do you expect?". I choked on my drink.
- alexhutcheson 8y agoEh, I haven’t seen any evidence that experienced professionals can build a website that will last for 5 years either. Business requirements inevitably requires hacks and kludges, and abstraction layers implemented to deal with the problems of today become tomorrow’s layer that everyone wants to rewrite or refactor.
- shados 8y ago> I haven’t seen any evidence that experienced professionals can build a website that will last for 5 years either You need a team of experienced professionals, which virtually no longer exists. You could work at 10 different companies back to back and not come across a team that can do it. That's the industry now.
- deleted 8y ago[deleted]
- erikpukinskis 8y agoRefactoring over the five years is the opportunity a good developer gives you. When I say the architecture “seizes up” I mean it gets to the point where 1) a refactor that would shave 100 points off your annual planned work costs more than 100 points and 2) hacks are slowing your pace to the point that a realistic estimate for your annual planned work is growing faster than your team is working it down. Note that in such a situation you will still be “getting things done” but your costs are rising while your output is decreasing. Eventually that grinds to a halt and your team will demand a costly and often fatal 2.0 cycle. A good developer can refactor as they work, and say no to unworkable plans, such that your cost per point grows only linearly, so you can maintain stable feature output while growing your staff linearly.