The temptation to work the electric guitar into a software development blog was too great for me to resist. I’m going to try to tie this altogether, so follow along.
It’s been debated that Jimi Hendrix is the best electric rock guitarist every to grace the planet. I would never argue against that position, particularly since I heard him in the context of the other pop and rock music acts of his time. The current generation of music listeners, who hear him in the context of the thousands of others that have learned from him over many decades, may not appreciate the innovation he represented in the late 1960s.
So what was so unique about Jimi? Well, I believe it was because he recognized that the electric guitar was a new instrument, not just an acoustic guitar with amplification. He learned that you could play it much faster since you were not relying on acoustics to transmit the sound. He also learned that you could process the electrical signal through devices such as a fuzz box, a wah-wah pedal, and a tape echo to create entirely new sounds. He developed a unique way to play a combination of chords and single notes simultaneously. The thinner neck of the electric guitar allowed him to do this. His technique produced more musical complexity than other guitarists of the time. Finally, I almost forgot to mention his use of the whammy bar, a device built into his guitar that allowed him to vary the pitch of notes while he was playing! This was featured prominently in his version of the Star Spangled Banner.
So how does this relate to software development? Hang on a little longer.
There were also two other innovators on the “hardware” side of the guitar that preceded Jimi by a decade, Les Paul and Leo Fender. It has been debated which one truly invented the solid body electric guitar, but I view them as 1A and 1B. However, they took different approaches to the problem.
Les Paul took the perspective that the problem was how to amplify an acoustic guitar for use in a big band setting. To make his first prototype, he literally cut an acoustic guitar in half, bolted a piece of solid wood in the middle and added pickups.
Leo Fender, with his iconic Telecaster and Stratocaster guitars, designed an electric guitar from the ground up using an amplified Hawaiian steel guitar as the basis. The body, neck, and electronics were all designed to work in harmony to deliver an electronic guitar signal to an amplifier. To this date, the Gibson Les Paul guitars and the Fender Stratocasters of the 1950s are priceless examples of this innovation.
So why am I singling out Leo Fender for this discussion. Les Paul was an amazing innovator and inventor, so I don’t want to take anything away from his contributions, but Leo Fender understood more that the electric guitar was a unique instrument. So when a Stratocaster guitar was put in the hands of an artist such as Jimi Hendrix, that understood its uniqueness, musical history was made.
Are you are still wondering how this relates to software development? Software development for many decades was considered a traditional engineering discipline. This is most likely due to its early affiliation with the hardware development at such companies as IBM, Burroughs, and Sperry. What makes Agile development so refreshing is that it recognizes that software development is not a traditional engineering activity. This is much like Jimi and Leo understanding that the electric guitar was not simply a loud acoustic guitar.
Software is not governed by the laws of physics and can be changed easily. It does not lend itself to lengthy, upfront design phase that does not embrace changes over the life of the project. Agile recognizes the fluidity of software and embraces it, resulting in better productivity, quality, and “music”. Avoid being trapped by the way things were done in the past, it will free you to come up with better solutions.