Making Movies


Making movies is exorbitantly expensive, just like writing software. Moviemakers have been making films in Hollywood longer than we've been creating software in Silicon Valley, and we can learn something from them. The actual filming of a movie is the really expensive part. All of those cameras, sets, technicians, and actors can cost many thousands of dollars every day. Good moviemakers keep tight controls on this production phase by investing in detailed advance planning. By putting time and money into creating detailed storyboards and shooting schedules, they save orders of magnitude more money and time during filming.

The process of getting a film made can be broken into three major phases: preproduction, production, and postproduction. In the preproduction phase, the producers have the script written and polished, design sets and costumes, hire the cast and crew, and raise funds. During the production phase, the lights glare, the cameras roll, the directors shout orders, and the actors emote. During the postproduction phase, the film is edited, the soundtrack is recorded, and the marketing campaign is assembled. These phases correspond quite closely to the software-construction process.

During the preproduction phase, the managers do the interaction design for the product, hire the programmers, and raise funds. During the production phase, the CRTs glow, the compilers roll, the managers shout directives, and the programmers emit code. During the postproduction phase, the code is debugged, the documentation is written, and the marketing campaign is assembled.

graphics/13inf01.gif

The significant aspect of this tripartite structure is that the purpose of the preproduction phase is to minimize the duration of the production phase. It is excruciatingly expensive to put a film crew to work, and shaving just a few days off a long shooting schedule can pay for weeks of additional pre- or postproduction work. A contemporary film will spend a year or more in preproduction, and then a couple of months in intense filming, and then many more months in postproduction.

What's more, as our films get increasingly technical (what do you get when you cross a film with a computer?), more and more of the production work simply cannot be done without meticulous advance planning. If your leading actor must have a light-saber duel with a computer-generated alien, he must have an imaginary fight with just a blue-screen background, so his every action must be first choreographed down to the slightest step and glance.

Moviemakers know that they only get one chance to do it right, so they never skip the preproduction effort. In the world of software engineering, many managers believe that they can just fix it in the next release, so the pressure for advance planning is reduced. That's an awfully expensive assumption.

It is just as complicated to make modern software as it is to make modern films, yet most development processes seem to ignore that fact. Most development teams that I have seen spend a few days or weeks (at most) in planning and design, and then anywhere between 6 and 18 months programming, and then just a couple more months of debugging, testing, and documentation. I suspect that we have a lot to learn from filmmakers. If we spent more time in preproduction in design we could cut our expensive programming time considerably.

The moviemaking preproduction phase is the one in which the least money is spent. It doesn't cost much to create a detailed storyboard of an expensive chase scene filled with explosions and special effects. To make dramatic changes all it takes is an eraser, a pencil, and some time. Getting all of the details right on paper will save millions when the camera is rolling and the cars are filled with stuntmen and explosives. Preproduction is an investment in time that saves cash and increases the likelihood of eventual success.

If the director changes his mind and wants to blow up a helicopter instead of a railroad train, it is simple, cheap, and easy to do in preproduction. To make that kind of change during filming would be ridiculous. Filmmakers know this, so they take their time to get it right during preproduction and then proceed as planned during production.

Why do we approach software construction with such a different mindset? We put so little time and effort into advance planning. Instead, we fill up the whiteboard, create the spreadsheet of one-line feature names, and then send those incredibly expensive programmers out into no-man's-land to code. Just like filmmakers, we know how expensive it is to make changes during coding, yet we don't bother to invest the time and effort in the planning process. Instead we hire the programmers, let them start coding, and then plead that we can't make changes now because the expensive coding is underway.

For existing products, the cycle is even more skewed. An annual feature upgrade to an already shipping product might have no calendar time allocated to it for preproduction design work. Instead, the product manager simply maintains a list of features requested by customers, and it is just annually, unceremoniously handed to the programmers for coding.

Just as in the preproduction phase in filmmaking, adding a thorough product-design phase to the software-development process will yield enormous benefits. By creating a detailed paper plan for the product, we eliminate the vast uncertainties of programming, along with significantly reducing the risks normally attributed to releasing software-based products.



Inmates Are Running the Asylum, The. Why High-Tech Products Drive Us Crazy and How to Restore the Sanity
The Inmates Are Running the Asylum Why High Tech Products Drive Us Crazy &How to Restore the Sanity - 2004 publication
ISBN: B0036HJY9M
EAN: N/A
Year: 2003
Pages: 170

flylib.com © 2008-2017.
If you may any questions please contact us: flylib@qtcs.net