4 ms·
Abandoning things is essential to development. If we didn't let things go, we'd be stuck with all of our weaker ideas. That doesn't mean they are bad or a waste
by norir 2y ago
Abandoning things is essential to development. If we didn't let things go, we'd be stuck with all of our weaker ideas. That doesn't mean they are bad or a waste of time, but rather you reach a point at which you realize there is something better you could be doing and move on. This can be painful but it's necessary.
I keep beating this drum but I believe there is a significant amount of pain in software because people shipped first drafts and got stuck with foundational design issues. Once this has gone on long enough, even a greenfield rewrite is hard because both the programmers and the users have internalized the flawed design.
- perrygeo 2y agoAnd in many cases the entire org chart has been built around the first draft. It's psychologically hard for developers and for people paying the bills to throw stuff away, so we often dig in our heals and accept the first solution that works, along with the tech debt and resulting pain. Now the drum I keep beating is - software process needs a design phase. You need some plan, some coherent vision of the architecture, otherwise you get a system held together with duct tape and prayers. Agile made it fashionable to sprint ahead without any coherent plan. Waterfall obsessed about the plan and failed to adapt to new circumstances. There has to be somewhere in the middle where a design is subject to empirical testing. We have to change the design based on results of running real code. In other words, when the first draft doesn't work quite right, you don't ignore it (Agile) or try to shoehorn it into the existing design (Waterfall) - you change the design and try again. "Throwing stuff away" could be reframed as the scientific method. This needs to be normalized as a part of the process so we remove the stigma of "failed" experiments, which are not failures but valuable sources of information that improve the final product.
- deleted 2y ago[deleted]