Agile Modeling Home Page

Are You Ready For the MDA?

Scott W. Ambler Home Page
 
   Home  |  AMDD  |  Best Practices  |  Architecture  |  Requirements  |  Analysis  |  Design  |  Documentation  |  Models  |  Modeling Style  |  Contact Us  |  Mailing List  |  FAQ
Agile Modeling The Object Management Group (OMG)’s Model-Driven Architecture (MDA) has gained significant mindshare within the IT industry this past year.  Although the MDA is a really wonderful theory, there are clearly many challenges which need to be overcome.  Assuming that you don’t find these challenges too daunting, are you ready for the MDA?  The critical issues that you must consider are:  

 

  1. Do you currently have highly skilled modelers?  MDA only works when you have people with the right skills, and gut feel tells me that at best only one or two percent of all developers have these skills.   

  2. Do you have people on staff that could become highly skilled modelers?  If you don’t have sufficient numbers of modelers now, perhaps over the next few years you might be able to identify and then train and mentor people in those skills. 

  3. Are you able to attract and retain highly-skilled modelers?  If you don’t have the uber-modelers that the MDA requires you can always hire them, although many other organizations will also think along these lines and will be desperate to hire these people away from you so you’ll need to be very good at retaining them. 

  4. Do you have people who are both strong modelers and strong coders?  Even when you're creating these sophisticated models you'll still need to code, be it action semantic language (ASL) code in your platform independent models (PIMs), object constraint language (OCL), or even platform specific source code in Java or C# to implement the logic which your tool(s) didn't generate. 

  5. Are your stakeholders sophisticated enough to understand PIMs?  In the late 1980s, when complex modeling tools were first popularized, we discovered that our business stakeholders had great difficulty understanding the abstract models which we created.  We learned that we needed to use simpler techniques and simpler tools with our users, and that when we did so that they could become actively involved with specifying systems.

  6. Can you find a modeling toolset which fulfills your actual needs?  How usable/learnable is the tool(s)? MDA only works if you can find modeling tools which meet your actual needs.  You will likely discover that you need to find a single modeling tool – although the OMG’s XML model interchange (XMI) sounds great in theory the reality is that there doesn’t yet seem to be a combination of tools which doesn’t exhibit a loss of information when sharing models between them.

  7. Do you have a viable testing strategy in place?  Part of building a system is validating that it works.  Unfortunately I don’t know of any modeling tools which support some form of test-driven modeling (TDM), or perhaps we should call it test driven MDA (TDMDA), so how are you going to prove that your system actually works?  See Jason Gorman's thoughts on the issue.

  8. Are you willing to tie your fortunes to that of the tool vendor?   With the MDA approach to development you become extremely reliant upon the modeling tools which you use.  This wouldn’t be so bad if it was easy to share models between various tools, but frankly the tool vendors have little motivation to actually support this functionality because they prefer to have you locked into their product.  Worse yet, because each tool has it's own unique extensions (e.g. their own ASL, various non-UML models) you won't be able to easily transition staff between tools.

  9. Will senior management stay the course long enough to succeed?  To truly reap the benefits of MDA you need to have a cross-system, multi-year strategy in place.  How well have these sorts of strategies worked out in the past?

  10. Are you allowed to be agile? Are you adopting the MDA to soothe the worries of the bureaucrats among us, or are you doing it to actually be successful at software development.  Hopefully it's the latter, and if so shouldn't you try to take an agile approach to the MDA?

When you stop and think about it there is very little opportunity for MDA within business application development.  Yes, there are very likely wonderful opportunities using MDA tools for software simulation or the development of embedded software; these environments tend to have developers with the requisite skillset and there are several tools specifically targeted at these market niches.  However, this is a spectacularly small percentage of the overall market. 

 

Recommended Resources

 

The Object Primer 3rd Edition: Agile Model Driven Development (AMDD) with UML 2   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   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.
Elements of UML 2.0 Style   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 Me Help

I actively work with clients around the world to improve their information technology (IT) practices as both a mentor/coach and trainer.  A full description of what I do, and how to contact me, can be found here

 


Copyright © 2004-2009 Scott W. Ambler

This site owned by Ambysoft Inc.
Agile Data (AD)  |  Agile Unified Process (AUP)  |  Enterprise Unified Process (EUP)  |  My Writings   |  IT Surveys  

Follow Scott W. Ambler on Twitter