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.
Building a Rails Server