blogs.conchango.com

welcome to the conchango blogging site
Welcome to blogs.conchango.com Sign in | Join | Help
in Search

Howard van Rooijen's Blog

Agile Architecture: Painting by Numbers

View from Bishops Landing, by Sarah NasbyDuring one of the Open Space sessions I attended at the Scrum Gathering in 2006 I put forward the analogy of "Painting by Numbers" Architecture, which is my take on how Architecture should be handled on an Agile project. The basic premise is that the Architect has the overall vision of how the solution should hang together; what its basic composition should be, what the outline is and what attributes it has; but this view is of a very low fidelity; much like the outline of a "paint by numbers" picture. It's then the team's job to fill in the segments, sprint by sprint – in whatever colour, hue or order they decide upon; they are free to improvise within that segment.

I've been thinking about writing an exhaustive post on the subject for months, but then last week I watched Dave McKean and Neil Gaiman's extraordinary film MirrorMask. The DVD is packed full of great extras, but there was one that grabbed my attention; a blurry video of a conference Q&A session with the audience, where someone asks Mr McKean about his experiences doing the spectacular Computer Graphics (CG) work for the film. The response was fantastic and is pretty much a crystallisation of my thoughts on the "paint by numbers" scenario. I paraphrase his response below:

In the studio shooting, it was a nightmare, none of the computers would talk to each other; none of them knew each other or were interested in talking to each other at all.

So I hired a small team, just 15 people and they did the whole film; they were all kids, fresh out of art school, for almost all of them this was the first job they'd ever done. I thought if I was in their situation, I wouldn't want a usual CG job, which is "you get to do the bubbles" or "you get to do one tiny bit of texture on something", it's so de-compartmentalised you're a bit of a cog in a machine. I thought "if I were doing it" I'd want my own scene, like a short film within the whole; so that was the plan, we had a big meeting, talked through the whole film and we divvied up the scenes between us. It worked mostly, some of them were more interested in animation, some of them were more interested in set-building and texture mapping and things like that, so it crossed over a bit, but generally they got to do their scene.

I designed things, but I didn't really want to nail everything because I wanted to know what they wanted to do, what their input would be; it was the best of collaboration really, they all got excited by the fact that they would be represented in the film properly; when it got to their section they could say "hey, I did this bit".

They all came up with wonderful ideas, which expanded from the script in all directions – I always had backup plans in case we ran into problems, of how I knew we could do it, but we almost never needed them. Almost everybody came up with ideas and ways to amplify and exaggerate and elaborate on the ideas and make it bigger and better – it was terrific.

I was there really to keep everything having "my line" as it were, so it looked like I drew it, and I did all the texture maps for the film, because I feel like that's where my colours and textures really come into it, so I did all that, and then I composited the whole film.

Published 05 June 2007 15:41 by howard.vanrooijen
Filed under: ,

Comment Notification

If you would like to receive an email when updates are made to this post, please register here

Subscribe to this post's comments using RSS

Comments

 

john.rayner said:

I love the analogy - I think it's very appropriate.  But doesn't the agile architect need to be drawing the outline just ahead of where it's getting painted in?  And adjusting the outline to suit the evolving and emerging requirements?  In other words, "refactoring" the architecture.

June 7, 2007 01:31

Leave a Comment

(required) 
(optional)
(required) 
Submit
Powered by Community Server (Personal Edition), by Telligent Systems