I have nearly 30 years of professional software development experience, having started out managing in-house dBASE files for various small telemarketing companies in Philadelphia in the late 1980s and 1990s, and subsequently moving to commercial applications and consulting. In addition to traditional desktop applications, I have worked with scientific and medical devices, embedded firmware, and various other environments. Most recently, I have been focused on cloud-based services, websites, and mobile applications.
My original passion, however, was the theatre: I went to a performing arts high school, and later studied lighting and set design in college. While I was still doing mostly telemarketing database work, I continued to do lighting design on the side with a number of small theatre companies in Philly. Later, as I moved into commercial software I gradually gave up the theatrical side work and eventually donated all of my lighting equipment to one of those worthy groups.
I never thought of this as a binary choice between technology and the arts, however; I believe that at its best, software development combines the best of both worlds. Programming is not just cold-hearted problem-solving; an application is no more a simple collection of features than a lighting design is merely a collection of focused beams, or a painting is a collection of brushstrokes. It needs an underlying structure, a clear form, and intent. But these should never be fixed impositions from on high; I believe that structure should always be organic and arise naturally from the needs at hand. Unlike a lighting design or painting, though, the wonderful thing about software is that it is indeed “soft” — it can evolve over time. When we truly embrace this, treating the whole system as a living, breathing work-in-progress, it means that no part of it ever becomes especially sacred. Thus, when our needs change, we can approach renovations to its deepest layers with as little trepidation as we do to its surface.