Imagine that for over a period of many nights 3,500 people would come to sit for hours in the dark and watch you work. Each night would end in judgment of your efforts, cheering or booing according to their interpretation. Critics would write essays about your performance and the whole arc of your career would depend on these opinions.
This crucible that is the performing arts has had hundreds, if not thousands, of years to develop. In comparison software development is an extremely young discipline, with just a few decades of existence, it’s more an artisan trade than profession. There is need for software development to quickly grow into a professional discipline and some progress has been made to that end. However, there is still much debate about best practices and the gap between theory and practice is often massive.
I’ve had the unique pleasure to work and live in both worlds and have experienced first hand the demands, disciplines and delights of the performing arts. Completing a big software project is a walk in the park, a stroll that could use some advice from a much more difficult path. There are some principles that the performing arts has developed that could benefit a group activity like software development.
That curtain will go up on that stage at 8 pm Friday come hell or high water. Everyone involved is committed to make that event happen and making it as excellent as humanly possible. Most of those involved, from the various disciplines, work together simultaneously on the same production. With this universal focus on a clearly defined purpose the whole team involved pulls in the same direction and is invested in the same outcome.
With software development, this may seem irrelevant. Often it is a batch of small, disparate projects and bug fixes, all with indeterminate deadlines. There are the grand projects, but they are often approached in chunks and the deadlines are frequently theoretical. The fractured nature of software development shows up in the culture of the teams and how the various disciplines interact.
Without a curtain time the unity of purpose of a software development group has to be built in a different way, it has to be constructed from within the particular business culture of your organization. And don’t confuse “mission statements” as sufficient or even relevant. Unity of purpose has to be personal, real and immediate. Regular release cycles with fixed deadlines can work if they make sense. Unity of purpose can be cultivated by having everyone understand what is happening and where the business is going. Cross functional teams can help build this mind set. Working those cross functional teams in a group environment can further the idea. However you try to cultivate this, it needs to be a quality that management actively seeks.
Strong well defined roles -singer, conductor, director, choreographer, etcetera- implement a clear hierarchy that solves many of the personality issues by limiting ego conflicts and allow people to concentrate on the work at hand.
Take for example the Prop Master – a common role in theater and opera. It is exactly what the name implies; the boss, the capo, jefe of all the props, there is no ambiguity. If Placido Domingo is to hold a sword on stage he follows the instructions of the prop master (and possibly the fight coach) to the letter. This frees Placido to focus on his acting and singing, not fussing with the sword & scabbard. He is happy to have professionals take care of these things for him.
In software development roles are basically defined; UI designer, web programmer, database programmer, systems administrator, etcetera. What is often missing is the authority of the individual roles, if your UI guy is doing defacto data design and the database programmer responds “we’ll that’s what the web guy asked for” you have a problem. If your database programmer is tasked with data design authority it must be clear to everyone and well known what that encompasses.
Even in Jazz where improvisation is at it’s greatest, each player creates within the context of the rhythm and melodic structure. They obey the logic of the composition and the form of working together to create music. The creativity comes from within the structure of the music and if a player breaks that structure they harm the sound.
The easy part in music is that everyone hears immediately when this happens. Programmers can do this and their sour notes don’t get revealed for years. Programmers love to be creative, they love to hack out new and inventive solutions to problems. The problems arise when the programmer works outside of the music, when the programmer steps out of solving the task at hand and starts making architectural decisions simply for his own convenience. The systems and business processes around each role should be designed to allow each their creative freedom in the context of the business’s needs and goals.
It is not so easy to map to a software development environment, especially small ones. However it’s worth considering with an eye to business continuity and larger organizations would be daft to ignore it. The other benefit to having a backup for every role is that can give people with the primary authority some sense of support, in that it’s not all their responsibility. They can have someone to train and in whom they can rely to help when they can’t be there or need an extra hand.
The most elusive and unusual element in the performing arts is the unbending intent to achieve the highest level of artistry possible. At large institution like a major symphony, everybody there is some of the best people in the world at what they do. That excellence drives everyone around them to work at that level.
The intensely public nature of the work is a large driver of excellence in the performing arts. Other drivers of quality include the history of the work being performed, the history of the art form and the whole infrastructure built to support them. These all act as lessons in how to do it right, what to avoid and where the gold standard lies.
The comparison of software development and the quality of the worlds great performances is a difficult one. Java programmers are at a distinct disadvantage to violin students as they have little or no history to learn from. However we all understand the idea of quality, it is precisely what we all want in our work. We can set those levels of expectation for ourselves and our organizations to cultivate quality. Work sessions like open code reviews can drive quality and provide shared learning by emulating the public nature of a performance. Existing code that meets a standard of excellence can be reviewed and publicly discussed.
Quality is a demanding mistress. It does not reward the lazy or the or the scattered mind. It’s as hard to create institutionally as it is in one’s self, but we can want it, we can desire it and try and fail and try again to achieve it. However we approach it, just trying for it is a leap forward.
The elements outlined here engender a very high degree of professionalism in the performing arts that far, far exceeds what one finds in the business world. This is not your stuffy, button down kind of professionalism, but rather an easy and creative professional attitude where everyone is valued as a key part of the team. Great soprano divas will treat their dressers and makeup artists with kindness and respect because they know that they are key to making them look good and the work excellent.
Small or new software development environments with their preponderance of young men can more resemble a frat house than a professional workplace. The risk that an unhealthy corporate culture evolves is high if the type of ranking behaviors practiced in high school and college are allowed in the workplace.
This does not mean you can’t play foosball. Real professionalism does not hamper play and socializing. What it does provide is a safe atmosphere free from negative interactions. It has become the law that harassment around issues such as, race, gender and sexual orientation is not ever acceptable. It makes sense to extend this to all types of teasing and hazing. You can still play foosball, but the high school status games should be verboten.
A serious professional environment, where everyone works together, with clear roles and a commitment to quality makes for a wonderful place to work and for wonderful work to be done.