4 ms·
that's interesting. what example problems incremental refinement isn't able to solve?
by workthrowaway 7y ago
that's interesting. what example problems incremental refinement isn't able to solve?
- wry_discontent 7y agoThe flaws of incremental refinement should be obvious to anybody who's worked in a codebase more than 5 years old built on that approach. Maybe it could work in theory, but in practice, the iterations on crap produce more crap. As far as a specific example, I remember a discussion with Uncle Bob where he specifically mentions banking and accounting as systems that shouldn't use that approach because you'll build the wrong thing.
- AnimalMuppet 7y agoAnd yet the conventional wisdom is that "a complicated system that works is almost always found to have been derived from a simple system that works". But you're right, evolving code often turns it into a mess. The only way that doesn't is if, at each stage, the people working on it keep the architecture and code clean. That takes discipline, not just by the programmers, but also by management - they have to give the programmers time to do the cleanup that is needed, not just time to shoehorn something in.
- scottlocklin 7y agoProgramming language or database design.
- gerbilly 7y agoIncremental refinement is like implementing a local search algorithm. You may end up getting stuck on a local maximum in the software design space. To optimize and really find the global maximum often requires backtracking, which in the case of software development might mean throwing out large portions of the codebase and starting over.
- einpoklum 7y agoActually, backtracking is still kind of incremental.
- Ididntdothis 7y agoBuilding a rocket or an airplane? There is a lot of work that needs to be done before you can start working incrementally.
- einpoklum 7y agoBuilding a sky-scraper. If you build a 1-story house, then gradually do what-it-takes to build another floor on top of it, you'll either never have a tall building, or end up with something like a pyramid or huge angular support pylons (i.e. extremely wide base).