2 ms·
I appreciate that's the definition, but the problem that agile tries to deal with is that this almost never happens as you describe in practice. In reality:
by matthewmacleod 11y ago
I appreciate that's the definition, but the problem that agile tries to deal with is that this almost never happens as you describe in practice.
In reality:
1. You research the actual requirements
2. You design the concept of your system, design APIs and interfaces.
3. You implement it.
4. You discover that the requirements are unimplementable because of some unforeseen design issue
5. You make changes to your implementation, documentation and requirements to deal with this
6. You discover that documentation regarding a third-party system is inaccurate and requires design changes
7. You make changes to your implementation, documentation and requirements to deal with this
8. You verify it matches the design
9. You discover previously unknown acceptance requirements
10. You make changes to your implementation… and so on.
??. You release it and maintain it
Even with skilled, competent developers and architects, no system ever turns out exactly as expected. The goal of agile development is to accept that and try to incorporate the concept of continuous delivery and adaptation into the core of the process – since it's required anyway!
- kuschku 11y agoAnd now imagine a big company develops a software interacting with yours at point 2, and finishes it at point 5. You’ll have to add backwards compatible wrappers that emulate an older API in 7 and later. Or you can actually test with proof-of-concepts, with mockups, with other tests, before you even write the design.
- matthewmacleod 11y agoI think you missed my point there – I'm not describing an ideal agile process. It doesn't matter how many proof-of-concepts, mockups, tests and design documents you produce in advance. Change still happens.