The artform known as "Software Engineering" [Permalink]
I recently read a very eloquent article written by a software engineer (programmer) who did a wonderful job in capturing just what it is that we (we being software engineers) do. Much of my article will be based on his, so don't think i'm quite so brilliant as i might appear (well ... ok, if you really want to think i'm brilliant, i won't complain too loudly).
"What do you do"? All my neighbors think i fix computers. Whenever they have a problem, who do they call? Actually they don't call me - they call my wife who then informs me that so and so's printer isn't working, or that neighbor X can't check their email, or perhaps the world is about to end because someone's hard drive just crashed and they lost all of their Quicken data. Does this describe what I do at work all day? Not even close. It's like asking a car salesman to fix your car (not the best analogy, but you get the idea).
Well then, "what do you do"?
A software developer must be part writer and poet, part salesperson and public speaker, part artist and designer, and always equal parts logic and empathy.I don't just sit around in front of the computer all day writing code. I'm thinking up approaches to solve problems. I have to balance various constraints (how much memory, how fast is the hardware, who is the user, what is the end goal, fault tolerances, screen real estate, network connectivity, etc..etc..), deciding which approach is best, which tools to use, how long i have to work on it, and (most importantly), how interesting is it to me and how much do i care about making it a great product. A very important point that 90% of all software engineers seem to miss is the user experience. "Software that can’t be understood can’t be used, so no matter how brilliant your design, if your interface isn’t elegant and beautiful and intuitive, your project is a failure." Design, elegance, ease of use. Now for the good stuff: the code itself. Code isn't just a bunch of cryptic ones and zeros that somehow float around inside of a computer and make it do things. A well written program is a piece of art!
The purpose of code is to express a solution. A project consists of small stanzas, called “Methods” or “Functions” depending on what language you use. Each of these verses must be constructed in such a way that it is efficient, tightly-crafted, and effective. And like a poem, there are rules that dictate how it should be shaped. There is beauty in a clever Function. ... when the pieces are added up, each in itself a little work of art, they make, if programmed properly, a whole that is much more than a sum. Its is an intertwined, and constantly moving piece of art.Another good point made by the author of the article cited below is that just as anyone can walk into an art gallery and appreciate a beautiful work of art by Davinci, it takes another artist or earnest student to really appreciate the intricacies of the brush strokes, the color choices, the arrangement of the subject, etc... A software program is no different. Anyone can use it and realize it's a good program, but only another programmer can truly appreciate just how wonderful it is under the covers. And yet, no matter how good your program is, users are never satisfied. It always doesn't do something they want (even if they never asked for it when you were designing the program). Not to worry. What it does now, it does well, and version 2.0 is always around the corner :) "What do you do"?
I ... produce art. Functional, useful, but still beautiful, art. We are code poets, and it is our prose that builds the tools people use every day.Original article here
Posted by shawker on Wednesday, 6 February 2008
Tags: software
Tags: software
Comment by Brenda at Wed, 6 Feb 10:47 AM
In other words... You are magic! I knew that already! Interesting perspective on your otherwise inexplicable career choice. The "under the covers" ananogy was a little riske--a true Scottism--and humorous, given that the next paragraph describes how the users are "never satisfied"... Uh oh, Scott... Given how much Lu blushes when she mentions your romantic side, I find it hard to believe that your under cover program never satisifies!!! :) xoxox
Comment by Tonya at Wed, 6 Feb 12:33 PM
I do the design part! I love it and I won't go back to coding. Bluck!
Comment by Mom H at Sun, 10 Feb 8:38 AM
Sounds like you were describing me. I am always calling for help. And the cool thing is: You can always fix my computer.I bet you hate when you hear me on the phone.....
Enter Comment


