In July my voice teacher let me know that Homeland was looking for yoga practitioners for a scene. Between the morning when she mentioned it and the afternoon when she filled me in on the details to apply, seemingly twitter, facebook and even lunch time TV news had spread the word.
What I first intended to try out as a lark now seemed daunting. With a little encouragement from my teacher, I applied, and was cast!
The morning I showed up on set I was promoted from extra to stand-in because I resembled one of the actors. As a stand-in, you're on set to watch as the actors rehearse the scene, the actors & directors discussing blocking (where they'll stand & move across the set), then (surprise!) stand-in for the principal actor while lighting and sound make their adjustments for shooting.
The actors come back, you as stand-in get out of the way, and the crew shoots the scene. There isn't much to do, so it affords a lot of time to observe. That's how I noticed the production of a television episode is a lot like software development.
A television episode is like your web application in that the episode is a collection of scenes like features that seek to provide value. In the case of the episode the end value is entertainment. As a television series seeks an audience the success of a software product is determined by serving a user base. Each scene of an episode can be defined as a code sprint, as each scene moves a narrative forward the goal of a sprint is a well defined result such as particular features.
When you think of DevOps what comes to mind? For me the primary tenants are a culture of operations, development and business communicating. One also monitors everything, use the information to get better and adopt code as infrastructure so processes are repeatable, testable and move toward continuous deployment.
How a television episode is made is more about their process and their people and this is the core message of the devops movement. Television shows have ratings to monitor their interaction with their audience hopefully you have monitoring not just for your infrastructure but every business aspect that's critical to your application's success.
In one afternoon I saw tape marked onto a floor to note where an actor would stand for their next shot, chrome trim of cars sprayed with a matte film to prevent distracting reflections, and entire system of fake licenses plates depending on desired location & context (i.e.: principal characters, multiple federal agencies, general local MD/DC/VA license plates) just as any web application from the infrastructure code to front end assets are going to have hundreds of details to track or change.
As a stand-in I was literally a mock object for camera angles & lightening adjustments to be set. Sounds a lot like writing test driven development doesn't ? Once your test cases are set up and you're creating the actual features, we know writing software doesn't always go right the first time. The same happens to actors, sometimes they flub the scene and break the build so to speak.
As developers we iterate until our features pass. When there are multiple bad takes I saw no one on set crucify who made the mistake; I think it's important part of DevOps culture that instead of finger pointing the issue is addressed and everyone goes on. Another aspect of filming is that their process is repeatable, capturing another take on a scene is not considered a failure. Sometimes the crew kick off another build by reshooting the scene just so to make sure they got it right.
Sure my metaphor may break down in that film & tv production is incredibly manual in the numbers of people that are employed where software teams following agile processes can be be incredibly small. But hear me out. If we take scenes within an episode as equivalent to our code sprint, then easily we can draw the Director as product owner who is executing on the episode or product vision.
If the episode/web application is the end product how does everyone else fit? Without writers creating a script, or designers & front end engineers there's nothing with which for the audience or users to interact. Where do actors and developers come in? They are the creators shaping the execution, using their creativity to give life to that episode or product. If an actor without a stage is just two people mumbling at each other, code without deployment are bits on a hard drive. Sound, lights, camera crew are the specialists of networking, security, and infrastructure in deployment.
There is no wall of that's acting & that's production just as DevOps embraces as we've moved from shipped stand alone software to continuously deployed web applications. Wardrobe and props are functions that help actors best embody their character just as building internal environments of development & staging or the quality assurance teams help the team create their best product.
As an extra waiting to see if you were cut from a scene feels a bit like waiting to see if your pull request gets accepted into a major open source project. With this past Sunday's airing of Episode 5, I was able to capture a screenshot of me in the green shirt straightening up 8th Street Studio as the actor I stood in for left.
What did I learn about DevOps spending the day alternating between 2 feet and 20 feet from Claire Danes? That to win an Emmy and put out a great episode/product you need a testable, repeatable process and a talented team around you.