In my March/April 2013 editorial, “Software Development and Filmmaking Parallels,” I discussed the similarities between filmmaking and software development. I focused on three specific comparisons: creating the script as compared to drafting requirements, storyboarding as compared to creating software mockups, and digital film distribution as compared to distribution via app stores. In this editorial, I will focus on the first of these three processes: screenwriting as compared to requirements drafting.
The most important aspect of both filmmaking and software development is the process of determining what you wish to create. The screenplay/requirements-documents determine what will be developed (a word shared across both disciplines). It is important for these documents to accurately describe all of the elements necessary to accomplish the goals of the filmmaker/business.
Screenplays need to be broken into scenes, software requirements need to be broken into features. Scenes need to describe the characters, sets, props, and dialog to accomplish the goals of that scene. Features need to specify the actors, business rules, and elements necessary to implement that feature. To further illustrate this, let's compare artifacts between screenwriting and feature documentation.
The first example to consider is a page from one of my screenplays. Take a look:
This page describes all the elements necessary to film a single scene for this short film. From this single page, you learn the following:
- Where this scene takes place: It's an INT(erior) scene describing a HOME RESEARCH LAB.
- Who is involved in the scene: PROFESSOR STEVEN WILDER, BETH WILDER, and KRYSTA WILDER.
- What these people look like and how they are dressed.
- What props you need: TUNING FORKS, SOUND CONES, COFFEE CUPS, etc.
- The next scene: An INT(erior) scene taking place at the LANDING NEAR THE FRONT DOOR OF THE WILDER HOME
- What is being said and by whom: BETH WILDER, “Honey are you almost done!”
Along with all the details, you can notice the form of the page. Props and characters are in CAPS. Dialog is centered on the page. Accompanying action is in parentheses and placed below the character. Screenplays have both form and function. When people read a screenplay, they expect it to be formatted like all other screenplays. The form lets the reader focus on the content and not the meaning of how the document is formatted.
Now let's take a look at a software requirements page. This page describes all of the elements necessary to implement a single feature for the system being documented. From this page of requirements, you learn:
- What is going to be implemented: Adding a payment from a checking account.
- Who is going to use the feature: A collection rep.
- Default values for the feature: date entered, paid flag, canceled flag.
- Required fields: ABA Number, Account Number, etc.
- Business rules: Payments made after 5:00pm must be dated tomorrow.
Just like the screenplay, this feature document has its own form. It has a Feature description, it implements Scenarios, and it uses a structured language (Given, When, Then). Software requirements should not be ambiguous and by using a common language, developers can focus on the content of the requirements rather than interpretation of the how the requirements are presented.
As you can see, these two disciplines share a lot of similarities. The documents created have both form and function. Each discipline has its own rules regarding form but the function for both is to provide enough details and implement a vision. Finally there is an important aspect shared between these two disciplines: COST! The cheapest part of software development and filmmaking is the creation of the requirements. As soon as the first code is written or scene shot, the costs rises greatly. It is better to get it all on the page early and not have to “fix it in post.”