hide all comments


Agile Development and DSM at XP2006

May 23, 2006 14:29:35 +0300 (EEST)

I'm really pleased to announce that Microsoft and MetaCase -- in the persons of Alan Cameron Wills and myself -- will be co-operating once again to run the Workshop on Agile Develoment with Domain-Specific Languages at XP2006, June 19th. Last year the workshop was in Sheffield, UK, which was great for Alan; this time it's in Oulu, Finland, so a nice piece of symmetry for the co-organizers. And while Sheffield has nice cutlery factories ;-), Oulu has the midnight sun, which has to be seen to be believed: beautiful! Ah OK, the Pennine hills around Sheffield are beautiful too: I grew up around there, and really enjoyed last year's train ride through the hills from Manchester to Sheffield.

The theme of the workshop is "DSM with full code generation: the ultimate refactoring tool?". As someone who practices XP (admittedly as poorly as everything else I do), it's been fascinating to see the parallels it has with DSM. Pretty much all the agile practices can be transferred straight into modeling -- Agile Modeling is one way, sort of, but it's when you can build your own modeling language and generators that things really start coming into focus. Here's the workshop blurb:

This workshop will continue the success of last year in investigating the application of Domain Specific Languages within Agile development. A Domain Specific Language (DSL) is designed to express the requirements and solutions of a particular business or architectural domain. SQL, GUI designers, workflow languages and regular expressions are familiar examples. In recent years, Domain-Specific Modeling has yielded spectacular productivity improvements in domains such as telephony and embedded systems. By creating graphical or textual languages specific to the needs of an individual project or product line within one company, DSM offers maximum agility. With current tools, creating a language and related tool support is fast enough to make DSM a realistic possibility for projects of all sizes.
...and to refactor, you just change the generator!

It's just under four weeks to the start of the workshop, and three to the deadline for submissions (freeform and relaxed, like everything at XP!). I already know of one customer and one reader of this blog who is going to be there -- hope you can make it too!


Use the Simplest Tools

[Scott Ambler] May 24, 2006 13:26:48 +0300 (EEST)

I'm glad to see that a workshop like this is occuring at XP2006.  In Agile Modeling we follow the practice Use the Simplest Tools which means we apply the best tool for the situation at hand. Often that is an inclusive tool such as a whiteboard or paper, and sometimes that's a very complex CASE tool which enables us to do very sophisticated modeling.  Although I personally love to use these sorts of tools, I find that few organizations have done what it takes to enable their use -- e.g. pick the right tool for the situation, purchase the tool, train their staff on its use, do what it takes to keep the staff within the organization (people with great modeling skills are in demand and can easily find employment elsewhere), and so on.

DSL tools should be as easy to use as a white board

[Laurent Safa] May 24, 2006 16:46:09 +0300 (EEST)

At my company, Matsushita Electric Works, Japan, we are experimenting with applying DSM to the development of embedded software for appliances with the help of MetaCase.

We have verified the benefits of DSM in terms of productivity and quality of the generated code, that was the easy part. Defining the DSL and writing the code generator are straight forward as long as there is:

  • a well-defined framework that exhibits high-level domain concepts
  • sample application source codes that demonstrate best practices and coding guidelines
  • a domain expert with enough time to spare
  • a good meta-modeling tool

The weakness of DSL and modeling tools in general may be about ergonomics.

At the office we have a 5m wide x 2m high white board wall were practitioners can quickly draw good models, and it is very easy for many people to collaborate. One will make additions in red, another one will find an empty space to add his suggestion, others will stand up and discuss next to a drawing pointing fingers at such and such artifact, and finally different views of the model will be visible at once. This is where most of the conceptual activity occurs, and that would be great if modeling tools could provide for the same usability.

Hopefully, DSL's ability to generate 100% of product-quality application logic code helps mitigating this weakness.

Use both whiteboards and great CASE tools

[Scott Ambler] May 26, 2006 13:02:33 +0300 (EEST)

I'd be surprised to find a CASE tool that can come close to the usability of a whiteboard.  Perhaps the only way to do it is to take a digital snapshot of the board and then run it through some converter software which turns it into a CASE tool format which you can then continue to edit in your tool.  This would be a one-way trip, and would be quite difficult to pull off although there has been some success creating Visio files of flowcharts drawn on whiteboards.

A more realistic approach is to do the conceptual thinking at the whiteboard in the manner that you suggest because that the simplest tool for the job.  Once this thinking is done, transcribe it into the tool and then take it from there.  This is the type of thing we do in the Agile Modeling world all the time.