Capping IT Off

Capping IT Off

Avatar, reuse and model driven software development

Last week my daughter Sam (13), her friend Joey and I went to see the movie Avatar in 3D at the IMAX theatre in Rotterdam. Following up on the hype and reading reviews I just got curious. Especially after reading an interview with director James Cameron, who previously directed Aliens and Titanic. Being more than interested in model driven software development, this interview cracked me up. James Cameron states that there’s a model for every rock, every straw, every tree on the planet Pandora, and for every piece of skin and body of the inhabitants. That’s something for you. On the one hand you might say: hey, this Avatar project took over 7 years to build, and it costs around 400 million dollar. No way should we do software development projects like that. image James Cameron: “Use the models for sequels” But it gets more interesting. In the interview James Cameron also says that the argument that sold Avatar to studio 20 Century Fox is that these expensive and extensive models could be used for any number of sequels. To sum up why the studio put up with the length and price of the project in one simple word: it’s reuse. Seeing is believing I have to admit, seeing is believeing. This movie has the most incredible visual appearance I ever witnessed. And it’s all generated from the model. And that’s where I got jealous, or even a bit depressed. There we are: enthusiastic software engineers building business software from our BPMN or UML models or our textual or visual DSL’s. Whatever abbreviation you follow, be it MDA, MDD, FMDD, or MDSD, we think we’re doing great jobs raising the level of abstraction just a little bit from hand-written code. But even this very little step forward seems to be highly complex. The technology is hard, the meta-level thinking is harder, and convincing management and customers (the studios) that this is the way to go with software development is even more challenging. Kindergarten stuff But in comparison to the complexity and size of producing Avatar our whole MDx venue is kindergarten stuff. We’re not creating a highly detailed blasting 3D movie experience. We are only implementing a simple business process to change your address at your local bank. Pfff. Is that all? image Jake Sully: “Ha ha, changing your address at your local bank is difficult?“ Don’t get me wrong. We will simply have to move from hand-writing applications to modeling and generating applications. Raising the level of abstraction is the only way to deal with the rapidly increasing level of complexity of technology vendors present us with, and the ever increasing demand for new software, presented on new devices. There’s just no way we can keep with this demand just by hand-writing all the code, not with all the developers in the world, not with the best-of-class frameworks at hand, not with the best agile processes and techniques in place (let alone waterfall). Even though model driven techniques are no silver bullet either it will play an increasingly important role in software development . Our work will be around simplifying customer demand, standardizing techniques and raising our levels of abstraction, writing less code and generating more code. And for those of you not yet convinced: go see Avatar or preferably one of its likely many sequels. Sander Hoogendoorn Principal Technology Officer Capgemini www.sanderhoogendoorn.com

About the author

Sander Hoogendoorn
Sander Hoogendoorn
4 Comments Leave a comment
Do not forget that there was someone who wrote the code for the applications they used to create the models.
The thing we must learn is to let the toolmakers do their thing, however they choose to do it. Then as you so aptly point out stop coding on our level of abstraction and work with models instead. But then again much code was produced in the production of Avatar, so maybe it's not that simple.
Maybe we should learn to focus on certain values like reuse, applicability and skills instead of just looking at quarterly reports on increased profits.
shoogend's picture
Hi Jorgen,
Being such a tool maker myself, I'm certainly not saying writing these tools is easy. I certainly do recognize that a lot of work goes into that.
But, what I also tried to express is that we should make much more extensive use of the tooling offered, and not cling on to hand-written code as much as a lot of people are still doing. That's like ride a horse to work, even though there's a car and a motorcycle in your garage.
So do you really believe that we can sensibly model software? In what? Rectangles and squares ? XMLs? or another language?
In my view, software itself is a model of complex behaviour. Abstracting it into another model can never be complete and cheaper. In most cases, model driven approaches using present techniques will certainly fail.
shoogend's picture
Dear Jaywant. I do not only strongly believe we can model software and generate lots of code from it, we actually DO this in a lot of our projects. There is simply no way of delivering all the software the world needs if we don't. I agree with you that models are almost never complete, that's why they are models. But building software from models can actually be a lot cheaper than hand-writing the code. If you're interested I can send you the Capgemini white paper on pragmatic model driven development we recently published.

Leave a comment

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