Barry W. Boehm, Richard Turner
* *Helps organization achieve the speed of agility without sacrificing the discipline of process *For quick learning and easy reference, the margins contain a "fast track" summary of the material *Forewords by Grady Booch, Alistair Cockburn, and Watts Humphrey!
As nowadays the main focus of software developers is to deliver the functionality to the satisfaction of the customer in very much short time that requires a short but hybrid team well communicating between themselves and also parallel working on different phases of development.
After focusing all of this is Agile the best practice or any other can be more effective?
I don't know about you, but I wouldn't be terribly keen on the idea of fly-by-wire systems for aircraft and other safety critical things being developed using agile methodologies.
Balancing Agility and Discipline: A Guide for the Perplexed is a good reference for a broader discussion on the subject.
I'm confronted with a programming project that is mildly complicated because of the need for web services, standalone/off-line/cross-platform GUI, zero-installation executable, mobile, etc. There's no need to go into detailed requirements.
The point is that it would have been possible to push a test-first prototype out the door in a couple of days with the tools at hand, but I didn't, because, simple as they were, every design I could come up with seemed wrong in the sense that it felt like it wouldn't scale up to the full application even with major refactorings.
I spent over a week researching the languages, libraries, and tools that could help with the requirements, and came up with an architecture that I'm sure will scale from prototype to production.
Alas, I have a few card-sized wiki pages and some hand-drawn/scanned diagrams, but no prototype. Yet I feel much more confident about success now that I know that a prototype will take much less effort and become an asset instead of a throwaway. Perhaps more importantly, I feel like I can now explain the design in a way that other people can run with it.
Was all this too anti-agile?
I recommend reading: Balancing Agility and Discipline: A Guide for the Perplexed May be help you.