Friday, August 31, 2007

DSM it yourself or not?

Juha-Pekka from MetaCase started what could become an interesting discussion, triggered by a panel discussion on the recently held Code Generation 2007 conference. I also like Peter Bell's comment to it as it shows how reality often differs from the toolmaker's ideal scenario.

The issue: Should companies develop their own DSM languages (the scenario with the biggest potential win.... if the weather's nice, the beer is cold, the home team wins and you don't mind butchering the cow for the barby yourself), or....would DSM actually benefit from market players providing shrink-wrapped, ready-to-consume DSM languages, tools and generators that won't provide the 15-times faster "its-amazing-but-true" development cycle, but something a bit more modest.

My view from it now, is that the shrink-wrap approach might actually work better for DSM acceptance. A 40 to 100% faster cycle is still one hell of a business proposition and will get most companies adopting the approach without much worry, provided they can start working with it across the board within say a month. Leaving the "customize it further when you're up to it" part open to choice would of course be a big plus for those willing to venture that road.

I think that no matter how hard the tool vendors scream that building a DSM with their tool is really easy, the potentially interested:
a) in most cases do not have the time to start a DSM learning process
b) will always be worried about their DSM expert leaving, just the worry is enough to decline
c) rather leave the DSM evolution up to someone else and just get an update, for which they'll simply pay
d) would trust those updates better than their own developer's update work, if also many other companies use the same DSM
e) would appreciate if they could in some way influence (read: help) the DSM evolution process

Question for a DSM tool vendor would be: Where to start, what domain to take.

Well there's many candidates...Series 60, Symbian, Autosar, Qtopia, and what have you. It could make sense for DSM tool vendors to pick their niches and change their business model from trying to be something for everybody to being a no-brainer for most of the companies in just a single area. Let's face it, there's not going to be anything like Moore's tornado phase for DSM tools. Furthermore, the category is still in its very early lifecycle where only the tech enthusiasts look into it, nowhere near the early adopters. I believe it's the perceived difficulty of adopting it, the risks associated with that perceived difficulty and the fact that most decision makers simply do not see "maintaining your own language yourself" as a business proposition they should accept immediately, is what seems to be holding DSM back from being adopted better.

Thursday, May 17, 2007

Still connected to DSM

It's been a while since my last blog posting. Reason is a change in job focus from software development to performance & business process management while changing MetaCase for QPR Software Plc. While catching up it was nice to see the overwhelming interest in the annual DSM workshop at OOPSLA forcing the organizers to make it a 2-day event. I suppose that with even the OMG now seriously interested in DSM the organizing committee should now seriously start to consider transforming the DSM workshop into a DSM conference: I believe we're close enough to critical mass to get enough sponsors in, provided all is well organized and thought-through.

Although my job responsibilities have turned me toward a significantly different community, it's nice to be still involved with DSM, if some of your hard-core DSL aficionados would still consider BPMN a true DSL. It's been designed-by-committee after all...yuk! But then, in the area of describing business processes I believe the need for a company-specific BPL becomes less of a core requirement for being able to generate something that will actually execute it. I bet that for the bulk of enterprises BPMN will do just fine whereas UML falls terribly short for anyone wishing to do MDD.

Monday, February 26, 2007

IT-Director on MetaEdit+

Philip Howard of the Bloor Research analyst group posted his vision on using domain-specific modeling languages in the IT world on IT-Director.com. It involves the use of MetaEdit+ for improving the practice of event processing.

Next Big Language

