software model driven approaches
Nice title, isn’t it? I’d like to share the idea that we can associate agile project management and software development practices (two different things!) to build sustainable software. In doing this, the sustainable artifacts would be source code AND analysis and design models (and maybe code generation rules if used for this purpose).
The idea came out along a discussion with Meinte Boersma on his blog. Here is an abstract:
I don’t like any title with a capital letter in front, would it be Architect or Programmer or Analyst. But when developing software there is actually a need to analyze, design and program (in this order even if it should always be an iterative process). And at the end, we should’nt write a single line of code without being sure that it increases business value and/or optimize maintenance costs. And so each line of code (or component) should be challenged through business needs and/or architecture/programming rules. Note that the business value goal involves that the code must work, be reliable, meet expected response time etc.
Extreme Programming (1996) was the first Agile trend success. I tried it then on some projects, with the help of Laurent Bossavit now became a French Agile guru, but couldn’t succeed to sell the idea to customers at this time. XP was focused on user stories and direct implementation, with as many refactoring as developers thought to be good (and team meeting and unit tests and continuous integration and so on…).
Nowadays people begin to understand that an agile way to conduct a project, say with Scrum, is one thing. And that it may be applied to any kind of project, not only in IT field. Building a sustainable software is another kind of thing. Merging the two things is a good way to succeed in application development.
BUT, taking into account just business needs (without analysis) and programming level needs (without architecture) is just a no way road. IHMO. At least or projects which will have to survive to their developers availability.
Modeling is a mean to do analysis and architecture design.
I am for the, not yet existing, Agile & Modeling new way of life!
Featured image taken from http://blog.lowendahl.net/?p=283
I like very much the idea of a “whirlpool”: a very fine description of what actually happens on every IT project!