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.
image41 Avatar, reuse and model driven software development
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?
image42 Avatar, reuse and model driven software development
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

 Avatar, reuse and model driven software development In his role of principal technology officer and global agile thought leader at Capgemini, Sander Hoogendoorn is a software development enthusiast, constantly involved in the innovation of software development processes, techniques, architectures, patterns and technologies, both at Capgemini and its many international clients. Sander has coached many organizations and projects, has published books on UML and agile and has written numerous articles. He is an appreciated speaker at international conferences and seminars, including JAOO, OOP, TechEd US, SDC, DevDays, TechEd Europe, JavaPolis, SET, TDWI, TestNet, DTC. He is also a member of Microsoft’s Partner Advisory Council .NET, and several other editorial and advisory boards. See also www.sanderhoogendoorn.com and www.smartusecase.com.




This entry was posted in Custom Software Development. Bookmark the permalink.

4 Responses to Avatar, reuse and model driven software development

  • 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.

  • 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.

  • Jaywant says:

    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.

  • 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 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>