Steve Yegge talks about the inside information he obtained about the Next Big Language, providing details about all its features and must-have's without revealing its name. Aside from the - in my opinion - friggin' boring discussion he triggered (I didn't make it to the end of the thread, not even close), he makes some solid remarks:
"I want to encourage people to make their own languages, because doing it makes you a world-class programmer. Seriously. Not just a better programmer, but a best programmer. I've said it before, and I'm sticking with it: having a deep understanding of compilers is what separates the wheat from the chaff."
It may well be that Steve is right in all or many of the desires he has for the next big programming language. Personally, I do not see much need for the next big language (NBL) as I think the next small language (NSL) makes a hell of a lot more sense.
The NBL will be a generic monster. Sure, it may be a face-lifted version or remake of a current big language, but there is no way you will make a lean, agile, expressive and performing language out of it. The B in the acronym inevitably leads to compromise, to general-purpose and therefore to a lack of rise in abstraction. Bill Gates already spoke about abstraction rise and the lack of it only leading to ugly things at the Gartner Symposium in 2004:
"The key breakthrough in coding is to write less code. I mean, there's nothing magical that's ever going to make a million lines of code a pretty thing. Corporations, governments need the platform to move up to be so high level that with these modeling tools the amount of code they're writing -- and let's take an ambitious target -- over a decade we should be able to reduce the amount of code the write by at least a factor of five."
And to achieve that, we need small languages that are more expressive, more abstract and domain specific so that specifications in it can be automatically transformed into specifications in, well, we won't care really in what. For all I care in specifications in the next big language....we're not going to touch them anyway.

Friday, February 23, 2007

Missed opportunity

Angelo Hulshout had - in my opinion - an excellent idea: do an online workshop on defining a domain-specific modeling language. It's a shame no one responded to the challenge - due to as he puts it himself - too few readers of his blog.
One idea could be to organize such on the dsmforum though and possibly have people like GarethJ, Alan Cameron Wills, Steven Kelly and Markus Völter provide advice, as I believe it would be best for developers with little experience in DSM creation to take on the challenge!
Having such discussion and documentation online would provide valuable information for many and provide a great platform for different views on the DSM creation process.

Webcasts: Modeling with domain-specific languages

Have a look at these webcasts: They go from providing a simple but very clear introduction to modeling with and generating code from domain-specific modeling languages to where the technology currently is in making your own DSL editors a very agile task. "Defining modeling languages and code generators in MetaEdit+" clearly shows the necessity of having your models and tools update automatically with language changes.
The API example shows a nice example of what it means to integrate your DSL supporting environment with 3rd party tools, such as an emulator for testing purposes: model-based debugging.
The final webcast shows one of the new features in MetaEdit+: graphical metamodeling, which is helpful during the early stages of language definition, especially when you're working with several language designers in your team. Naturally, MetaEdit+ supports such a multi-language engineer way of working.

Tuesday, February 13, 2007

Code Generation 2007 - Program

The organizers of the Code Generation 2007 conference in Cambridge UK now put the program available on their website. It's going to be damn interesting.
It's great to see so much interest from vendors and media in this event, which is a first on this size I believe. I hope the interest-level will be similar from enterprises whose developers can benefit so much from the sessions. £350 for three days of knowledge-packed sessions seems very reasonable. One thing is clear: Pedro Molina, Andrew Watson, Markus Voelter, Steven Kelly, Tony Clark, Danilo Beuche, Alan Cameron Wills and Juha-Pekka Tolvanen are big names in this area and personally, when it comes to learning, I choose to learn from the best minds out there.

Wednesday, February 07, 2007

MetaEdit+ Microsoft DSL tools comparison

Steven did a "blitz-comparison" of MetaEdit+ with the Microsoft DSL tools. The topic: Creating your own visual representation for you modeling language and updating existing models with this new representation.
The whole thing is a bit comical, depending on who your employer is I guess. On the other hand I think it also likely blows the socks of some people who use Eclipse frameworks (GMF, EMF etc.) to build their own graphical editors. Something what Steven does in less than 10 seconds would take them something in the order of a day or two.
A bit strange to see people even struggle with immature DSM alternatives when an industrial strength solution is available for just €150 / $190.

Monday, February 05, 2007

DSM at DevWeek 2007

Juha-Pekka will be providing a conference session on defining Domain-Specific Languages and code generators at the DevWeek 2007 conference in London at the end of this month.

I know I keep on hammering on the significance of this topic :)

Anyone who has heard by now about how DSL's are replacing UML there where UML is proving to make no sense (most cases where you wish to generate usable code from models), also needs to realize that if you are going to walk the DSM-walk, you need to learn how to create your own modeling language.

