You are on page 1of 3

Agile Modeling Best Practices

http://www.agilemodeling.com/essays/bestPractices.htm

Agile Modeling Best Practices

Design

Home | AMDD | Best Practices | Architecture | Requirements | Analysis | | Documentation | Models | Modeling Style | Contact Us | Announcements | FAQ In the Autumn of 2000 when work first began on what was to become the Agile Modeling (AM) methodology we focused on defining a collection of values, principles, and practices for modeling and documentation on software development projects. The principles and practices were fairly granular, describing what you do in during the acts of modeling and documentation. Although valuable, many people found these principles and practices to be too difficult to understand, because of their granularity but also because of their vagueness. Then in 2003 the Agile Model Driven Development (AMDD) lifecycle began to coalesce to describe when modeling occurs on projects (or programmes as the case may be), such as architectural envisioning and requirements envisioning at the beginning of a project or model storming on a just-in-time (JIT) basis throughout the project. This in turn revealed higher level AMDD "best practices", overviewed in the pattern language map of Figure 1.

Ads by Google

Agile It Agile Scrum Software

Figure 1. The best practices of Agile Modeling.

The best practices of AMDD are: 1. Active Stakeholder Participation. Stakeholders should provide information in a timely manner, make decisions in a timely manner, and be as actively involved in the development process through the use of inclusive tools and techniques. 2. Architecture Envisioning. At the beginning of an agile project you will need to do some initial, high-level architectural modeling to identify a viable technical strategy for your solution. 3. Document Continuously. Write deliverable documentation throughout the lifecycle in parallel to the creation of the rest of the solution. 4. Document Late. Write deliverable documentation as late as possible, avoiding speculative ideas that are likely to change in favor of stable information. 5. Executable Specifications. Specify requirements in the form of executable "customer tests", and your design as executable developer tests, instead of non-executable "static" documentation. 6. Iteration Modeling. At the beginning of each iteration you will do a bit of modeling as part of your iteration planning activities. 7. Just Barely Good Enough (JBGE) artifacts. A model or document needs to be sufficient for the situation at hand and no more. 8. Look Ahead Modeling. Sometimes requirements that are nearing the top of your priority stack are fairly complex, motivating you to invest some effort to explore them before they're popped off the top of the work item stack so as to

1 di 3

26/03/2013 23.46

Agile Modeling Best Practices

http://www.agilemodeling.com/essays/bestPractices.htm

reduce overall risk. 9. Model Storming. Throughout an iteration you will model storm on a just-in-time (JIT) basis for a few minutes to explore the details behind a requirement or to think through a design issue. 10. Multiple Models. Each type of model has it's strengths and weaknesses. An effective developer will need a range of models in their intellectual toolkit enabling them to apply the right model in the most appropriate manner for the situation at hand. 11. Prioritized Requirements. Agile teams implement requirements in priority order, as defined by their stakeholders, so as to provide the greatest return on investment (ROI) possible. 12. Requirements Envisioning. At the beginning of an agile project you will need to invest some time to identify the scope of the project and to create the initial prioritized stack of requirements. 13. Single Source Information. Strive to capture information in one place and one place only. 14. Test-Driven Design (TDD). Write a single test, either at the requirements or design level, and then just enough code to fulfill that test. TDD is a JIT approach to detailed requirements specification and a confirmatory approach to testing.

Recommended Resources

Agile Model Driven Development (AMDD) Agile Models Distilled Agile Requirements Best Practices Be Realistic About the UML Best Practices for Agile/Lean Documentation Introduction to the Diagrams of UML 2 Introduction to Object Orientation (OO) and UML UML Data Modeling Profile UML Style Guidelines

The Object Primer 3rd Edition: Agile Model Driven Development with UML 2 is an important reference book for agile modelers, describing how to develop 35 types of agile models including all 13 UML 2 diagrams. Furthermore, this book describes the techniques of the Full Lifecycle Object Oriented Testing (FLOOT) methodology to give you the fundamental testing skills which you require to succeed at agile software development. The book also shows how to move from your agile models to source code (Java examples are provided) as well as how to succeed at implementation techniques such as refactoring and test-driven development (TDD). The Object Primer also includes a chapter overviewing the critical database development techniques (database refactoring, object/relational mapping, legacy analysis, and database access coding) from my award-winning Agile Database Techniques book. Agile Modeling: Effective Practices for Extreme Programming and the Unified Process is the seminal book describing how agile software developers approach modeling and documentation. It describes principles and practices which you can tailor into your existing software process, such as XP, the Rational Unified Process (RUP), or the Agile Unified Process (AUP), to streamline your modeling and documentation efforts. Modeling and documentation are important aspects of any software project, including agile projects, and this book describes in detail how to elicit requirements, architect, and then design your system in an agile manner.

Rules for Agile Success priocept.com Read our free report on how to work with agile development partners Software Testing Tools www.telerik.com/software-te Create Automated Functional Tests with Telerik Test Studio. Try it Selenium Suite testingbot.com Run Your Selenium Suites Online Over 30 Browser/OS Combinations

2 di 3

26/03/2013 23.46

Agile Modeling Best Practices

http://www.agilemodeling.com/essays/bestPractices.htm

The Elements of UML 2.0 Style describes a collection of standards, conventions, and guidelines for creating effective UML diagrams. They are based on sound, proven software engineering principles that lead to diagrams that are easier to understand and work with. These conventions exist as a collection of simple, concise guidelines that if applied consistently, represent an important first step in increasing your productivity as a modeler. This book is oriented towards intermediate to advanced UML modelers, although there are numerous examples throughout the book it would not be a good way to learn the UML (instead, consider The Object Primer). The book is a brief 188 pages long and is conveniently pocket-sized so it's easy to carry around.

Let Us Help
We actively work with clients around the world to improve their information technology (IT) practices, typically in the role of mentor/coach, team lead, or trainer. A full description of what we do, and how to contact us, can be found at Scott W. Ambler + Associates.

Copyright 2005-2012 Scott W. Ambler

This site owned by Ambysoft Inc.

3 di 3

26/03/2013 23.46

You might also like