3 ms·
My team has built garbage software at times. It isn't because we don't know how to build good software, and it isn't because we don't care, and it isn't becaus
by vanniv 7y ago
My team has built garbage software at times. It isn't because we don't know how to build good software, and it isn't because we don't care, and it isn't because we don't want to build good software.
It is usually because of a continuous sequence of emergencies to which we are forced to react.
An emergency occurs, and we have requirements to do something in 1/3 the necessary time. We get 80% of the way though that and, before launch, there's a new emergency, and we have to rush to that.
So we end up with crap software that looks like shit and only almost works.
But it almost works enough to keep our very large business humming along. Sure, we hate it, and we're making more technical debt, and over time, we get less effective.
But sometimes we go through cycles of a year or two when the business either can't afford to do it right or isn't willing to pay the price to do it right.
Sometimes, they really are willing to accept paying 10x as much so long as they can pay in a year or two.
(I hate it, but it is true)
- AstralStorm 7y agoMake it 100x as much with 5 times as many people in 10 times as long. Efficiency is never important when there is money to burn and it's not yours, and you won't be blamed when it breaks. It does not even take any emergency - often it is conscious or subconscious project management strategy. It's related to observations about Peter principle, Dilbert principle, Gervais principle and office politics and dynamics. Avoiding this tendency is essentially only possible with small teams with full ownership of the problem they're working on and direct stakes.