Of course, having a vendor-supplied modeling language "can" make sense as well - at least, that is my opinion - especially in cases where you do not expect to be able to generate all code anyway. This mostly holds true for cases where the problem domain is difficult to define and changes very regulary, for example web-services as a horizontal domain. In many vertical domains however (e.g. vendor-specific car infotainment, navigation, operator-specific telecom services, building automation, industrial automation, robotics, mobile phone apps, medical device electronics and so on) the problem domain is clearly and cleanly narrowed down, for example by an intensively reused underlying software platform. In this case: DO expect to generate 100% of the code you now write manually, at least if you have defined a modeling language that fits completely (i.e. you have to define it yourself).

I have not seen any other speakers touching this subject at conferences - most just tackle the MDD topic on a conceptual level, merely introducing those interested in "what's out there". I do hope to see more recognized experts pick up on the "how to" topic.

Thursday, February 01, 2007

MetaCase Job Offer

MetaCase is looking for a Product Marketing & Sales Manager. If you feel you have the right entrepreneurial attitude and like to work in a dedicated team, looking to evangelize DSM and MetaEdit+ as the most advanced model-driven development solution, then I recommend you send in your application.

With MetaCase you get an opportunity to work with some of the industry's most recognized thought leaders in the field of model-based development. We don't need you to be an expert in this area, we DO need you to be genuinely interested and a fast learner with sharp thinking skills. You are skilled in relationship building and know how to "do a room" whenever a networking opportunity presents itself. You are a good negotiator, capable of seeing the big picture even in stressful situations and able to bring new ideas to our team to further promote our product.

If you believe you can provide a healthy contribution to MetaCase then we are ready to provide you with an inviting work environment, a fun team of people to work with and a competitive compensation package.

Send your application to jpt[at]metacase.com

Wednesday, January 31, 2007

OOP 2007: Vendors step into DSM

OOP 2007 showed me that now more vendors see DSM as the way to go.

Gentleware, known for their UML tool Poseidon promoted DSL-based editors built on top of the Eclipse GMF platform. When I asked Marko Boger about what happens when the customer needs the inevitable change to the supported DSL language his answer was: "Well, then we make more turnover". He could also have mentioned that the customer loses all models made previously and that the customer has to wait until Gentleware makes the new editor available to them. Not exactly the most flexible solution if you ask me, which might have been a reason for him not mentioning it. Still it is nice to see that someone who earlier concluded that UML profiles are sufficient now agrees that in order to generate code, developers need to work with domain-specific languages.

It was encouraging to see so many people participating both the MetaCase vendor session and Juha-Pekka's conference session. Especially the fact that some intelligent discussions took place about defining domain-specific modeling languages among the audience showed me that the audience has matured in this area. Where 3 years ago we had to explain to nearly each and every one what DSM meant now people we more interested in the "how to do it". They got the idea and agree with the benefits it offers, now they want guidance in how to get started with it. I see it as a big step forward.


Some of the best hitting comments I got from attendees were: "MetaEdit+ is the reason why Rational invented UML as their tool could support only one modeling language", "MetaEdit+ is MDA done right, 10 years ago" and "These people are the only ones who know how to do model-driven development correctly"

Wednesday, January 17, 2007

Webcast: Modeling with a Domain-Specific Language

We published a 12-minute informative webcast on domain-specific modeling. In it, Juha-Pekka directly compares UML with a DSM language-based approach. This makes the difference between them very clear.
Have a look here.

Friday, January 12, 2007

DSM Focus on Code Generation Event

Code Generation 2007 promises to have a significant focus on domain-specific modeling for model-driven development. With Microsoft and MetaCase already signed up as sponsors, I believe we can be quite sure of this.

The event organizers have managed to get some influential speakers in the area of MDD: Axel Uhl from SAP, Markus Völter, Steven Kelly (MetaCase), Andrew Watson (OMG) and of course the people from the Microsoft DSL team.

If I understand correctly, the program promises to give attendees a valuable learning experience with a rich mixture of sessions from 75 minutes up to well over 3 hours.

Thursday, January 11, 2007

DSM growing, UML slowing

The number of hits on Google for the string "domain-specific modeling" is clearly showing exponential growth. Today Google treated me with 88,100 results, making the graph I created 2 days ago (above) already outdated (darn...it has that same characteristic UML models also have).

