Thursday, 23 May 2013

Follow up to "The Connection between Movie Making and Software Development"

I just found this related post by Martin Reddy, a former Pixar engineering lead. Enjoy!

Lessons from Pixar: Why Software Developers should be Story Tellers



Furthermore, I thought I'd share a few animation making trivia facts with you (still from Tony DeRose's talk):

It takes about 4 years to make an animation movie; half of the time goes into story and design, the other half into implementation.

Character design is done by means of a broad variety of techniques, from pen and pencil, over oil to digital. The results are actually shown in an record-breaking art exhibition which is traveling the world. (The same is planned for the science behind the animation.) Personality poses of characters are made in 2D and 3D (e.g. as clay models which are later laser scanned and used to check with the 3D model). Concept art is produced for the environment.

Tony DeRose (TDR): "It still amazes me that we managed to make an appealing story about rats in a kitchen!"

In a process called rigging, virtual controls are added to the character to enable motion and other manipulation (e.g. the degree of movement for eyebrows, and more... there are about 300 controls in a character's face, compared to 30 in a human's face. In total a character might have several thousands of controls.).

Shading, the process of putting textures unto characters and objects, is a lot of work: "Look how much stuff there is! Somebody's got to model and place all these objects!" Especially realistic textures that are not smooth but e.g. feature dents, are very hard to make, but vital for the realistic feel of the film as they give each item a back story. "Next time you see one of our films, step out for a moment and appreciate just how much stuff there is!" (TDR)

Lighting artists position the virtual light sources to ensure that the light hits the virtual cameras exactly right.

"Hair is essentially another character in the film" (TDR)

With a physics simulation layer, it actually matters what happens to a character off-screen.. So if you downsize it too much, it might loose the items it's carrying...

The Connection between Movie Making and Software Development - Tony DeRose, Pixar

There are several reasons why I very much enjoyed Tony DeRose's keynote on the connection between movie making and software development:

It gave great insights into the process of movie making at Pixar (unfortunately the technical ones exceed the scope of this post) as well as getting across one important point: make sure to get your story right, be it for movie making or software development!

Particularly their form of organization struck me as very transferable to software development: Pixar movie development is organized in small teams, with clear roles and responsibility for product vision (director) and project (producer). The entire team works together closely, finding and refining stories, animating the shots, reiterating, etc. to make sure the result is living up to the directors vision.

So how exactly do they organize to achieve this goal? Regular, even daily, meetings are used to pitch stories, storyboard drafts, review animation or designs, to refine, rework, discuss, adjust the work to the vision of the director. The current state of the work (from sketchy to fully animated, very abstract to detailed) is packed into a story reel (here's a progression reel from Toy Story), which plays the movie-to-be, highlighting any (story) flaws, that might get covered up by fancy effects otherwise.
There's a lot more to it until the movie is finally to be released; however, the key point for this successful process to me seems the (let's say it!) Scrum-like clear definition of responsibilities as well as the continuous feedback and review sessions.

Interestingly, when taking on replacing their 80's dated animation system, Pixar first turned to "typical" engineering approaches, which resulted in two failed attempts.

At that time, Steve Jobs proposed to consider the software development process more a creative process then an engineering process. As a consequence, the next development attempt was structured according to the Pixar movie development organization (with slight modifications, such as changing from daily reviews to "engineering weeklys"), using the established tools such as pitching, story reels, and continuous iterative refinement.

Turns out, this way of tackling the problem was really good for the design phases, but did not provide enough support for project planning in the implementation phase (so they took to "something agile", whilst keeping up their reviews and pitches).

Remains to be said that despite the usual pains during roll-out, the system has become very successful, enabling many things that before could not be done (check out Merida's hair in Brave; it's so hard to do that "hair is essentially another character in the film" (seems the problem lies mainly in the"hair-to-hair collisions"!)).

To sum up: movie-making techniques such as story-telling, pitching, and progression reels can greatly improve software development. And, as was remarked during the Q&A, presumably also scientific paper writing!

Why I enjoy attending conferences (some sort of "About this blog")

I guess, everyone right now is expecting the usual perks of conferences: great locations, (hopefully) nice hotels, free food, networking... that's all nice, of course, but not what I am aiming for right now. 

Essentially, conferences inspire me - the people, the interactions, the talks. So each time I'm attending, I'm setting out to try something new. This time, my choice fell on taking up a blog on my area of research, Software Engineering. Possibly also thoughts on teaching might end up here from time to time.

With a lot of new ideas come to my mind and after collecting an awful lot of notes during some of the sessions of this first day of ICSE 2013, I found myself reluctant to bin them into my usual folder (where they might or might not get read again) and instead ready to attempt refactoring them into a blog post (which will hopefully follow this one!).

To sum up, the idea of taking up a professional blog has been lingering around the back of my head for a while. Now, also due to the encouragement of Felienne, it is coming to action.

Let's see how it goes, stay tuned!