Geeks With Blogs
Mike Nichols - SonOfNun Technology If I were the captain on a big steamboat...

For the first 14 years of my professional life, I was a touring musician with a Master's in Music Performance in percussion. By the grace of God, I've been moved along into a fun profession of Software Development. For the most, I've been a lone ranger and have had to learn everything on my own, which is fine since I enjoy problem solving. As I've matured (ok..I am still in Beta :)) in my 'skills' - not the numbchuck kind - I've seen many parallels to music composition/arrangement and development. This isn't a new idea I know, but one struck me tonight.

I needed to add a new field to distinguish records on an object. Now, in the past I'd add the field int the Db and then have to think about ALL THE PLACES I HAVE TO ADD IT and any functionality to accomodate it. This simple requirement COULD break my whole dang domain if I had built spaghetti code. However, as I've built my domain, certain styles and patterns have emerged that let me ALMOST be mindless in solving problems like these. Since I had implemented solutions using certain software patterns, I could simply look into the domain and let IT tell me how to code. Kind of a pattern-of-patterns thing.

A parallel to this in jazz piano is voicings on a keyboard. Pianists like Bill Evans, McCoy Tyner (tho I shudder to put them in the same sentence), Red Garland and so on voiced chords in their unique way, but did so usually from a common way of thinking about how a chord SHOULD be voiced. Voicings, by the way, are the notes you select to play a type of McCoy might leave the third out to get a kind of earthy sound, but Evans might add upper partials to a chord to give more of a shimmer. The point is, IT'S THE SAME CHORD but they have a bag of tricks to drawn on so they don't have to freak out everytime a new chord comes along.

Patterns in software are like that I think and actually make the process of development more fun. Not because you can use fancy terms .. they are just ways to solve problems. But in the end, I feel like I have expressed something in a way I WANTED to express it, as opposed to throwing datasets all over the place and then feeling lucky that I just got the data back and forth to the user.

Posted on Thursday, September 14, 2006 4:40 PM OOP, Patterns, Architecture , C# | Back to top

Comments on this post: Patterns, voicings, and rudiments

# re: Patterns, voicings, and rudiments
Requesting Gravatar...
I am a retired public school music teacher and former college gospel piano music teacher. I earned my masters in music education from Indiana University where I studied with Dr. Dave Baker. I play gospel organ and piano for the largest Baptist church in the small college town I retired to. I have played with several big name jazz artists during Summers when I was teaching. i know music. In addition I am taking private lessons from a Hollywood composer who teaches Lyle "Spud" Murphy's Equal Interval System of Horizontal Writing on-line. I know voicings up and down, as well as inside and out and vice-versa. I am teaching myself code as a hobby. I look at other peoples code and imitate it as I try to develop my own. My most favorite musician of all time is J. S. Bach. He learned how to read and write music from looking at other peoples music. I don't understand software as well as music. I would love to collaborate with you sometimes regarding these two disciples of interest.
Left by Felix Scott on May 04, 2007 2:07 PM

# re: Patterns, voicings, and rudiments
Requesting Gravatar...
The challenge you have in IT software and hardware is non existent in any other field at all so if you want and need a challenge this is the way.
Left by Scrubs on Mar 23, 2011 4:46 PM

Your comment:
 (will show your gravatar)

Copyright © Mike Nichols | Powered by: