Looking at the cool new principles of software development:
- Agile
- You Ain’t Gonna Need It
- Less As A Competitive Advantage
- Behaviour-Driven Development
- The Evils Of Premature Optimization
The New Way seems to be to dive in and write what you need to achieve the first iteration of scope objectives, and refactor as necessary to have elegant solutions. Your codebase grows incrementally, and never has a big planning/hierarchical design stage. That, to me, suggests that software design (worthy though it is) has been subsumed into refactoring, because that’s where the elegant code comes from, not the incremental additions to functionality.
Am I wrong?
Reminds me of the following quote: