Benefits of modeling (or how to convince your project manager!)

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)
  • Reduces the number of defects in the final code (models facilitate early evaluation of the system)
  • Capture and organize the understanding of the system (which btw, eases the integration of new team members). Models are well suited for documentation
  • Permit early exploration of alternatives
  • 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)
  • Facilitates the reuse of parts of the system in  new projects

Do you agree with these benefits? Which ones should be removed? Which ones added?

13 Responses to Benefits of modeling (or how to convince your project manager!)

  1. sergi.ntonic says:

    In the theory I agree with all the points, in the practice not.

    The models must be used to trivialize more complex problems, but a very frequent error is use the modeling to complicate the developments, adding unnecessary elements / processes. Easy problems doesn’t need a models!!! . The modeling also implies increasing of costs of a project (the bureaucracy ). If we build a software using the modeling, the prices of the software could increase (at least at the beginning of the project ), if the project it’s developed by phases, the first ones could be too expensive and that could ends with the defeat of the project.

    Not all the developers are capable of understands the modeling, it’s necessary to explain and teach the developer, in their first steps in the modeling. Be careful with this.

    Sometimes the best solution for a problem is not the best idea.

    Sergi
    Project Manager

  2. jordi says:

    I think we need to be pragmatic sometimes. Modeling should not be a boolean activity. We should be able to adapt the modeling level/precision to the characteristics of the project (see for instance what people working on agile modeling do)

  3. tselrahc says:

    It is certainly right that you need to adapt the modeling you need to do with the type of project you are running.

    I would take that further by adding that you would also benefit from doing this to the various phases of the project. The type of modeling that you need to do up front, e.g., to win the contract or to model requirements or use interface, is different than the type of modeling you would need to implement a full translationist MDA approach at a later stage of development.

  4. jordi says:

    You ARE RIGHT, modeling can also play a different role depending ON the phase IN the development process. The comments IN this post go IN the same direction.

  5. Anonymous says:

    Can you please add links to the studies that back up these claims? – Greg

  6. [...] all know that one of the main criticisms to modeling is the lack of empirical studies that show its supposed benefits in practice. Let´s see if Michel can settle this issue once and for all (ok, maybe that´s too [...]

  7. [...] (in fact, one of the most popular discussion points in the portal, see, for instance, this and this previous posts) is whether MDD pays off at some point in [...]

  8. [...] Benefits of modeling (or how to convince your project manager!) [...]

  9. Anders says:

    The more I think of it the more confused I get when it comes to “modelling” and “modelling languages”. Espcially since also Fortran, Pascal, Ada, etc are modelling languages, i.e. they raise the abstraction level above assembler langauges and assembly languages raises the abstraction level of micro code.

    If one come back to very fundamental of a model “an abstraction of something for a specific purpose”, then when a “software model” IS the software then it is full of all myriad details that makes it really executable. Has it really abstracted away anything? And, in most cases the true actions are actually written in an ordniary action langagues such as C, Java, C++. Then we have not really abstracted away anyhting or …?

    And, yes I can agree that if it really abstract aways some details, then it can actually help in “…understanding of the system …” However when it is so detailed that it cover all the details used for creating an executable product, then all that information in many cases have the opposite effect.

    • jordi says:

      I agree there is no clearcut difference between programming and modeling, in the sense that many artefacts can be regarded as models or programs depending on the point of view we take (and I don´t see a problem with this, the important thing is that we improve software development by using the right artefacts at the right time, whatever we call them is not important).

      Regarding the abstraction level of “executable” models, I do believe they are more abstract than Java code (but maybe not more abstract than the “model” component in the typical MVC architecture of programming frameworks like django or ruby on rails). But this model doesn´t need to be your only model, you could start with very abstract models of the system (useful for instance to discuss about architectural decisions) and then refine them until you reach a point whether your model is precise enough to be executable.

  10. [...] Benefits of modeling (or how to convince your project manager!) [...]

  11. [...] Benefits of modeling (or how to convince your project manager!) [...]

  12. [...] Benefits of modeling (or how to convince your project manager!) [...]

Leave a Reply

Your email address will not be published. Required fields are marked *

You may use these HTML tags and attributes: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>

Powered by WordPress