Agile Software Lessons From Ballet

Swan Lake _Photo by Valentin Baranovsky – Uliana Lopatkina and Danila Korsuntsev. _

Many moons ago, I spent a couple of years dancing with a ballet company. You wouldn’t think that much of that experience would transfer to development projects, but I give you an example in partnership, the can be applicable straight from the ballet world to the software world. The partnership in question is the one between the lead ballerina and the lead male dancer called a “pas de deux.” In many ballets, this dance involves the ballerina being a swan/princess and the male dancer being a prince/sorcerer. But in my example, it really doesn’t matter that much. The only important point is that they are the best dancers in the whole company.

Each one of them can astound the audience in their solo moves, but in their duets – they can do really awesome things. The male dancer supports the ballerina during dazzling spins and carries and lifts her in heart-stopping moves across the stage. When it is done well, the audience goes crazy and gives them a standing ovation. They can only pull off this spectacular performance if they have developed a great partnership. Of course they are brilliant performers individually. But they need more than that to pull of a pas de deux. The job of the ballerina is to be lovely, graceful and technically brilliant. The male partner must also to graceful and skillful (maybe not so lovely) – but his main job – is to make the ballerina look good. Failure to make the ballerina look good – even if you are the most talented dancer in the entire universe – will still make you a lousy partner. I don’t care if he can spin one hundred times a second and can jump one hundred feet in the air. If he is performing a pas de deux, and he drops his lovely ballerina on the floor, he is a lousy partner and she will be guaranteed to burn her toe shoes before agreeing to share the stage with him.

Reasons for being a bad partner in ballet (or dropping your ballerina):

  • You didn’t have enough time to rehearse

  • You don’t like your ballerina

  • You think you should be a the star of the show and don’t want anyone to look better than you.

Now let’s go to the world of the corporate software project. You have your developers and your business partner – the customer. You, the developers, have the supporting role. You main job is to make the customer look good. That’s right, through your mastery of technology, you must partner with your customer to help them accomplish their business goals and make them look great. If you metaphorically, drop your customer on the floor, then you are obviously not a good partner.

Reasons for being a bad developer partner in software projects:

  • You are new to the team and haven’t gotten into the communication groove yet

This is alright in the beginning of a project. Heck, it happens when ballet dancers are just learning their dances too. If you are doing short iteration cycles, then the first couple will be a little rough. But with feedback you will improve and your team will start to gel and shift into high performance.

  • You think all people that are not IT are idiots.

I have seen this sentiment common on projects that have a strict division between the IT people and the business people. Somehow, it turns into a horrible sentiment that the anything that the business users ask for is a waste of time and only the IT department knows the right things to do. If you have your team mixed with developers and business people this will help break down such harmful barriers.

  • You think that you are a Superstar and want to showcase your technical talents in your application – maybe they will start asking you to speak at the Google Confs after they see your work.

You may be the Ninja Assassin of the Black Arts of Java, Ruby and all the cool Functional languages, but if you can’t accomplish what your business needs to look good, then you suck as a partner. Frequent communication with the customer is key. Fun is fine, but please examine your motivations for putting in that cool new feature. Is it going to make the customer look good or you? Again, short iterations and feedback cycles will help put the focus back on what the customer wants and needs.

Communication, feedback are essential elements to a good partnership in the ballet world and the software development world. Don’t ever forget to make your customer look good and your projects will be sure to get a standing ovation.