I was interviewed by the German magazine "ComputerZeitung" for their focus on modeling and model-driven development, the
article is available here.

Reading it myself, it surprised me to have the magazine report Bran Selic talk about a new wave of UML:

"Wir bauen substanzielle semantische Definitionen ein. So wird die Sprache ausdrucksstärker und zu einem besseren Kommunikationsmittel."

Translation: We're building substantial semantic definitions into UML. This way, the UML will become more expressive and a better vehicle for communication. In other words, it seems the OMG thinks it a good idea to make it even more complex and even less suitable for code generation: Adding precise semantics to a general-purpose modeling language, leads you to some sort of ehr... general-purpose-domain-specific modeling language (hmmm try to market that).

UML is poorly suited for generating anything else from it than simply a copy of what it represents. Normally this means documentation. Adding precise semantics to the UML means the committee of tool vendors (all with their own agendas) need to agree on those precise semantics, which is impossible, period. The precise semantics will most likely end up being very loosely interpretable precise semantics, that you then can probably extend with semantic profiles of something like that. The end: a 160,000 page UML specification with the "U" clearly meaning "universal". Great idea Bran, let's add some more stuff to the UML.
The OMG seems to struggle with its mammoth specification, a new wave is needed because competing, disruptive technologies (domain-specific modeling) is eating away at the base. The only thing to do: move upmarket, add more stuff to your product (read this thought leading book on it).

A mark on the wall of UML's demise, is Telelogic, which now offers its UML tool for zilch, all you need is register and download. Their sales team will then no doubt hunt you for costly add ons. The UML tool market is under heavy stress, with hundreds of free tools which are perfectly fine for UML since you cannot generate all that much useful stuff from the de-facto modeling language anyway. Some tools claim they do however, and therefore cost mucho, you'll need to fork-out a substantial budget. Then, according to a
Compuware-sponsored laboratory test (wow, must be very reliable) you could achieve a productivity increase of 35%. According to the Compuware marketing professionals this is a real "Landmark".

Funny that you do not see so many more of these studies isn't it? After all, MDA and UML are already so widely applied if you listen to the MDA tool vendors and OMG honcho's. Really, where are all the success stories of UML? Care to share one?

Thursday, December 28, 2006

The cost of building DSL / DSM tools

Most of the costs of developing software are attributed to the maintenance phase (often I hear 80%).

I never heard anyone disagree with that.

It makes sense to get your design right from the start - as mistakes in the design phase are normally the most costly ones to solve later on - a good initial design, though, does not eliminate or necessarily reduce the amount of cost that goes into the maintenance phase.


Often I hear the question on how software development with DSL's relates to this wisdom. It's a good question with a simple answer, but there is a better question.

The simple answer first: DSM languages (or: DSL's) aim at development on a more abstract level. The maintenance work, therefore, is also done on a higher abstract level, making performing this work more effective and thus less costly: a change in requirements is much easier to implement. When it comes to getting the initial design right, DSM languages provide better support than general purpose modeling or programming languages: The "wisdom" of the expert and rules imposed by the underlying architecture are (or should be) encapsulated in the modeling language and prevent silly designs. This does not mean that the developer can be a brainless chimp, in fact the more knowledgeable he/she is about the problem domain the better (just like when not using DSL's), but the support he/she gets from the language in getting the design right simply is more prominent.

The better question, however, focuses on the tools for implementing DSM languages and generators (or MDD if you will):

How does the issue of maintenance and "getting the design right" relate to DSL tools?

Why should building your own model-based code generation tool (or tool-chain) be any different when it comes to the design and maintenance issue? Isn't it likely that 80% of the cost of building your DSL tool (or MDD tool chain) will come down to maintaining it? I dare say that the 80% is a rather mild estimate.

Sure, you can get an MDA tool, based on the industry-standard UML language. You will draw complicated pictures, outdated immediately, you won't generate anything useful and you will have very little tool maintenance. You can claim you do MDD but you never even have the time do it or to evaluate the true MDD alternative because you're so darn busy all the time maintaining your code. For you, reverse engineering must be a blessing...

