Sunday, April 12, 2009

The Software Engineer as Artist [Courtney Behm]

There is a perception in the general public about engineers…solid, grounded in facts, serious, cautious. They work logically, methodically, are disciplined by their profession into taking one step at a time. I used to have that perception myself, until I started working in high tech. At first, as a marketing professional, I was looking at the engineers I worked with from the outside in, and the assumptions held reasonably well. There’s no question that they were far more practical and pragmatic than I and my fellow marketeers. But when I moved from Marketing into Program Management, and began dealing with the development process at close range, my assumptions began to change.

Hardware engineers fit my expectations more closely. They were, after all, constrained by the physical limitations of plastic and metal and wire. They were creative, for sure, but their creativity had physical boundaries that couldn’t be ignored, and the physics of matter added a stabilizing keel. I could set up a schedule with hardware engineers, and be pretty confident of our ability to meet it. But software engineers were a different box of chocolates altogether. We would make schedules, and then change schedules, and then unexpected things would happen, and it seemed that I spent most of my time one or two steps behind the volatility of their development process. I would say that my most frequent response in team meetings was “Arrrgh!”

Time passed, I spent a number of years as a consultant, and then returned to the corporate world as a Program Manager in an all-software company. OK, I said, how hard can this be? I’ve been in hardware/software companies, I know the drill, piece of cake. Not! A software company is as different an environment from a hardware/software company as I could have ever imagined. I found familiar the unexpected changes, and the volatility, and the difficulty of planning. But now it seemed more magical than frustrating, as if the absence of hardware restrictions had allowed the creativity of the mind to come into its own. And as I learned more and more about software as an entity unto itself, I realized something fundamentally important about software developers. Most of them are artists.

So what is the perception of artists? They are emotional, volatile, don’t like to be hemmed in by conventional wisdom or practices, are idiosyncratic in their behavior and dress, crave the opportunity to do something different. Conventional wisdom would tell you that artistic temperaments in high tech would only be found in Marcom or graphic design or web creation. But in fact, it is the hunger of the creative artist to break the barriers of the conventional that has fueled the emergence of software as the prime mover in the technology world. This has a number of implications for engineering leaders.

First…how do you manage the creative process to a schedule? Think about Michaelangelo on his scaffolding in the Sistine Chapel. I doubt he could have produced a project plan, and if so, it certainly wouldn’t have been done in Microsoft Project. “OK, Mike, we need you to have God ready by April 23rd, and then Adam by June 16th because the spark of creation has to happen on July 1st.” I think not. But when art becomes business, and there are customers to satisfy and external deliverables to produce, this is exactly what traditional waterfall planning methodologies ask of our software organizations. We tell them there are only so many days to be creative, and then only so many days to code and test. It is this fundamental mismatch that has given rise to disciplines such as Agile and Scrum, in an attempt to put a form around the development process that more closely mirrors how it actually works.

Second, how do you manage the artist developer? There are probably as many different ways to answer that question as there are individual developers. Yes, this is essentially true of all of us, there is no human being cookie cutter, and so we all respond differently. But it is exacerbated in the artistic world of the software engineer by the very nature of the work itself, and by the vision of the unknown miracles that software makes possible. Managers often find themselves caught between the need to meet schedules and the inability to rush the discovery process that gets them there. Sometimes the most valuable contributors are the most resistant to observing the necessities of measurable process and delivery dates. They are essential to the organization, and no one wants to make them unhappy, but at the same time a prima donna can wreak havoc on a product launch.

Clearly, software engineering leadership has its challenges and rewards. In subsequent posts, I’ll look more deeply into how we can make the artistic nature of software development work for us and for our organizations.

____________________
Courtney Behm holds a B.A. and an M.A. in Performing Arts and Communication, and an M.B.A. from the Harvard Graduate School of Business. In her corporate career, she has worked for wildly successful companies, and those struggling to stay afloat in the ocean of change. Through her consulting company, Viewpoint Solutions (www.ViewpointSolutions.com), she has helped a diverse client base, including Sun Microsystems, Adobe Systems, Wyeth Pharmaceuticals and the San Jose/Silicon Valley Chamber of Commerce, find creative solutions to classic business problems. An accomplished speaker, Courtney uses a combination of language, humor, insight and front-line experience to offer a fresh perspective on life in the fast lane. In 2006, she returned to the corporate world, and is currently Senior Project Manager at i365, A Seagate Company. She is writing a book on how to lead effectively in a time of constant change, and collaborating on a book on Personal Career Management.

No comments: