Skip to main content

When is a model agile? Part 2 of 2

Traits agile models should have

Scott W. Ambler, Prectice Leader, Agile Development, Rational Methods Group, IBM
Scott W. Ambler is a Practice Leader for Agile Development within the IBM Methods group. He develops process materials, speaks at conferences, and works with IBM clients worldwide to help improve their software processes. Scott is author of several books, listed on his Web site at www.ambysoft.com. Scott is also a recognized Ratonal Thought Leader, whose homepage may be viewed here.

Summary:  In When is a model agile, Part 1 , you discovered that agile models fulfill their purpose, are understandable, and are sufficiently accurate. However, this isn't enough, they must also exhibit the additional traits outlined in this tip. They must be sufficiently consistent and sufficiently detailed, they must provide positive value, and they must be as simple as possible.

Date:  01 May 2001
Level:  Introductory
Activity:  412 views

Agile models are sufficiently consistent
An agile model does not need to be perfectly consistent with itself or with other artifacts to be useful. If a use case clearly invokes another in one of its steps, then it should be included in the corresponding use-case diagram with an association between the two use cases that is tagged with the UML stereotype of <<Include>>. However, you look at the diagram and it doesn't! Oh no, the use case and the diagram are inconsistent! Danger Will Robinson, Danger! Red alert! Run for your lives!

Wait a minute. Your use-case model is clearly inconsistent, yet the world hasn't come to an end. Yes, in an ideal world all of your artifacts would be perfectly consistent. But it often doesn't work out that way.

When I'm building a simple business application, I can tolerate some inconsistencies. Granted, there are times I can't tolerate inconsistencies -- witness NASA's recent learning experience regarding the metric and imperial measuring systems when it accidentally slammed a space probe into Mars in 1999. The point to be made here is that an agile model is consistent enough and no more. Mars notwithstanding, models very often do not need to be perfect in order to be useful.

Regarding accuracy and consistency there is an entropy issue to consider as well. If you have an artifact that you wish to maintain, what I call a "keeper," then you will need to invest the resources to update it as time goes on. Otherwise it will quickly become out of date and effectively useless to you. For example, I can tolerate a map that is missing one or two streets, but I can't tolerate one that is missing three quarters of the streets in my town. There is a fine line between investing just enough effort to keep your artifacts accurate enough, investing so much effort that you are needlessly slowing your project efforts down, and not investing enough to keep your artifacts useful to you.

Agile models are sufficiently detailed
A roadmap doesn't indicate each individual house on each street -- that would be too much detail, and would make the map difficult to work with. However, when a street is being built I would imagine the builder has a detailed map of the street that shows each building, the sewers, electrical boxes, and so on, in enough detail that it makes the map useful to him. This map doesn't depict the individual patio stones that make up the walkway to each house -- once again, that would be too much detail. Sufficient detail depends on the audience and the purpose for which they are using a model: drivers need maps that show streets, builders need maps that show civil engineering details.

Consider an architecture model. Depending on the nature of your environment, a couple of diagrams drawn on a whiteboard that are updated as the project goes along may be sufficient. Or perhaps several diagrams drawn using a CASE tool are what you need. Or perhaps the same diagrams supported with detailed documentation are required -- different projects have different needs. In each of these examples, you are in fact developing and maintaining a sufficiently detailed architecture model -- it's just that "sufficiently detailed" depends on the situation.

Agile models provide positive value
A fundamental aspect of any project artifact is that it should add positive value. Does the benefit that an architecture model brings to your project outweigh the costs of developing and (optionally) maintaining it? An architecture model helps to solidify the vision towards which your project team is working; this clearly has value. But, if the costs of that model outweigh the benefits, then it no longer provides positive value. It is probably unwise to invest $100,000 developing a detailed and heavily documented architecture model when a $5,000 investment resulting in whiteboard diagrams would do the job.

Agile models are as simple as possible
You should strive to keep your models as simple as possible while still getting the job done. Simplicity is clearly affected by the level of detail in your models, but it also can be affected by the extent of the notation that you apply. For example, UML class diagrams can include a myriad of symbols, including Object Constraint Language (OCL) -- yet most diagrams can get by with just a portion of the notation. You often don't need to apply all the symbols available to you so limit yourself to a subset of the notation that still allows you to get the job done.


Resources

About the author

Scott W. Ambler is a Practice Leader for Agile Development within the IBM Methods group. He develops process materials, speaks at conferences, and works with IBM clients worldwide to help improve their software processes. Scott is author of several books, listed on his Web site at www.ambysoft.com. Scott is also a recognized Ratonal Thought Leader, whose homepage may be viewed here.

Comments (Undergoing maintenance)



Trademarks  |  My developerWorks terms and conditions

Help: Update or add to My dW interests

What's this?

This little timesaver lets you update your My developerWorks profile with just one click! The general subject of this content (AIX and UNIX, Information Management, Lotus, Rational, Tivoli, WebSphere, Java, Linux, Open source, SOA and Web services, Web development, or XML) will be added to the interests section of your profile, if it's not there already. You only need to be logged in to My developerWorks.

And what's the point of adding your interests to your profile? That's how you find other users with the same interests as yours, and see what they're reading and contributing to the community. Your interests also help us recommend relevant developerWorks content to you.

View your My developerWorks profile

Return from help

Help: Remove from My dW interests

What's this?

Removing this interest does not alter your profile, but rather removes this piece of content from a list of all content for which you've indicated interest. In a future enhancement to My developerWorks, you'll be able to see a record of that content.

View your My developerWorks profile

Return from help

static.content.url=http://www.ibm.com/developerworks/js/artrating/
SITE_ID=1
Zone=SOA and Web services
ArticleID=86986
ArticleTitle=When is a model agile? Part 2 of 2
publish-date=05012001
author1-email=scott_ambler@ca.ibm.com
author1-email-cc=

My developerWorks community

Tags

Help
Use the search field to find all types of content in My developerWorks with that tag.

Use the slider bar to see more or fewer tags.

Popular tags shows the top tags for this particular content zone (for example, Java technology, Linux, WebSphere).

My tags shows your tags for this particular content zone (for example, Java technology, Linux, WebSphere).

Use the search field to find all types of content in My developerWorks with that tag. Popular tags shows the top tags for this particular content zone (for example, Java technology, Linux, WebSphere). My tags shows your tags for this particular content zone (for example, Java technology, Linux, WebSphere).

Rate a product. Write a review.

Special offers