Shedding Light on the Development Process
The parallels between the lighting design process in dance and software development
Pretty Ballerina by daily sunny is licensed under Creative Commons BY 2.0
In addition to working on software, I’ve also spend time as a lighting designer for dance. I gained many tools while designing lights and learned a good process for being successful. Along the way, I’ve realized that many of the tools and processes I picked up in lighting design are incredibly useful in the software development world as well, particularly when taking on a new project.
Develop a good picture of the end goal before you start creating
Whenever starting on a new project as a lighting designer, you always have to take into consideration the vision of the choreographer. For example, a choreographer might be looking for something described as “otherworldly” and “trapped”. With those prompts, you have to do the best you can to understand that vision before moving forward.
The same goes for when starting a new application. What is the client envisioning, or what problem does this solve for the end user? You need to get a good picture in your mind of what the end goal is before you get started. Keep in mind that it is for them, not you.
Understand any background knowledge to make educated decisions
After learning what the vision of the project is, research comes into play. There’s usually some requirements and restrictions that need be be known before getting started. There could also be some important background knowledge. When you’re designing lights you need to know what equipment you have available, and what kind of space you are dealing with. What does the stage look like? What color are the costumes? Are there any time restrictions?
If the piece is set in a specific time period or location, you need to do research about what the environment is like that you are trying to recreate. If it is an adaptation of another piece, such as the Nutcracker, you could see how others have approached that same thing.
With software, you have to do research on what technology and tools you’re going to use to accomplish the task. It may require you to do some research to decide what to use. What would work best for the problem space? What tools are the developers on the team familiar with? What are the budget restrictions? Has anyone else solved the same or similar problem, and how did they do it? Does it apply to this situation?
It is important to do the research to answer these questions ahead of time before making decisions that depend on them.
Create the best product from what you know
Implementation is the “getting stuff done” phase. For lighting design that’s creating the light plot, picking lights, colors, intensities, and putting together the cue list. Not only that, but the lights need to be hung, and the light board programmed accordingly.
In software development, the implementation includes picking the technologies, writing stories and estimating them, and then of course writing the code. This is all so you can create the best product from what you know.
Make sure you’re on the right track
You want to make sure that you keep checking in to get feedback on what you’re doing to make sure you’re on the right track. If you’re working with a choreographer, your ideas might not match that they were thinking, or their vision might have changed along the way.
The same goes for software. You need to go back to make sure you’re matching the requirements, and that things haven’t changed. Along the way you could have made incorrect assumptions that need to be corrected. It’s important to make sure you keep checking in so everyone is happy with the end product.
Repeat the previous steps until the job is done
Then, you keep iterating. You go back and repeat the entire process to make sure you can adapt to any changes or corrections. You never know when/if requirements or vision could changed. You might need to research some new things to account for that. These things could affect your implementation. You keep repeating all the steps to make sure you keep the flexibility you need to have the best possible end result.
Let the world see what you have created
You keep moving forward until you reach the day of the show. Everything has to be finished by this day and time. Even if you are working until the last minute, there are deadlines to keep. There has to be the time that the curtain opens; you ship that feature or that software. There’s no reversing that first look that someone has on what you created. It can be exciting to let this creation be out in the the wild, seeing people’s reactions, after you’ve been working on it for so long.
The show must go on.