I have just finished watching the special features of Surf’s Up on the DVD and I was struck with a thought that software development is somewhat similar to making a movie, and if you allow me to draw the parallels, you can see that Surf’s Up was created in a very Agile way.
Surf’s Up was created differently to most animated films . Traditionally, most movies are writen by a script writer, then handed to the actors who need to confine themselves within the lines of the script. In Surf’s Up however, the directors put a lot of focus on getting real genuine conversations from the actors. To aid this they did a few things.
First, the dialogue was recorded with all actors together in the booth; most animated films record the voices independently. Co-locating the actors meant that the reactions and interactions were genuine, not just something which had to be faked.
Also, the directors put alot of focus on letting the actors ad-lib their lines. While there was an overarching story they were telling, the specific details of the dialogue was left to the actors imagination.
Now, I hope you can see where I am going.
Recording the dialog with all the actors together is much like co-locating your delivery team. This has various benefits:
- the team quickly build up a rapport and their chemistry can be seen (or heard) on screen;
- any changes to the script or subplots can be developed in-situ, and do not require dragging actors who have already recorded their parts back to the studio to fix the dialog for the new requirements (ie any changes to the requirements can easily be dealt with as the team is all together, working toward the goal simultaneously);
- it could be cheaper/faster to record (develop) with everyone in the one place as you do not need to keep repeating the setup for each new actor who comes to record their part (actually, I am just guessing on this one, but you can see where I'm going).
Letting the actors ad-lib their lines is analogous to getting developers to design their own code (hopefully through TDD/BDD/DDD). The architecture of the software is like the story they are telling, and the implementation details is like the dialogue in the script. By allowing the actors to improvise, the directors have allowed the actors to develop each character in a unique way, bringing their own personality to the foray. This meant that the actors were also responsible for steering the ship: an example is the cute, funny character of Arnold was apparently developed by Zooey Deschanel (who plays Lani) during one of the ad-lib sessions.
Surf’s Up is a pretty cool movie, one which you can easily forget that you are actually watching animation. No doubt its success has something to do with the manner in which it was made.