Hacker News new | ask | show | jobs
by streetcat1 1618 days ago
Reasons:

1. The software creation process moved from designing software to "growing" software. With iteration time moving from months to weeks. So there is no conceptual integrity.

2. MVP turning to final products. Basically quick and dirty code become the foundation of the architecture, with no time to refactor.

3. Short tenure time. I think that avg tenure time for young developers is less than a year. Hence, the knowledge of the code/ domain / abstraction is lost.

4. Market value speed over quality. Software managers are compensated for delivery and not for quality.

3 comments

I’ll try to add to this great list:

5. Planning - your abstractions sometimes don’t make sense in the face of new requirements. If the people planning the features of the product don’t do their own thinking, you’ll be guessing at what they’re going to do next. When that’s the case, it’s up to a dice roll to see if your abstractions will work nicely with the future requirements.

This is biting me right now and quality will suffer as a result.
Users have an incredible tolerance for issues on specialised software as well. Sure, the pages load slowly and once a month you see it totally crap out, but it has more features which let you make more money by using it so who cares.

Most of the time as a software dev company, you are better off building as much functionality as possible and just keep things working enough that people can deal with the issues.

These are all good points. But most of them also seem like cultural factors too.