Wednesday, May 2, 2012

Responsibility­-driven development

Let's make this short.

I am not talking about some fancy object-oriented paradigm (they come and go). Instead, I'd like to ask a more basic question: What drives your development process? Payment? Bonus payment? A dream of a white beauty of a yacht bought someday for your salaries, accumulated for decades? Fear of being fired? Thoughts of hungry kids back home? Any other kind of pressure-generating mechanism?

Yacht — a worthy goal? At least a beautiful one.
(photo by http://www.flickr.com/photos/27927484@N00/)

The way I like it* — being driven by responsibility to solve a real problem for real people. And yes, in tight situations it could be “doing anything to earn enough to feed the kids” (real problem — severe lack of finances, real person — you), but none of us want to be in that position, so, ideally, it is helping someone by doing what you do (and getting paid enough not to worry about the kids' nutrition).

Let's say you work on a task, and you don't have a slightest idea of what problem it solves, and for whom. That's lead to bad results — you'll cut corners, you and the customer won't be happy, and it doesn't make our world a better place.

Sometimes it happens that we, developers, misunderstand and solve a wrong problem — yet I am certain that is better than not trying to understand the problem at all.

So — make your life and your work better by trying to find out whom you are trying to help, and how. If you find out that the task you do is useless**, or is going to be damaging to your end customers (thinking of vodka sellers out there, and not just them), perhaps it is worth trying to change that situation.

Just a thought. Take care!



* — that's a subjective statement right there. Others may see their work driven by vision or other lofty words. I can only speak for myself and what works for me.


** — I hear that “useless” song from other software developers quite often, and sometimes I am tempted to sing it too. In majority of cases it means “I am too stubborn or lazy to try to understand”, so — just cut it. Please.

2 comments:

  1. Totally agree. It is the main reason for my latest life changes. And it is the first of four items I wrote in list of reasons I'm seeking a change, when I filled a formal form.

    But since you are talking about "development process" and not specifically "work", I'd like to add that in my non-work development processes which are not started to solve someone's problem's (including mine) I'm driven by the pleasure I feel when I successfully created something working.

    ReplyDelete
    Replies
    1. Agreed, pleasure of getting something working or learning something new (which is expressed in getting something working). Proper tinkerer's delights :)

      Delete