Software Development: Mozart and Beethoven

Recently I watched an interview with  Edsger Djikstra conducted a few years before his death. Music was on his mind during part of the interview; specifically, the compositional styles of Wolfgang Amadeus Mozart and Ludwig Beethoven.  As Djikstra was talking, “Twinkle, Twinkle” was playing in the background – I’m pretty sure where his admiration was directed. Dijkstra romanticized the mythically complete style of Mozart while seeming dismissive of Beethoven’s more iterative enhancement; somewhat ironic, considering Beethoven’s music was significant in the transformation of the “Classical” era into the “Romantic” era of Western Classical music.  I told some friends while discussing this interview that I shuddered to hear his opinion of composer Gioachino Rossini, who was generally regarded in his time as lazy due to his procrastination.

Although Mozart’s manner of writing down complete works of music only after completing the process in his head is alluring (and not necessarily accurate), the manner with which Beethoven (and evidently the real Mozart as not depicted in the movie “Amadeus”) constructed his music with sketches, revisions, restarts, redo’s and various iterations before the final performance copy is not unlike what today’s software development is like and how it relates to composing or arranging a piece of music.  Consider the software development lifecycle:

  • Planning – An idea is needed, like the famous first four notes in Beethoven’s “Fifth Symphony”. Are you making a 100% original piece or an arrangement? Do you have a deadline before a performance? Is this a passion project, commission, or something else?
  • Requirements & Design – What musical form(s) will you use? What style(s)? Length? What instrument(s)? (Include trombones if you can!)
  • Development – Play something on the keyboard. Sketch out some ideas to develop the theme. Add some harmony (or not).  Have an idea for another theme? Do you include it in this piece or keep it for the future?
  • Testing – Make sure your musicians can play what you’ve written.
  • Deployment – Time for the concert / show / recording session!
  • Maintenance – If you ever play the “book” for a Broadway musical, you will be familiar with edits, additions, and entire songs cut because they didn’t work! ( And hopefully the rehearsal isn’t thrown into chaos because someone is missing an entire page that has been missing from the book since version 1)

Djikstra’s preference of composers aside, I think that most developers tend to develop with a style more attributed to Beethoven (and historical Mozart).

Mozart’s Symphony No. 40 in G minor:

Symphony No. 20 in G minor

Beethoven’s Symphony No. 5:

Symphony No. 5

Part of Rossini’s most famous overture:

Willam Tell Overture Finale

https://www.expressionsofchange.org/dijkstras-mozart/

https://www.invisionapp.com/inside-design/mozart-creative-success/

https://en.wikipedia.org/wiki/Romantic_music

https://aadl.org/node/144535