3 ms·
For years I've been mystified how certain people who make bad software engineering decisions over and over --but do so quickly and with commitment-- rise up in
by khazhoux 6y ago
For years I've been mystified how certain people who make bad software engineering decisions over and over --but do so quickly and with commitment-- rise up in the leadership ranks. I'm talking about people who join projects like a hurricane, don't pull in all the relevant data before making a technical call, and their work /always/ has to be replaced or cleaned up 6 months later.
I finally realized that there's usually not a "perfect" engineering solution, and you can spend weeks or months going back and forth on a plan. So the people that just plow ahead --even if not great-- wind up delivering "something", which is better than nothing. And put another way, they land 2 failures and one moderate success in the same amount of time the rest of us are busy landing our one single success... which also winds up being only a moderate success at best because writing good software systems is hard!
- radu_floricica 6y agoLook up "satisficing". It's a wonderful concept.
- Baeocystin 6y agoSometimes even a wrong decision is better than no decision, and that is so antithetical to how I want things to be it took a lot of pain events to beat that through my skull. But it is true nonetheless.
- JimTheMan 6y agoOften the decisions aren't wrong, but they are sub-optimal decisions. That's what I've found at least. Sub optimal can move the needle and that's what a lot of people are looking for.
- sjg007 6y agoThere the tragedy of the commons. You see it in software, where individual teams or people can make decisions that seem overall correct for them but have an overall negative result overall. I've seen this when you have shared components that require core platform updates. One group working for one customer needs a new features without considering the other customer that uses the same platform or may want the same feature but with a slightly different configuration or interface. It adds to technical debt and reduces overall productivity in the long run. You see this in open source projects too where code gets forked and then it becomes difficult to adopt features from mainline or the other forks etc...