With DSL/DSM tools you shift (most of) the maintenance effort to the language (and generators) you are using. Just like your code in software development today, now your modeling language(s) and generator(s) will need maintenance: You will not get them right immediately and even if after a while you get them right you will still need to change them later on.

So, are we no step further with DSM? Do we just shift the maintenance work to another, more abstract level? No, with DSM less developers will do the maintenance work, preferably the smarter ones and their work helps the less-smarter ones (who are still smart, just a bit less) do smarter things faster.

When using DSM/DSL technology correctly, the major chunk of your work over time will be focused on updating your modeling languages and generators. In my opinion it makes sense to choose a DSL/DSM technology that supports this fact: You do not want the majority of your developers to wait for a couple of days/weeks until the expert provides them with a new, thoroughly tested version of the modeling language, do you? And what about having your developers manually update all models made with the previous version of your modeling language when a new version comes around? That's a lot of maintenance work man. You can claim you're doing DSM or DSL or even that you have a Software Factory, but the factory sucks, and you probably do not have the time to claim it.

Microsoft have a pretty good solution to this problem with their DSL tools: A factory for making factories. I do hope they improve it though as I hear it does have some significant drawbacks. It's been ridiculed but they did think a lot further than the people doing the Eclipse GMF/GEF. The latter have not even started thinking about the maintenance problem, making the framework ideal for code-savvy pet-techies who just like to build stuff and care less about doing (or staying in) business.

The risk involved with DSM/DSL technology can be reduced in several areas:
  • Making sure you build a good language and generator
  • Adopting a supporting technology that is forgiving to the mistakes that you WILL make
  • Tool and consulting support by an organization who have experience in this area
  • Assigning tool-evaluating techie who understands that technology is there to support business, not for technology's sake
  • Understanding the social and organizational changes that DSM/DSL technology will introduce in your organization and getting support for it



Monday, December 18, 2006

Vendors and tool comparisons

I've been pretty amazed (yep...understatement) of how some vendor-executed (fabricated is probably a better description) tool comparisons happed to end-up in tool evaluation reports, which in turn amazed me that these things ended up there, copy/pasted in the first place.

Food for thought: Vendor-executed tool comparisons are always subjective

Don't use a vendor provided tool comparison in your evaluation report. The fact that the vendor-executed tool comparison shows that vendor's tool scoring best in most (some vendors take it that far to score best in all...ghehe) categories, should ring a bell: Something fishy is probably going on.

It's easy to twist a tool comparison in your own advantage:
a) you lie (it's called marketing)
b) you base the competition's data on some old, no longer supported product version that no one really remembers
c) you take only those categories (and give them complicated names) that you score good in, and lie about the competition

It's not the vendors fault really. It is ,however, embarassing to see a tool comparison literally copy/pasted from a white paper or website end up in a tool evaluation report. Sure it saves time making the report, but the potential for losing a year or two in extra work due to your wrong choice or laziness in making the report is very much there.

In a bid to help domain-specific modeling tool evaluators, we added a MetaEdit+ feature list to our website. We did not feel our opinion about a competing tool should matter to you, hence we left the column "other tool" empty, for you fill out. Also did we not feel qualified to categorize our tool features as "best", "average" etc. so we just kept it to "supported" or not. Should you feel we missed some categories then we will be glad to add them there.

Friday, December 15, 2006

More on templates

