2 ms·
> … [Extreme Programming (XP), an early “agile” method] involves a lot of design, but does it in a different way than established software processes. XP has re
by jt2190 3y ago
> … [Extreme Programming (XP), an early “agile” method] involves a lot of design, but does it in a different way than established software processes. XP has rejuvenated the notion of evolutionary design with practices that allow evolution to become a viable design strategy. It also provides new challenges and skills as designers need to learn how to do a simple design, how to use refactoring to keep a design clean, and how to use patterns in an evolutionary style.
(Emphasis mine)
So, have we met the challenge of:
* implementing a simple design first, then
* iterating (“refactoring”), the original design as more information is uncovered, then
* ensuring that the design is implemented using well-worn solutions (“patterns”)
?
I think that there are social forces that work against this ideal, specifically:
* Software projects are funded as if they’ll be “done” on a certain date, after which improving the implementation will be considered too risky/not worth it.
* Developers like to code, and designing (reading other people’s code, negotiating improvements etc.) is not what they want to do. Best to jump to a greenfield project that isn’t boring “maintenance” work.
This results in a lot of half-designed, half-done, “works well enough just don’t touch it” software.