I’ve been working in industry projects providing domain-specific modeling languages and supporting tools since 90’s. My work on this topic originally started via an academic research project but then quickly lead to founding MetaCase (www.metacase.com) together with my research colleagues. MetaCase provides tooling (MetaEdit+) along with support services, consulting and training.
During the last years I’ve mostly acted as a consultant (Europe, Asia, North America) for modeling language and generator development as well as for their introduction into real use – and benefits. In this role I have worked with over 100 language engineering projects.
If I’m not metamodeling, defining languages or generators, I prefer sailing or skiing depending on the season.
I’m here to learn and share experiences on language engineering.
Hi Juha-Pekka, I am so happy to see you here! I think we can benefit a lot from your vast experience. I hope you could help us learning how to explain better the business benefits of DSLs. I think it is a weak point of the Language Engineering community and you are one of the few to have figure it out well
Thank you for the kind words. In the book that we wrote with my colleague Steven Kelly, we included one chapter on Business Value (Chapter 2 right in the start: http://www.dsmbook.com/toc.html). The question you made, however, is multifaceted (individual, team or company) and often different type of benefits get emphasized in different cases. As the subsections indicate, we have found that they most often refer to productivity, quality and leveraging expertise.
It would be interesting to have discussions on each of these points.
I am spending myself some time reflecting on the best way to present DSLs.
Of your three points the first two seems easier to explain, as they are clearly perceived pains. The latter seems istinctively harder to me, as I am afraid that many could perceive that problem but not be able to think it can be solved, so it must be hard to reach them
Indeed, and if we take the productivity as an example, depending on the company, market situation, competition etc. the benefits from productivity can be taken in different ways, such as:
- Enable faster feedback loops from the customer,
- Reduce the need for outsourcing,
- Allow to make changes later as higher-level of abstraction provides agility,
- Target new customer segments / variants as development costs are now lower
instead of the more obvious shorter time to market.
This comes all to the point of objectives the company (or their R&D) have. For example, at Polar they had clear targets: DSL must improve productivity, prevent errors, provide better quality code, be easy to learn, and be usable. Other companies have other objectives. Nevertheless, the created language is then measured against these objectives (Fig below)