TITLE: What Paul McCartney Can Teach Us About Software
AUTHOR: Eugene Wallingford
DATE: December 27, 2020 10:10 AM
DESC:
-----
BODY:
From
Sixty-Four Reasons to Celebrate Paul McCartney,
this bit of wisdom that will sound familiar to programmers:
On one of the tapes of studio chatter at Abbey Road you can
hear McCartney saying, of something they're working on,
"It's complicated now. If we can get it simpler, and then
complicate it where it needs to be complicated..."
People talk a lot about making software as simple as possible.
The truth is, software sometimes has to be complicated. Some
programs perform complex tasks. More importantly, programs
these days often interact in complex environments with a lot
of dissimilar, distributed components. We cannot avoid
complexity.
As McCartney knows about music, the key is to make things as
simple as can be and introduce complexity only where it is
essential. Programmers face three challenges in this regard:
- learning how to simplify code,
- learning how to add complexity in a minimal, contained
fashion, and
- learning how to recognize the subtle boundary between
essential simplicity and essential complexity.
I almost said that new programmers face those challenges, but
after many years of programming, I feel like I'm still learning
how to do all three of these things. I suspect other experienced
programmers are still learning, too.
On an unrelated note, another passage in this article spoke to
me personally as a programmer. While discussing McCartney's
propensity to try new things and to release everything, good and
bad, it refers to some of the songs on his most recent album (at
that time) as enthusiastically executed misjudgments.
I empathize with McCartney. My hard drive is littered with
enthusiastically executed misjudgments. And I've never written
the software equivalent of "Hey Jude".
McCartney just released a new album this month at the age of 78.
The third album in a trilogy conceived and begun in 1970, it has
already gone to #1 in three countries. He continues to write,
record, and release, and collaborates frequently with today's
artists. I can only hope to be enthusiastically producing software,
and in tune with the modern tech world, when I am his age.
-----