|New Reviews| |Software Methodologies| |Popular Science| |AI/Machine Learning| |Programming| |Java| |Linux/Open Source| |XML| |Software Tools| |Other| |Web| |Tutorials| |All By Date| |All By Title| |Resources| |About| |
Keywords: Software methodologies, project management, agile development Title: Managing Agile Projects Author: Sanjiv Augustine Publisher: Prentice Hall PTR ISBN: 0131240714 Media: Book Verdict: If you're a project manager who feels threatened by the agile wave there might be something here worth investigating. |
Some of the more fundamentalist exponents of agile development methodologies would reduce the totality of roles within software development to two: developers and customers. And even then you get the impression that customers are viewed as no more than a necessary evil. Architects, project managers, DBAs, testers, integrators, build masters and the rest barely get a look in. In particular the role of the project manager is conspicuous by its absence in most of the formal agile methodologies (with the notable exception of SCRUM, which gives mandates the need for a SCRUM Master to manage the process/project).
Managing Agile Projects, by Sanjiv Augustine, is a book expressly designed for those project management-types who are wondering where they fit in the brave new agile world. And for those unfamiliar with the territory, there's plenty of new terminology, paradigms, metaphors and other fancy stuff to get hold before things can start to make sense. In particular those used to more heavy-weight methodologies, with strictly defined project phasing, reams of documentation, modelling tools and more GANTT charts than you can shake a stick at, are apt to find the new landscape strangely ill-defined.
Where more traditional development processes draw inspiration from engineering, agile techniques are often loosely based on 'complexity theory' - the science of complex adaptive systems. The emphasis is on evolution, adaptation and complex behaviour emerging from simple interactions. In the software field this means accepting that software requirements are never fixed, so rather than pretend otherwise it's about leaving room to change and adapt as the requirements do.
In practice there are a number of key practices that pretty much all of the competing schools of agile development have in common: rigorous unit testing, regular automated builds, an emphasis on small releases of functional code, reduced emphasis on documentation, a high degree of customer involvement during development. All of these are touched on to some extent, though the focus of the book is not on these practices per se.
In addition to the practices the book describes the role of the agile project manager. Rather than safe guarding the project plans and juggling priorities, deadlines and the need to get something out of the door, the agile project manager is much more hands-off. Developers, working closely with customers, have more say in the day to day running of the project. Instead, according to this book, the project manager is more focused on building an 'organic team', developing a shared vision, maximising communication, evolving and adapting the agile process so that it better fits with the project. At times it all sounds a bit too touchy-feely - not helped by a tendency to grab the nearest scientific metaphor for support - but the core idea of working to foster collaboration and communication is a good one all the same.
Like a lot of books on agile, this one sells a good story. The underlying principles of agile development are compelling from a developer perspective, though perhaps less so for those who manage developers (and those who manage the managers). This book suggests that agile methods don't necessarily mean that project managers disappear from the scene.
If you're a project manager who feels threatened by the agile wave there might be something here worth investigating.