Film Making: A Better Software Development Metaphor

The craft of software development is in dire need of a new metaphor. In this authors opinion the common “Manufacturing” metaphor we bandy about is tired and has bigger holes in it than a  Round Rock Donut

The issue that bothers me most:  manufacturing implies processes that delivers a real and tangible products. Manufacturing conjures up images of sprockets, cogs, gears, widgets and cars. 

This is where I think using this metaphor is simply tired. At the end of the day we make something entirely different we make items that are neither hardened or tangible, but items that are “bendable”.

There is a better metaphor for what we do: Film Making. The items that we deliver from our process are more akin to movies, than cars rolling off a production line at Toyota or Widgets rolling off a line at Spacely Sprockets.

There are so many parallels in the movie industry it is astonishing.

Here are a few movie industry terminologies and how they parallel software development

  • Requirements/Design
    • Treatments – RFQ/RFP
    • Scripts – Detailed Requirements
  • Green Light /Red Light
    • Budget – Budget
    • Schedule – Schedule
    • Scope – Scope
  • Team Parallels
    • Director – Principle Software Developer
    • Writer – Analyst
    • Special Effects Supervisor – Research and Development
    • Camera Operator – Software Developer
    • Producer – Project Management
  • Project Size Parallels
    • Trailers – Demos/Prototypes/Spikes
    • Shorts  – Stories
    • Television Shows – Deliverables
    • Features – Projects
    • Trilogies/Epics – Large Projects
  • Requirements/Design
    • Scripts – Detailed Requirements
    • Scenes – Stories
    • Shot Lists – Project back log
  • Pre Production – Project initiation/planning
    • Story boards – Mock ups
    • Animatics – Prototypes
  • Principle Photography – Software Development Process
    • Setups – Iteration development
    • Cutting Room Floor – Cutting features
  • Post Production -  Project Delivery
    • Reshoots – Rework of current features
    • Cutting Room Floor – Cutting features

I hope you can see from the aforementioned list that the process of software development shares many common attributes/processes with the film making process.

This post constitutes the first in a series. My plan is to take this list and create a number of other  blog posts where we can all discuss how our industry could benefit from studying an industry that more closely parallels our own. I hope to answer the following questions:

  • How does establishing a new metaphor help us as software developers ?
  • How can we change our thought process to use the new metaphor ?
  • Where does this metaphor fall apart ?
  • How can we optimize our development process by changing our metaphor?
  • What tools exist to make the metaphor work ?
  • And any questions that I am sure you will come up with.
This entry was posted in Uncategorized. Bookmark the permalink. Follow any comments here with the RSS feed for this post.
  • My only concern is due to another strong resemblance between software development and filmmaking – in film, they make the majority of their projects under the assumption that they will fail. They only need one or two big hits to carry the rest of the stable.

    Also, the other thing to worry about is that films don’t live on – they’re made, they’re in the can, you don’t go back and keep working on them (unless you’re George Lucas, and we all know how *that* turned out.) What is the film equivalent to “V2″? I don’t think it’s a sequel.

  • I must say how excited I am to see someone making the analogy between software development and film making. There are many valid parallels that can be drawn from this analogy and I look forward @Ron to see where you will take it.

    @Chris, I think the point about films being static once released (mostly) while software continues to evolve is valid, but with respect to your first point, if most software projects are not made under the assumption of failure, then perhaps they should be, given our industry’s track record of success. :-)

    The first place that I read of film making as a metaphor for software development was actually in User Experience literature.

    Consider: when you are using well-designed software, you actually look through the software to focus your attention on the problem at hand or the data with which you are working. when software designs fail to provide a good experience, you wind up spending more energy and attention on “tool time”, or thinking about how to use the software tool. When you watch a badly produced movie you get distracted by all the details that aren’t working, while with a good movie you look right through all the details to focus on or be moved by the story.

  • The problems with metaphors it that people get to caught up in them. It often causes more problems than it’s worth.

    However, I think a metaphor like this can be valuable when explaining the software development process to non-technical people.

    I don’t think it’s a good tool to use for evolving the software development process. We should focus on actual software development, look at our goals and see how we best can achieve them.

  • John

    I still prefer the gardening one.

  • Great analogy! I really like it!
    Recently I started posting interestnig analogies I found on the web on I thought it could be a good idea to create a place where people can share useful analogies such as yours.

  • Caladin

    The Games industry has been using the Film model for at least 20 years, to describe what they do, it’s an even better fit there.


  • Swapnil Bhavekar

    thanks for this information ! it helps