Monday, March 2, 2009

Scribo Ergo Sum

Unfortunately, this doesn't really have the same dual meaning as in English. "I write" can imply both the written word (or typed), & the process of developing software (which some developers never use anything but the keyboard for - a mouse being a mere distraction).
But this is not related to what I'm here to discuss, except obliquely.

Developers develop software. They tend to believe that that is their raison d'ĂȘtre (Latin, & now French - how posh!). This has something to do with the fact that, "The moving finger writes, and having writ ..." (Arabic, no less - albeit translated) gives ownership of the creation to the fingers. Fundamentally, if you didn't write it, you don't own it. This gives rise to the old NDH label (not developed here) to indicate something to be spat upon as unworthy of gracing a developer's concerns just because they didn't write it.

This is all, of course, a load of cobblers.

Developers who do no more than write software are process workers. They are told how to put things together, are provided with the materials, & never have to think for themselves. Such drones are useless. They no more own their output than a factory worker owns the fluffy toy for which they sewed on an arm, or a labourer owns a bridge on which they rivetted.
The ownership of the toy goes to the designer. The owner of the bridge is the architect or engineer who conceived or oversaw it. The owner of software is not the one with the fast fingers, but the one who understood the customer requirements & drew the pictures & wrote the specs that described the solution. Everyone else is merely a contributor.

This leads me to latter phases of software development. All developers hate maintenance, mostly because it is soul destroying to see a piece of software that was once designed & developed well for one purpose be systematically 'improved' for new customers (bespoke work) or mangled for new industry requirements (bloatware). Good developers know that this is bad. However, maintenance is an essential part of the life cycle of software, & cannot, in itself, be considered beneath the concern of the professional.
What is missing is a sense of ownership. How can you own the product being shipped if it has had a history of owners who have developed little add-ons to someone else's design from the mists of time?

Own the problem. Own the solution. Own your work. Be proud of what you can achieve, given the trying circumstances. Make your work important. It's all up to the developer.
Sure, this may also be a part of the project management process, ensuring that there is something worth owning, & that the developer is not treated like a drone fulfilling a silly requirement in a mindless manner.
Engage. Be engaged.

Peter FitzSimons tells a story that I believe he attributes to Alan Jones about the difference between making a contribution & making a commitment. If you're having bacon & eggs for breakfast, the chicken has made a contribution; the pig has made a commitment.

Own the solution, regardless of who writes the code.

No comments:

Post a Comment