Do you need to convince your project manager about the benefits of modeling and model-driven processes? Maybe you could mention that modeling:
- Improves the productivity of the development team (e.g. models can be used for a semi-automatic code-generation). Even if you don’t believe in the magic of complete and automatic code-generation, models and code-generation can save you plenty of time by automating the most repetitive and boring coding activities. As our own “Pareto principle for model-driven development” says, 20% of the modeling effort suffices to generate 80% of the application code.
- Reduces the number of defects in the final code (models facilitate early evaluation of the system). There a good number of tools that will help verify, validate and test your system based on the models of it. The earlier it is diagnosed, the easier and cheaper is the rectification of the defect.
- Similarly, modeling permits early exploration of alternatives by means of model simulation techniques.
- Captures and organizes the understanding of the system. This also eases the integration of new team members. Models are well suited for documentation
- Increases the decomposition and modularization of the system
- Facilitates the system’s evolution and maintenance (e.g. by facilitating tracing back the code to the original requirements, this makes easier to locate the parts of the system code that needs to be modified).
- Facilitates the reuse of parts of the system in new projects. In the end, you maximize the benefits of software modeling technologies in the mid-term.
Do you agree with these benefits? Which ones should be removed? Which ones added?
For those interested in a deeper analysis of these claims, these posts summarize and reference empirical studies studying the use of modeling in practice and whether these claims were scientifically demonstrated: