Art and Engineering

Ian Bennett
8 min readSep 16, 2017

--

I recently wrote a Twitter thread that started off as a joke about my abysmal earnings from a music album I released a few years ago. As I took the time to crunch some numbers, I realized it’s highly unlikely that someone can make a living off of streaming music sales. In fact, you will probably be in debt and never recoup the time or energy put into crafting that piece of art. The problem is that art is undervalued and I wanted to shed some light on how my hobbies actually make me better at my job.

How this blog post came about

I’m going to focus on experience with music, but I could easily write this about photography (maybe in another series) and the content should translate to other art forms or even sports. Midway through writing this, I realized that there’s way too much to discuss in a single blog post and I’m going to break this up into a multi-part series. This post will focus on some of the basics and how they translate to my day job and subsequent posts will go a little more into the collaborative, physics, DSP, and business aspects that correlate more directly with being an engineer on Twitter’s Observability Team.

Practice and Basics

Western music theory has existed for thousands of years, amongst other world music theories. Western foundations were influenced and studied by some familiar names: Pythagoras, Plato, and Aristotle. Due to having such a rich history, there are systems and methods in place to aid in the understanding and communication of musical concepts. I was lucky enough to attend a public school with a music program to gather the basics of music theory in classical and jazz music. Outside of a few private lessons, which were of tremendous value, I was self taught at playing bass in the pre-YouTube era.

There are a few key concepts that lay the foundations and help speed learning. The structure of a (basic) song is made up of a key, time signature, and tempo, where the chord changes, rhythm, and melody live within these boundaries. Some of the big take aways from learning to play and honing my craft are:

  • Go slow to go fast
  • Find common patterns to simplify the complex
  • Push yourself outside of your comfort zone to grow
  • Analyze the work of others you admire

Taking the time to apply myself to art and learn these concepts has helped me excel at being a Software Engineer. Let’s take a look at why that’s true.

Go Slow to Go Fast

In music, this is building muscle memory and making your movements and mind more efficient. This is playing scales, arpeggios, trying to break down sections or difficult transitions by literally slowing down what you’re doing. You can slow down the tempo to isolate and analyze inefficiencies, then slowly push yourself to go faster until you are where you need to be.

As an engineer, this is like trying to write code before you understand what the code is actually supposed to do. You have to slow down and take a step back to understand the intent or edge cases of a problem. You can write tests (maybe you do some TDD or BDD) to get a grasp of what the expected behavior is. You need to understand the scope or impact of your changes in the grand scheme of a project. You should assess

Where are things going? Does this way work? Is this physically possible?

If you don’t take the time, you are bound to stumble and faulter. You need to slow down and re-adjust (i.e. debug, refactor, add coverage, instrument metrics, add logging, try distributed tracing, profile) to get to where you expect to be. You can’t go fast or gain velocity until you understand the areas of weakness. Once they are addressed, you will be on track to attain your goals.

However, even when taking time to work on improving, it is possible to push too hard and hit a wall. Progress will stop. Sometimes stepping away for a while, clearing your head, and picking things back up later is the best way to move forward. This is true in any problem solving endeavor. If I get stuck on a difficult problem at work, if I have the opportunity to pick up a bass and fiddle for a little bit or maybe hit the gym, I can usually get past a mental block or have a fresh perspective on an issue. Other times just grabbing some sleep is best. Everyone is different, find something that works for you.

Find Common Patterns to Simplify

Most music follows a common form and structure. There are exceptions to the rule, but knowing the rules and when to break them is part of the creativity and fun of art. A song will have a key and time signature that the entire band will follow. Within that key, you will have different modes or chord changes that can move the song along. Scales and arpeggios can help build a melody on top of that structure. Every key is built from tones made out of a common pattern of half and whole steps — if you learn this pattern and how to shift it, you can unlock every key. With string instruments, it’s really easy to see the “shape” of chords, scales, etc and see how to shift them to different keys.

That’s just the basics, as we go deeper, other patterns emerge. There are common and frequent chord progressions within a scale that convey movement or “tension and release” within a song. I-vi-ii-V and I-IV-V chord progressions are littered throughout western music. The entire Blues style of music has the same set of chord changes in EVERY song, but humans have been connecting to those sounds for YEARS.

