Most people think that software and ballet are distant topics, completely unrelated. While you can imagine a program that helps a correographer keep track of things, what could software possible learn from ballet? Answer: a great deal. It would take many posts to describe it all.
First Some Ballet
The annual Youth America Grand Prix competitions just concluded.
These are a big deal, and people in the field rave about it:
The movie First Position was recently released about the competition, and it is well worth seeing.
While the competitions are for young people, professionals are involved in everything. During the Gala that ends the season, the program consists of the youthful winners of the competition and some of the best professionals in the world. Here are a couple of pros performing at a recent Gala:
And here are a couple of the amazing kids:
I attended the 2013 Gala; it was totally amazing. What was most striking was that all the kids were in the audience, cheering and generally having the time of their lives. They knew what they were seeing, and were all at some stage of training to be able to do it. They totally got it, and appreciated every nuance.
Software
Watching the whole spectacle made me think about what it would be like to substitute "programming" for "ballet."
There are strong similarities. Both are hard to do. Not many people can do it well. It takes years of hard work and dedication to get good at it. Huge discipline, focus and concentration are required. Small mistakes can wreck an otherwise perfect performance. While it's primarily an individual discipline, group performances are often required, and are even harder but can lead to even better results. The best performances seem effortless. Beauty and symmetry are important aspects of successful performances. And in both cases, you are orchestrating a flow through time.
There are of course huge differences between the two. The most important differences have nothing to do with what you wear to work.
Here is one of the young competitors doing something completely amazing:
There are young programmers who can do the programming equivalent of this, but how can they get identified, rewarded and encouraged? What opportunity do they have for watching and learning from people who are way more advanced then they are? Even at a more advanced level, when they take courses, they're sitting in class and being taught mostly irrelevant stuff by academics, most of whom aren't serious programming practitioners, and don't even respect it! They think their papers and conferences are much deeper and more important. Sad. It's always best to be taught by someone you want to emulate, rather than by people who look down their noses at actually, you know, writing code.
They got all the kids on stage at the end. They did a lot of amazing things a picture can't capture, but here's one anyway, from last year:
Who would have thought that the field of ballet would be, in many ways, a role model for the transformation of software training and organization? But now I realize that it is, and I encourage others to pick up this ball and run with it.There is quite a bit we can learn from "artsy" fields, including architecture, music and sculpture. Not to mention steamboats and antiseptic surgery.