Rating: Summary: Disappointing Review: About 200 pages of excellent content compressed into 380 plus pages. Huge amounts of repetitive cut-and-paste text interspersed fresh information (ex. compare the only complete paragraph on page 200 with the second paragraph on page 191). This book rides on the current popularity of Agile methodology and the author's reputations. Read it if you have the time - it does contain valuable insights.
Rating: Summary: So many words - so little to say! Review: Although this is a painfully repetitive book, the author does have a few interesting things to say. However, most of it is common sense, and if you've been modeling for any length of time you are likely to be familiar with this stuff. The worst point about this book is that it doesn't discuss Model Driven Architecture (MDA). This is the latest initiative from OMG, and the future of UML. In fact, agile modeling practice seems to run counter to MDA in several important areas. In light of MDA, agile modeling seems to be quite a bad idea! I think Scott Ambler doesn't do himself (or his readers) any favours by stretching out what is really a very lightweight topic to fill such a large book.
Rating: Summary: A Challenge from Common Sense Review: An adept application of common sense--and the author's significant experience--to the use of models in software development.A model can be almost anything that developers make to describe the software that they build--just like an architect's drawings. A given software development effort might call for any number of different types of models including data models, class models, sequence diagrams, dataflow diagrams, statechart diagrams, etc. The set of models used on any particular project will depend partly on the nature of the project and partly on the preferred methodology of the software developers. Agile Modeling (AM) is not itself a software development methodology. It is a collection of principles and practices to follow when using models to develop software according to a methodology like Rational Unified Process (RUP) or eXtreme Programming (XP). Many of the practices derive from an application of XP concepts. AM challenges a number of practices widely followed (or at least preached) in organizations developing software: 1. Specializing personnel in producing a single type of model 2. Dedicating work sessions to producing a single type of model 3. Saving models after the software is developed 4. Keeping models up-to-date during and after the development project 5. Using sophisticated software to assist in modeling 6. Finishing models before coding software AM does not in all cases prohibit these practices, but it emphasizes that the purpose of a software development project is to develop software--not just to develop models. The practices of AM help to keep models in their proper subordinate relation to the working software that is the true goal of any development project. People with more luck than experience might doubt the need for agile modeling. Please accept from a reader with much more experience than luck an assurance that the need is great. This reader has personally witnessed development projects undertake the costly construction of models having at best a tenuous relation to the software to be developed. It should in fact come as no surprise. Who would not agree that it is easier to waste other people's money than to abandon one's own obsessions? At any rate, Mr. Ambler tries to keep us on track with this excellent book, challenging us to use models but to stay focused on software. Different readers are likely to be challenged to different degrees by AM's various principles and practices. This reader easily accepted, for example, the practice "Create Several Models in Parallel," counseling us to construct multiple model types simultaneously and to eschew the antipatterns of "Single Artifact Developers" and "Single Artifact Modeling Sessions" (pp. 47-50). The principle "Maximize Stakeholder Investment" proved more challenging. It counsels that project stakeholders (i.e. the businesspeople commissioning the development project)--not software developers--ought to decide whether to develop software documentation (p. 37). True, the stakeholders pay the bills, but architects and accountants also have paying clients who are nevertheless not able to dictate everything about their work. Clearly software development should have professional standards whose suspension may not be commanded even by a paying client. Another challenge for this reader: "Agile modelers typically do not bother to distinguish between the different "flavors" of modeling, . . . (p. 252)." Here Mr. Ambler is writing about what Martin Fowler calls "perspectives"--conceptual, specification, and implementation--that a model might take on its subject. These perspectives correspond to the business analysis, system analysis, and system design phases of a software development project. In his "UML Distilled," Mr. Fowler differs sharply from Mr. Ambler: "Understanding perspective is crucial to both drawing and reading class diagrams. . . . it is very important to separate the specification perspective and the implementation perspective (p. 52)." Or does he? Mr. Ambler hedges his position in the very same sentence: ". . . they just model appropriately as the situation calls for." Now, how can one "model appropriately" if one does not first "bother to distinguish"? Elsewhere too, the advice of AM can seem equivocal (or is it "nuanced"?). The practice "Collective Ownership" allows everyone on a project to work on any of the project's models. This "power to the people" is however greatly diluted by the practice "Model with Others," prohibiting anyone from modeling alone. Further dilution appears in the case study, where it is recognized that one would be foolish to work on a database design without consulting "Brendan, the database administration (DBA) expert on the team (p. 288)." It is interesting to compare Mr. Ambler's populist principles for teamwork with the more elitist principles of Frederick Brooks in "The Mythical Man-Month." Mr. Brooks begins his third chapter by citing the "wide productivity variations between good programmers and poor ones." He derives from this observation a software development organization patterned after a surgical team--with one operating surgeon and a small flock of assistants. Although starting from opposite principles, Brooks and Ambler finish peculiarly close in their team-building practices. A la XP, Brooks's ideal team pairs the "surgeon" with a colleague equally gifted though less experienced. Inversely, Ambler approaches Brooks by listing in Chapter 12 the qualities of superior software developers. "Everyone can learn from everyone else" is one of the "supplementary principles" of agile modeling, but clearly some people have less to learn than others. Mr. Ambler seems well read. He frequently cites related books throughout the text, adding a special recommendation here and there. One of these recommendations surprised this reader, who was astounded that Mr. Ambler found "UML for Database Design" by Messrs. Naiburg and Maksimchuk "a good read (p. 170)." You may find this reader's differing opinion filed with Amazon.com Our difference on this small point serves only to highlight the strength of this reader's recommendation. This is a provocative and well-reasoned explication. Agile Modeling will leave its mark.
Rating: Summary: Very, very practical Review: Finally somebody wrote a book like this. I've been following the AM site for awhile now and have been very impressed, and this book goes one step further. Anybody involved with software development needs to read this book. I've been showing it to a couple of Java developers who swear up and down that modeling is a waste of time, but now with this book they're rethinking their ways. If you're working on a project where everyone thinks that modeling means writing a lot of documentation, and I've been on those, then you need to read this book. It's okay to create models on whiteboards!!!!! It's okay to not spend days transcribing those models!!!!! AM describes real-world, practical techniques for improving your modeling and documentation efforts. Although there is only one chapter on documentation it very likely is the best advice that you're ever going to read on the subject. I wish this book was available years ago when I first started out as a developer, I'd be significantly more productive now. Modeling is one of the few skills that I can see using throughout my entire career -- I was a C programmer a few years ago, I'm a EJB developer now, and a few years from now I don't know what language I'll be programming in. What I do know is that I'll still be modeling, and I'll still be writing documentation, so I need to get good at these two things. Agile Modeling describes exactly how to do this.
Rating: Summary: If you live in a world of too much documentation, read this Review: For those few places left that steep themselves in documentation and don't have a legally-required reason to do so (do they exist?), this book should help motivate why producing too much documentation and doing too much modeling up front can hurt rather than help. Even for a company that sees itself as lightweight, he's got some rough assessments you can do to see if you're overdoing things, which were relevant even where I work. The only bad thing is that it was a very theory and ideal oriented book. It didn't contain concrete examples of what Agile Modeling would look like on a real project, how it would feel, and how what models were produced would evolve. This made it a bit difficult to verify my interpretation of the book.
Rating: Summary: I recommend this book Review: Good book with lots of behind the scenes process info about how to implement agile modeling techniques. If you are looking for step by step instructions to modeling or how to model, look elsewhere. It doesn't cover specific modeling, but techniques. Some of the techniques are common sense, but there were lots of suggestions of how to apply them in a difficult political environment. I did not completely agree with the often repeated statement that unless you apply all of the techniques you cannot truly claim agile modeling success, which I think is a somewhat arrogant statement. Agile modeling is a huge cultural change and implementing as much as possible, if not all, is still a great idea.
Rating: Summary: Modelling for the real world Review: I really liked this book. Ambler describes how modelling actually works in the real world, not how it is supposed to theoretically happen. It is about time somebody stood up and said that modelling is something that all developers should do and that it isn't simply the purview of "professional modellers". It is also refreshing to see someone come out and say that you don't have to do all your modelling up front, that you don't have to use complex CASE modelling tools, and that you don't have to restrict yourself to just the UML. This book provides practical advice for any actively involved in building software. I especially liked how Ambler didn't waste any time teaching me the basics of object orientation, the UML, data modeling, or any of the other techniques that he refers to in the book. If he had then it would have been huge. He provides summary of a large number of common models in the back of the book, I was surprised how many there were, and suggests when and when not to use them. This is worth the cost of the book alone. I don't see what the people promoting the MDA are complaining about, Agile Modelling could easily fit right in with the MDA vision. Agile Modelling tells you to use the simplest tool for the job. If someone was to build a CASE modelling tool that actually fulfilled the MDA vision then an Agile Modeller would very likely use it. Of course, such a tool doesn't actually exist yet. Probably why the book doesn't waste any space on it. I have to agree that the book could have been edited better. It did repeat in places but that's actually good practice when you're trying to teach someone new techniques. Too bad the MDA people didn't understand this. If they had they might have learned something that they could actually use in practice. I think we'll all be waiting a long time for the MDA academics to produce a tool that fulfills their vision. Until then I'll be following the Agile Modelling practices on my whiteboard.
Rating: Summary: We love it, managers hate it Review: I work at a consulting firm where the management lies and rips off the customer all the time. The day someone brought in this book and start talking about agile modeling, the managers were scared. A meeting was called and this book was banned. The reason is simple: If everyone practice what this book is advocating, the business of charging the customers like hell by purchasing expensive modeling software, creating tons of documentations without doing any real work, and always prolonging the project will end sooner than the owners getting their BMWs and McMasions. The simple fact that this little book caused headaces to the criminal minded management team tells me how great it is! I wish I can give it ten starts!
Rating: Summary: I've been waiting for a book like this Review: If you are doing software development of any kind, you should read this book. Especially if you are doing Extreme Programming and you erroneously believe modeling has no place in XP. Or, your doing the Unified Process and you feel that your models and documents are more important than a working system, or you feel you are bogged down in documentation and required artifacts (more likely). Agile Modeling (AM) is a modeling methodology that enhances your modeling endeavors despite your process methodology inclination. Agile modeling will help you effectively incorporate modeling into your organization. The title is only partially accurate as the book covers a lot more than modeling. I know from experience that picking titles is tricky (you can't please everyone). You don't need to be a UML expert to get value of this book. Any software developer should get value out of this book. Modelers, software developers and yes managers will find this material useful. In fact you may want to buy a copy and put it on your manager's desk. This book is original and well thought out. It is also well written and very readable. I wish there were more examples of applying the different artifacts in different phases of the XP life-cycle, but there has to be room for the next edition. The depth is appropriate. Many UP developers (and other prescriptive processes) get bogged down in the tonnage of documents and artifacts that are required. They wonder if they are ever going to have time to actually write the code. XP offers a methodology for building high quality software fast. However, many XP developers, and I've spoken to them about this very subject on many occasions, find that XP does include time to do models. This books shows how to integrate XP and modeling. This book sets the record straight about design and Extreme Programming. Actually, Kent Beck set the record straight with the first book on XP when he said "In the time it would take you to code one design, you can compare and contrast three designs with pictures." Kent Beck's views were corrupted over the years for various reasons that this book explains and finally this book sets the record straight once and for all about XP and modeling. This book drives the point home about XP and modeling and also explains how to avoid following prescriptive methodologies that require certain artifacts. Instead the book brings out that you should model to understand the problems and only apply the right artifacts, i.e., all modeling lead to writing code. The AM book transcends just being a book on modeling, despite the title, the book covers many aspects of developing software. The book endeavors to be real. By real I mean it talks about real issues and how things are handled in the real world not a hypothetical world, i.e., not the perfect world covered by most books. For example, the chapter on documentation is an excellent coverage of the subject. Like the original XP book, the AM book lists values, core principles and practices. It also added supplementary principles like "Content Is More Important Than Representation". A key take away from the book is models are important if they help you understand and solve problems. And, models do not have to be perfect in fact they can be thrown away when you are done with them. After all is said and done: "Software is your Primary Goal". Strangely enough, the author, Scott Ambler is the author of numerous books (and by numerous I mean a lot) for the Unified Process, and UML. He also contributed to the Mastering EJB Book, and the Java Element of Style book. All his work in UP seems strange since AM seems to have closer ties to XP than UP, but that is probably my own warped misconceptions of the world. Bottom line, Scott has mastered his craft of writing and I really enjoyed his writing style. The first few chapters seemed a little slow probably because it has been covered before in other books. The chapters on AM and XP were really informative and useful (as was the chapter on agile documentation mentioned earlier). If you are doing software development of any kind, you should read this book. It is an informative and enjoyable read.
Rating: Summary: YOU need this book! Review: If you are involved in any way with software development, you need this book. Although the title might suggest that it's concerned only with modeling, or with agile processes, the book implicitly (and necessarily) deals with most if not all aspects of the business of developing software. Because the work was itself actually created using some of the agile practices (most notably, interaction with "customers" via the Agile Modeling mailing list), it speaks remarkably well to the concerns of actual practitioners, and is a remarkably thorough treatment of an issue with broad scope. Following the best principles of both agile development and open-source (and key AM values of Humility and Courage), the author revised and extended the book over the course of several months, displaying many draft elements on the AM website to be reviewed (and criticized) by fellow practitioners. This book is grounded in reality, discussing what practices (agile and otherwise) people actually use, how they use them, and which of them work. Moreover, it describes many of the MOTIVATIONS behind certain practices, which is invaluable information both in applying (or eschewing) them, and in understanding and predicting the attitudes of various stakeholders to them. Because it ties so many ideas together, this book will help to define software engineering into the future, even though it does not prescribe a methodology. It is well-structured and easy to use as a reference. In short, this book has high technical AND business value. Indeed, it has value beyond the software business, probably across most business and engineering disciplines. I have my own copy, and plan to give some away as well. Buy it.
|