I play lead guitar in an improvisational rock band. One of the things I notice about improvising is that it is a way to explore to a space of possibilities. If I could take the best leads I've ever played on the songs my band does (and maybe upgraded some of the parts the other players played), I would perhaps be a guitar god like Clapton and Hendrix. So there is something to the freedom and letting go that improvisation makes way for. Perhaps eXtreme Programming is tapping into that as well.
With the music, there would need to be an editing or revision phase where the best parts of the improvisation are selected and put together in such a compilation. So, wide-ranging exploration, selection, and editing. Isn't this what exploratory programming is about?
In science, people noodle with ideas and explanations in the same way. Mathematicians look at their domains and try to see or make patterns out of what they see.
The other thing is that improvising is practice-both muscle practice and music composition practice. What happens when I'm playing is often unexpected, so it mirrors Stafford's definition of poetry "a reckless encounter with the unexpected." (Is that right Janet?)
Nancy, tell us more. -rpg
Richard, I'm not familiar with the Stafford quote. But I see what you're getting at; to me, it's more a willingness to be bad or look like a fool 98% of the time, for the sake of the 2% of the words that work. But this is not performance, as you say--it's practice. Fortunately we don't have to show the bad pages to people, or publish them! (Though I know many who do...) - JanetHolmes
eXtreme Programmers say you should almost always [pair-program. http:/c2.comcgi/wiki?PairProgramming] There is an argument that says people are most productive alone, and a counter-argument that says people should never work alone...
--DeanMackieOne of the lovely things about the backup band with a soloist is that they're kind of cheering the soloist on. I wonder what the cheering would be in a programming setting... Maybe the soloist would write all the really cool bits of the code, and in the meantime the backup band could write the getter and setter methods, all the while nodding in a kind of jazz-man way?
Sounds hilarious...
Right now, one of the wonderful things about programming (or about being a programmer) is that more often than not you're not just doing "back-up act" kind of stuff. Even in your own corner of a system you can do creative things.
But in architecture, there's always a chief-architect who does all the main, sweeping, elements of a design, and then poor sad-sap new-grads who have to do all the grunt work. If someone were to develop a lovely improv-programming framework, I bet sooner or later it would be used to install this whole "chief programmer" hierarchy, and it would actually become an instrument of control...
Still worth trying though...(?)
The team theory is that "none of us is as smart as all of us", and the corollary is that "the sure way to get a project to fail is to assign it to a committee." Still, I would assert that if you picture an antisocial lone-gunman programmer that you know, that person is likely very involved in online communities?
I think the best bands consist of talented, mutually respecting people, that take turns soloing. They might hire session musicians to stand in now and again, but then they prefer (IMHO) people who add to the creative environment even if they aren't soloing.
True grunt work is being outsourced or downloaded these days, and non-creative stand-ins are being automated.
Well, there are a few metaphores we can use:
My choice is obviuos from the description - and most Jazz musicians I have seen respect new entrants to the game with respect - as long as they have sound basics.
Where would you like to play?
I've done both of these (to a limited degree) and neither of these descriptions are quite true. I don't know about the strings, but the wind players in major orchestras are serious soloists. They have a lot of responsibility and good conductors will give them room in performance. I recently went to see the LondonSymphonyOrchestra with PierreBoulez in a lecture concert about the RiteOfSpring. One thing that was very clear was the stunning artistry of the solists and the respect they had for each other.
Most jam sessions work because the musicians are working within a very strict set of rules. Even FreeJazz, which I used to do, has its own conventions, if nothing else from the choice of instrument. I've also seen improvising groups where the bar to entry is very high. Remember, the beboppers used to play so fast to scare off weaker players.
I remember a friend describing it this way, the trick with classical music is to make it sound like you just thought of it, whereas the trick with jazz is to make it sound like you knew exactly what was coming up. The fun is in the contradiction. --SteveFreeman