Most Helpful Customer Reviews
|
|
40 of 45 people found the following review helpful:
5.0 out of 5 stars
Exhaustive look at proven methods, July 7, 2004
If ever there is a book that should be part of a college-level software engineering curriculum as well as carefully read by software engineering development and project managers this is it. Every major iterative development methodology is covered in complete detail, with an emphasis on Agile methods, and a solid business and technical case is provided for the general approach.Why make a case for? As difficult as it may be to believe, the waterfall method is still prevalent despite the large body of literature on rapid, iterative development SDLCs. Indeed, I have worked in environments that claimed to embrace the RUP as the enterprise methodology in principle, yet in practice projects were planned and managed using the waterfall SDLC. Why the disconnect? Managers were set in their ways and had no true understanding of the mechanics or value of Agile and iterative development methods. This book can change that because each major approach is carefully described using the following format for easy comparison and to clearly show strengths and weaknesses: Method Overview Lifecycle Workproducts, Roles, and Practices Values Common Mistakes and Misunderstandings Sample Projects Process Mixtures Adoption Strategies Fact versus Fantasy Strengths versus "Other" More importantly, these approaches are placed in the context of the benefits of incremental delivery, with clearly presented evidence of the benefits, which is provided in Chapter 6. Regardless of biases or preferences, any objective reader will come away with a clear sense of the meaning of 'Agile' and the power and value of iterative development. You will also come away with a good frame of reference with which to compare your own organization's approach to development and delivery, and how to improve it.
|
|
|
14 of 14 people found the following review helpful:
5.0 out of 5 stars
Finally. Evidence., October 29, 2003
I was expecting a lot from this book, having read and enjoyed Larman's prior work. On the other hand, I expected it to be somewhat simplistic as the title implied the target group being managers, which I am not. One of these expectations was correct.Larman's latest presents a wonderful introduction into what iterative and evolutionary development is about. The word "agile" in the title seems a bit displaced as the text mostly discusses about "iterative" and "evolutionary" rather than "agile", but that really is no big deal because what's inside the covers is pure gold for any one. After a thorough introduction to the theory, Larman drops a bomb on the table; the chapter titled "Evidence" is worth the salt alone. Larman has collected an impressive list of references to early, large projects employing iterative and evolutionary development. He also reminds us how the creators of predictive planning based methods have themselves preferred an iterative approach from day one. The book also packs nice descriptions of four iterative and evolutionary processes, namely XP, Scrum, UP, and Evo. The descriptions are clear but, to some degree, repetitive. Although the chapter on evidence is definitely the gold chip, the last 70 pages proved to be a very pleasant surprise. Larman presents a list of practical tips and tricks for adopting and running iterative processes, as well as answers the toughest questions in a Q/A section. Highly recommended. Have your boss read it as well.
|
|
|
18 of 20 people found the following review helpful:
5.0 out of 5 stars
I wish I had had this book ten years ago, March 28, 2004
During the spring semester 2004, I am teaching a course in software engineering. As a major class project, we are developing an application that will scan C/C++ code looking for potential security problems. In my opinion, there is only one way that a class of this type can develop a project of any significance. That is using an agile/iterative development model, where there is a little design, a little coding, a little testing and then go back to design. When I taught software engineering last spring, we used the same model, but were not as agile. Our iterations were longer and we pushed some of the more difficult tasks to the end. As the students noted, "we coded carefully at the start, but then just wanted to get it done at the end." While this scenario might seem to be a problem, I found it gratifying, because it is just like the real world. The authors of this book are also firmly set in the world of software development. While reading it, I was constantly saying to myself, "It is about time." The reason for this singular conversation was that they completely disrespect the waterfall model of software development. In retrospect the use of the waterfall model is similar to the strict use of the word engineering in software development. Namely, the beliefs that the practice of building software development is just like building a bridge or a building. By thinking that all of the parameters can first be determined and then you build the software, an enormous amount of time, effort and expense had been wasted. Software development is a very dynamic process, one where circumstances are in a constant state of oscillation that gets damped down to a limit point as the project nears completion. The waterfall model is one that is implicitly taught in school as well, but the only way we get away with it is because most of the programs that students write are small, well within the bounds of having hard parameters. Therefore, it is possible to completely design the program before coding it. In my experience with students fresh out of college, the two concepts they have the most difficulty with in their first job is the constantly changing requirements and the fact that they will know only a small part of the complete application they are building. And so, all educators must place more emphasis on dealing with changing requirements, and this book is an excellent place to start. Fortunately, the movement towards object-oriented programming and encapsulation has made the change to iterative development easier. A programmer no longer has to be as concerned about possible data and method interactions/conflicts as they had to be when everything was visible to all. I was sold on the iterative method of software development over a decade ago, when I started a job as a software developer. We were building a new product and received changing requirements on a weekly and sometimes almost daily basis. Quite frankly, we had no choice but to adopt an agile development style. I wish I had had this book with me at that time, it would have saved us a lot of stumbling around as we tried to deal with everything.
|
|
|
Most Recent Customer Reviews
|