Because I'll be on the road almost every week from now until Thanksgiving, I filled last week's evenings with a number of social events, including The Wizard of Oz at the Boulder Dinner Theater, Cinderella at the Ellie Caulkins Opera House, Wicked at the Buell Theater, and Cleo Parker Robinson Dance at the Newman Center, all in the Denver metro area.
I love dancing; it's such a beautiful and open expression of the human spirit. It may surprise you to know that I took ballet in elementary school, and in college did a bit of modern dance for a musical (but that's another story).
There are many genres of dance: ballet, jazz, salsa, hip hop, tap...the list goes on. There are also many identifiable dance masters each with their own visibly distinctive style: Bob Fosse, Debbie Allen, Michael Baryshnikov...that list goes on as well.
It seems to me that there's a curious relationship between dance and software architecture: in both disciplines, there are only a limited number of patterns available, each genre assembles those patterns in specific ways that define a particular genre, and furthermore, most knowledge is passed on through tribal memory, from one dancer or architect to another. In dance, by the way, some attempts have been made to define a graphical notation (labanotation) for describing dance movements, just as we have the UML for visualizing, specifying, constructing, and documenting software-intensive systems.