It was nice to see Microsofts' Gareth J agree with me when it comes to providing DSL tool users with ready language templates, i.e. generally a bad idea. It just leaves me to wonder about Microsofts' DSL tool strategy to provide users with complete ready languages (not leaving it just to templates but go the whole nine yards in providing organization A a method that organization B says is probably best for them, without knowing a whole lot about how exactly software is developed in organization B). At least, this is what the media tells me to be the strategy Redmond will follow and of course the media does not always get it right, but this most often happens when editors think they understand a new technology (...but then they don't...and still write a story on it), my guess is that they often get it right on strategy. Especially when interviewing and quoting team members and project leaders.

I wrote my earlier post on language templates with in mind the idea we at MetaCase have that it is probably best to allow the organization that uses the DSL to define that DSL... themselves and make defining tool support for the DSL (in the end that is what we need) convenient.
There are several reasons for this conclusion:
  1. MetaCase employees only know a lot about Domain-Specific Modeling tools, we do not pretend to know how software is or should be developed in different vertical problem domains
  2. Providing a ready-language to many (say more than 2) ALWAYS leans toward the one-size-fits-all problem that we see with UML: users want to change it to become more domain-specific, which if you would, often suffers from its original version legacy: The template problem.
  3. Allowing users to define their own, makes them think more and in different ways about their problem domain, which has the effect that they will start to understand their problem domain better, which is undeniably a big advantage, which can lead to more concrete advantages
Of course there may be the argument that MS focuses on horizontal domains instead of the presumably vertical domains that we at MetaCase focus on but even then I feel that many of my arguments still stand: It is better to allow companies to define their own DSL and code generators, this is what makes them really domain-specific, which provides the biggest benefits.

Wednesday, November 29, 2006

Webinar: Domain-Specific Modeling

Domain-Specific Modeling promises to change software development in many companies by changing models from being a bunch of out-of-date rectangles, diamonds and lines to executable representations of solutions in domain-terms. Models no longer depict the soon-to-be-roundtripped, visual representation of the code you need to write later. Instead, the implementation is generated automatically and completely from your high-level models, similar to how compilers generate full assembler from current programming languages.

A free webinar by a true expert in this field on December 14 will give a very concise explanation of domain-specific modeling in an easy to swallow format. So sit back, relax and learn. Learn what?

2 things basically, what it is and whether it makes sense to look into it further.
Register here.

Tuesday, November 14, 2006

Released: MetaEdit+ 4.5

Defining modeling languages graphically in the new MetaEdit+

Today we are releasing the latest version of MetaEdit+. Version 4.5 is stuffed with a lot of significant improvements compared to its predecessor, like to name a few of these:
  • Graphical metamodeling (see above)
  • A whole new generator definition system, that:
    • instantly validates generator scripts
    • provides a debugger for defined generators
    • provides "live code": generated code links back to its original model objects for tracing
    • allows you to build more powerful, better generators, faster
  • Model, and metamodel import/export via XML
  • An improved SOAP/WebServices-based API that provides access to models, metamodels and MetaEdit+ functionality
  • More powerful metamodeling capabilities
  • Symbol import in SVG & Bitmap formats
  • A much improved modeling environment
To sum it all up, we clearly focused on allowing developers to obtain tool support for domain-specific languages faster and more conveniently. As an indication: Just for fun, yesterday I "equipped" MetaEdit+ from scratch with Use Case modeling in about 15 minutes. Try that with the visual studio DSL tools or the GMF framework from Eclipse and you'll grow a beard...a big one.

Additionally, our development team put in a big effort in opening MetaEdit+ up, allowing it to work via open-standard SOAP-Web Services, via ANY programming language with ANY tool.

To top it off, we now offer companies, their first license of the new MetaEdit+ Workbench (introductory license) at 150 Euro! Additional licenses carry our normal pricing. There is thus no reason to miss out on experiencing how much value, speed and convenience MetaEdit+ offers.

Wednesday, November 08, 2006

Free training on creating DSM languages

At the coming OOP 2007 conference in lively Munich, expo and conference attendees have free access to all vendor tracks. MetaCase will provide one that teaches participants "hands-on" how to build a domain-specific modeling language and how to obtain tool support for it. Our aim is to provide participants with something a bit more valuable: Leaving the class room after 90 minutes feeling you've really learned some skills, instead of being made aware of a bunch of product features.

People should bring their own machine, and may opt to bring their own DSM tool. For those that wish to use MetaEdit+ we'll provide them with a copy. From a skills perspective, it's irrelevant what DSM tool you use really. Whether its Eclipse GMF, DOME, GME, Microsoft Visual Studio DSL's, MetaEdit+ or any other tool that can support DSM languages, they're all welcome to the session!

MetaCase offers a free ticket, you can get it here. It also provides entrance to all keynotes, product sessions, special training, vendor tracks and the expo.