Friday, June 11, 2010

Knowing Why You're Coding

The writer's block is over. Hello again.

I remembered today that it's important to know why you're coding. Ok, so maybe not important to all, as some people code for the joy of coding and solve problems for the joy of solving problems. I'm a bit different on this, which is why it helps to know what the value is of the item I'm creating.

Now the true, absolute value of what one is creating cannot be known. One never knows what the ripple effects will be from the software that is written. I'm thinking in terms of the "butterfly effect", which I truly believe, and if you stop and think about it is truly amazing. That small decisions we make any and every day have multiplicative consequences as time goes by. If you sit and ponder all of the possible good that may come from the software you're writing, then you will understand that the potential value of your creation is LIMITLESS.

However, in this case, I'm talking in terms of value to the customer. How much does the customer want what you're doing (current customers or future customers)? What needs or desires is the software fulfilling? Just how happy will someone be to get to use your software? As a sometimes free-lance developer, I get an immense satisfaction when experiencing a client's excitement for the website I've designed for them.

This all came up today as I struggled through creating a billing add-on to a client's medical software. I didn't quite know the full picture of what I was creating, or how badly the customer wanted it, and what it might do for the customer. When, after a long week, I finally delivered it, my co-worker (who previously handed the project off to me) said, "Feels good, doesn't it?"

I paused. It should've felt good - but it didn't. He then went on to explain how much time this addition will save them, and how much they've been asking for it. OHHHHHHHH. Then it felt good. And then I thought about writing about it here. Knowing I am truly creating value for the customer/client is immensely satisfying as well as motivating. Going forward I recommend we all consider that when undertaking projects. It's easy to disconnect from this human element of it, but the reality is that in most cases we're providing tremendous value to someone somewhere.

AND, this is not even considering the butterfly effects for the client, either. Time saved for a person due to my software translates into... ?? Possibly anything. Hopefully good and joyous. AND, for all the goodness and joy created on down the line that had its roots in the time saved from our software - we developers know we made all of that happen, all the way up the line, for however long it goes. Which is infinite.

All of us, not just developers, are affecting lives and life in this way. In a sense, that makes us all infinite and permanent. I think we're done here. It's nice to be writing after a little layoff.

1 comment:

  1. Nice insight. Learning how a customer appreciates your effort really does feel great!

    ReplyDelete