With programming, you will see common patterns. You will find common themes between programming languages, libraries, etc that will help you understand and access new information. Design Patterns in Software are an obvious comparison; a set of reusable solutions that reoccur in common application problems. You will also see patterns in the design of distributed systems for handling stateful or stateless systems. We will learn from our mistakes and update “best practices”, but in general over time you will see common themes in how systems get built. Even when the new hotness comes along, seeing how your existing knowledge relates to unfamiliar technology can help make new information more accessible.

Get Out of Your Comfort Zone to Grow

Of course, there will be times when you can’t or shouldn’t try to draw parallels between different things. You will need to try to learn something new that isn’t in your comfort zone. This will help you grow and will help reveal other areas that you might not have been as strong as you thought you were. You need confidence to be successful, but sometimes you need to be knocked on your ass to raise your ceiling of success.

When I started out learning music, I really picked up playing simple parts quickly. I needed to keep pushing myself. I would spend 3 hours a day, every day, just trying to improve what I was capable of doing. I distinctly remember hearing Jaco Pastorius’ “Portrait of Tracy” and thinking that there was no way that one person could play that on a bass on a single track in a single take. I thought it was just a recording trick, but still beautiful. Then I saw that it was just him and his bass, making sounds that I had never heard come out of the natural range of the instrument. I HAD to learn this song, so I went to work and challenged myself.

It’s also worth checking out the Jaco Documentary

Sometimes you need to be inspired. Other times you just need to be in a vulnerable place where you’re willing to grow — expand the realm of the possible. I know that I’m not always right and can occasionally underestimate the creativity and capability of others. Knowing that I have to put myself in a place where I can learn and accept that I was wrong or that I never would have tried to approach something a certain way without some external influence is how I grow. This is what diversity and inclusion is all about to me, getting the best ideas and best results to put forward something greater than the individual.

This is also a reminder to stretch your skills from time to time. Pick up a new library, service, methodology, or language and try it. See if there is something that you can learn or incorporate into what works for you and your team. Taking on grand challenges might not be reasonable to do all the time if you’re a professional, but the key is to try to make time for it somewhere. You will never stop growing or being challenged, embrace it.

Analyze Other’s Work

Autumn Leaves — Lead Sheet

As part of learning to play, you have to learn some songs. Some times you’ll have things notated and written out for you, maybe you’ll only have chord changes and a melody (lead sheets are common in Jazz Ensembles). Other times, you’ll have nothing. It will be up to you to transcribe the parts you are hearing. Learning the techniques used by people you admire, for example understanding which chord progressions evoke certain feelings, will help you grow.

I learned how to break down a song before really delving into programming and getting a formal education in Computer Science. I think that this skill has helped me immensely in my day to day. I’m frequently faced with improving or understanding code that someone else has written, without comment or context. I’ll have to make tweaks to Open Source libraries that I’m not familiar with. My brain follows a similar process in trying to understand the intent, motivation, and how all of the pieces fit together. Being exposed to this kind of abstract analysis and problem solving from a young age has been invaluable.

My career arc has followed a similar path to how I started analyzing and transposing compositions. I was initially given tasks and tried to pull as much information as I could from those more senior to me. I would see how they approached problems and try to incorporate what works and learn lessons from what didn’t. Gradually, you gain more autonomy and ownership with fewer clearly defined tasks. Then you need to discover. Understanding what has come before you will help you find where to go — build on the shoulders of giants.

Closing

The moral of the story is, there is value in learning and experiencing new and different things. Dismissing arts and humanities is a mistake. The perceived value is much lower than it should be. There are intangible benefits that have improved my quality of life and helped me cope with hard times. Music has afforded me opportunities that I wouldn’t have had from a low income household (and a low ranked school system)— I had the chance to go to Italy and play Jazz in Pompei. I sang Bach in German to a French mass at St Peter’s Basilica in Vatican City. I wouldn’t have achieved the success I’ve had in my career or heightened my analytical skills without music. Maybe, instead of focusing strictly on the technical, take some time to pick up a new hobby or dabble with the arts — it might teach you more than you were expecting.

Keep on the lookout for the following parts of this series 😁.

--

--

Ian Bennett

@TwitterEng Observability, former @IBMWatson. Lover of unique challenges, music, photography, my cats, and good people.