Feb 5, 2008

Code Poets, Software Engineers

The following article by Jonathan Wise has been resonating online with the Software community. A lot that has been written applies to me and my colleagues everywhere. Our job titles are perhaps deliberately confusing enough to keep you guessing our 'real' work. The following excerpts highlight the best and easiest bits, but you can read the full article here to get the complete description.

  • And believe it or not, I don't fix computers for a living.
  • There's these organizations, some (not all) still stuck in the 70s and 80s, called “I.T. Departments” who's official purpose is to fix computers — but who's actual purpose is to attempt to prevent their users from doing anything dangerous (read: useful.)
  • 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.
  • A piece of software starts, before any code is written, as an idea or as a problem to be solved.
  • It is always tied to a human being — their job, their entertainment… their needs.
  • Once you understand what you need to build, you still don't begin building it. Like an architect or a designer, you start with a sketch, and you create a design.
  • Its not uncommon for the design process to take longer than the coding process.
  • You put on a sales hat and you pitch what you've dreamt up… then wait with bated breath while they dissect your brain child.
  • 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.
  • To make something easy to use requires at least a basic understanding of human reactions, an awareness of cognitive norms.
  • Only, unlike a salesperson selling someone else's product, you are selling your own work, and are inevitably emotionally-attached to it.
  • Maybe its more like music ...
  • ... 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.
  • ... next comes a Quality Assurance Engineer (or QA) who tries to break your code, question your decisions, and generally force you to do better than what you thought was your best.
  • it takes a true artist, or at least an earnest student, to understand just how brilliant — or how wretched — the work behind it is.
  • As a lead developer on a project, it falls to you to instill confidence, to speak articulately and passionately about the appropriateness and worth of your solution.
  • ... user's are never really satisfied. So you think back to the design process, you remind them when they had a part in the decisions ...
  • And you write and you teach. ... responsibility to educate people on the uses of our technology ...
  • Then there's a party, a brief respite, where you celebrate your victory ... And you start again. ...
  • ... you are only as good as your latest victory.

1 comment:

Prasanna said...

Touche. Art in it's purest form!;-)