The debate is old – you can check out Jordi Cabot’s post about it here – but it is worth bringing up maybe one last time.
Advantages of Modeling Tools
Modeling tools guarantee the compliance of the graphical representation with the used and supported language. In other words, behind the graphical representation, there is structured data – the model.
In fact, the tool lends a helping hand to the design. As the work advances, each new evolution of the model must be authorized by the modeling tool. This function cannot be provided by drawing tools as they are completely flexible and allow you to do whatever you want. There is no structured data linked to the graphical representation.
Another advantage of modeling tools is tied to the production functions that they can run. These tools are known for incorporating code generators.Code that is automatically generated from models is technical code, which is generally tedious and long to write “by hand”. Developers who know how to use these generation tools like that they can save time on this part in order to devote themselves to tasks with higher added value.
The Downside of Traditional Modeling Tools
However, modeling and production functions come at a cost – they are often very complicated to use. Little by little, we have seen the development of tools that are technologically powerful but often to the detriment of the users that they intend to help. Paradoxically, the more powerful the tools become, the less attractive they are to developers.
Why do Developers Use Drawing Tools?
Drawing tools are a good way to get straight to the point on a number of things such as screen mockups, flow diagrams, site plans, network representations, etc. If they are web-based, these tools also become very efficient for communication.
For a long time, software engineers saw drawing tools as complementary to traditional modeling tools as they were more flexible, easier to use, less expensive, and more agile. For example, they are sometimes used to draw UML or BPMN diagrams.
Software publishers favored this approach and proposed “shapes” and “links” that represented modeling languages. These graphical representations were in no way attached to structural data. There was only the appearance of modeling (the drawing). We could not find any data (the model).
It was as if developers had to choose between modeling tools that weren’t very agile or agile tools that were not very useful.
Let’s Choose Modeling and Agility!
In 2014, many developer tools are found in the cloud for excellent reasons. These reasons include the need to share, the need to work as a team, the need for better collaboration, the need for short iterations, the need for better UX, the need for user-friendliness,and the need to go further and to do better.
We don’t need to look very far to see what GiHub has succeeded in doing, as well as what Cloud9, Koding, and other online code editors are doing. Take a look at how project management tools have evolved with Jira and Basecamp. Or how large publishers and institutions, from Atlassian to IBM (Jazzhub) to Eclipse (Orion), are all becoming more agile. They are all in the cloud or plan to be.