Agile Modeling: Effective Practices for eXtreme Programming and the Unified Process
|
| List Price: | $50.00 |
| Price: | $31.50 & eligible for FREE Super Saver Shipping on orders over $25. Details |
Availability: Usually ships in 24 hours
Ships from and sold by Amazon.com
50 new or used available from $15.88
Average customer review:Product Description
The first book to cover Agile Modeling, a new modeling technique created specifically for XP projects eXtreme Programming (XP) has created a buzz in the software development community-much like Design Patterns did several years ago. Although XP presents a methodology for faster software development, many developers find that XP does not allow for modeling time, which is critical to ensure that a project meets its proposed requirements. They have also found that standard modeling techniques that use the Unified Modeling Language (UML) often do not work with this methodology. In this innovative book, Software Development columnist Scott Ambler presents Agile Modeling (AM)-a technique that he created for modeling XP projects using pieces of the UML and Rational's Unified Process (RUP). Ambler clearly explains AM, and shows readers how to incorporate AM, UML, and RUP into their development projects with the help of numerous case studies integrated throughout the book.
Product Details
- Amazon Sales Rank: #378853 in Books
- Published on: 2002-04-04
- Released on: 2002-03-21
- Original language: English
- Number of items: 1
- Binding: Paperback
- 400 pages
Features
- ISBN13: 9780471202820
- Condition: NEW
- Notes: Brand New from Publisher. No Remainder Mark.
- Click here to view our Condition Guide and Shipping Prices
Editorial Reviews
Review
“…I would not hesitate in recommending this book…” (CVu, October 2004)
“…easy-to-follow…enjoyable writing style…overall the book is impressive…valuable reading…” (Software Testing, Verification & Reliability, March 2003)
...easy-to-follow; enjoyable writing style; overall the book is impressive; valuable reading... -- Software Testing, Verification & Reliability, March 2003
From the Back Cover
"In Agile Modeling, Scott Ambler captures the spirit of skillfully applying the UML, patterns, and more–the balance between too much and too little."
–Craig Larman
Extreme Programming (XP) and the Unified Process (UP) have both caused quite a sensation in the software development community. Although XP offers a methodology for faster software development, many developers find that it does not explicitly include modeling time, which is crucial to ensure that a project meets its proposed requirements. UP developers, on the other hand, have found that the UP approach to modeling is too documentation-intensive and top heavy, thus impeding progress.
Enter Agile Modeling (AM)–– a unique methodology specifically designed to enhance your modeling efforts on software development projects.
In this innovative book, Scott Ambler reviews how to:
- Model on an XP project without detracting from its fast-moving and agile software development approach
- Simplify the modeling disciplines/workflows of the UP without losing any of the true benefits of those disciplines
- Use modeling to explore an issue or to facilitate communication
- Effectively apply the UML, and extend it with other methodologies, to meet your real-world development needs
- Reduce the documentation burden on your project by writing agile documents
- Use simple modeling tools, such as index cards and whiteboards, and know when to use complex CASE tools
- Rethink your approach to work areas, modeling teams, and modeling sessions
The companion Web site includes updates to the book, links to XP and AM resources, and ongoing case studies about AM.
Wiley Computer Publishing
Timely. Practical. Reliable.
About the Author
SCOTT W. AMBLER is President and a senior consultant of Ronin International (ronin-intl.com), a software services consulting firm that specializes in software process mentoring and object/component-based software architecture and development. Scott is the author and/or coauthor of numerous books and also coeditor, with Larry Constantine, of the Unified Process series from CMP Books. Scott is a contributing editor with Software Development magazine and a columnist with IBM developerWorks. Scott has spoken at UML World, Software Development, OOPSLA, Object Expo, Java Expo, and Application Development.
Customer Reviews
A Challenge from Common Sense
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.
Seeing the forest through the trees
In this book, Scott Ambler provides a practical approach to modeling that allows you to successfully deploy best practices on your agile software development project. From use case modeling to deployment diagrams, agile modeling defines these best practices for rapidly moving from requirements to code in a single, easy to read book. Additionally, Scott presents many of the nuances of software modeling that cannot be found in any other book.
Perhaps the most interesting part of Agile Modeling is that it is not only a book about a great software development methodology; it also suggests cultural changes to the way that we view modeling. These changes blur the line between traditional approaches such as those espoused by the Unified Process and the new culture espoused by XP. These ideas are very much in line with the way that software is successfully produced.
This book is not an entry-level UML book. If you are looking for basic UML, look at some of the entry level UML books. Instead, this book geared toward those who are actively producing customer grade software applications. It hits the mark squarely for those who want to be more successful in this endeavor.
Ambler's most valuable book to date
The hype that grew around eXtreme Programming (XP) in the year 2001, and the publication of now almost 2 dozen books devoted to XP has not cleared up the original vagueness of what practices are allowed and what aren't. To a casual observer the XP culture seems replete with "Thou shalt not's"¯ don't do Big Requirements Up Front, don't do Big Design Up Front, don't build models because it's only the code that matters, etc. For those of us who think it's important to have a map of where you are going before you start a long trip, some of the radicalness of XP was¯well, too radical and too unplanned.
Scott Ambler's new book, Agile Modeling, addresses a sane middle ground between the apparent unstructured XP and the overly structured approach in the Rational Unified Process (RUP). Agile Modeling is arguably Ambler's best book to date. It conveys an approach that is truly a confluence of best practices and does so in a very readable, accessible presentation.
Ambler presents Agile Modeling (AM) as a set of values, principles and practices. AM's values are borrowed directly from those in XP: Communication, Simplicity, Feedback and Courage, with Ambler's addition of "humility". In my experience this additional value is a defining characteristic of an effective modeler and mentor. From these 5 values Ambler defines the principles for AM, including: Software is your Primary Goal, Travel Light, Embrace Change, use Multiple Models, etc.
It is interesting to me that no one would refute these principles: they are too close to Motherhood and Apple pie. But it is disturbing how seldom I see any of these principles actually embraced by the dozen or more organizations I provide mentoring services to each year.
The bare-metal practicality of AM is in the chapters on "Agile Modeling in Practice". Here Ambler goes into detail on the practices that support the AM principles. Are you curious how your culture might adopt AM? See his chapter on "Nurturing an Agile Culture". In a quandary over what expensive OO CASE tool to buy? See "Using the Simplest Tools Possible?" In his broad reach in this book Ambler covers issues surrounding how you can effectively set up your work areas, how to conduct modeling sessions, how to staff your AM teams, and more. And each chapter ends with a pragmatic commentary on "How to Make This Work in the Real World".
I predict that if one chapter is read more than any other it will be the one on "Agile Documentation". This is also the longest chapter in the book, and Ambler skillfully addresses the two big questions of "Why Do People Document?" and "When Does a Model Become Permanent?" And if for some perverse reason you didn't read any chapter but this one, it alone would justify the cost of the book.
The last two sections of the book show how to apply these principles and practices to an XP environment (Part 3), and then how they can be applied to a Unified Process environment (Part 4). Again the approach is on the practical application of AM so that you can have a better chance of succeeding on your next (or current) software project.
If you are a software developer, a technical manager or project manager, you cannot afford to dismiss this book. Forty years ago no one did the "waterfall" process (Winston Royce hadn't defined it yet) and forty years from now we will certainly be building software in ways we have not yet even conceived. But this year and for the foreseeable future we will be using every idea from Agile Modeling to build better software faster. As Ambler says about building an agile culture, "You can be agile or you can be fragile." That says it all, so get this book and learn how AM can make you a winner.



