The Developer Pride – Redirected

Posted: April 7, 2013 in Clean Code, Development General, Project Management
Tags: , ,

I dare say that anyone who has worked with software developers has come to the realization that we are very proud people. We take pride in solving challenging problems, in the smart way we implement solutions, sometimes even in the sheer beauty of the code we have written. And we should, software development is not a simple trade, we must develop a strong capacity to abstract the world around us and model it into a working solution by using some arcane language that not everybody can understand. In a nutshell, we must be good at describing and communicating our world to machines.

The only problem with that is that some developers take so much pride in these things that they forget why they are doing what they are doing.

Let’s think about it for a moment. There are only two possible reasons someone would be willing to pay huge amounts of money for a piece of software: make money, or save money. That’s it! That’s all there is to it. Those are the most important goals our incredibly smart crafted solutions should meet. Those are the motivations that drove our customers’ stakeholders to sponsor the project we are currently involved in.

The implications of this are really important. I cannot tell you how many times I have been involved in projects in which the customer wants to enhance its software, add features, adapt it to new requirements because of changes in their industry or their markets, or to fix defects only to come to the realization that all of this is going to take a very large amount of resources, mainly time and money, because of the poor quality of the code in their solution.

Usually I always hear the same reasons as to why this has happened. This code might have been produced by an amazingly brilliant developer who put it together in a few hours or a few days, but it is so complex that he is the only one who knows how to modify it (patch it, and keep patching it). Maybe it was the result of a very tight deadline and the team just did not have enough time to code it properly. It could have been because the managers were always pushing the developers to finish it quickly.

Regardless of the reason, the code is there and now its owner has to invest large amounts of time and money for even the simplest modifications. Guess what? The main goals cannot be met anymore since the company is spending too much money in their software’s maintenance, hence it is not helping them to save money, and it is not helping them to make the money it was supposed to.

We, as developers, need to start thinking about Total Cost of Ownership. This means how much will it cost to own this piece of software over time, and our main objective as developers should be to keep that number as low as humanly possible.

So be proud about the code you write, but focus that pride in the ease in which other developers are capable of adding features, fixing defects or modify that code in general without breaking it all over the place. Take pride in the small investment that your customer needs to put on its maintenance. Take pride in the huge business the code that you wrote is generating for your customer.

Go young grasshopper, code responsibly and make yourself proud.

  1. […] Seriously if you want to be called a programmer instead of a developer like the author of this blog suggests that is fantastic, but embrace the modern definition of it, learn, acquire, and apply the right set of skills and, most importantly, develop the right attitude required for the job, forget about this old school mombo-jumbo and become a proud professional programmer. […]

Does this make sense to you?

Fill in your details below or click an icon to log in: Logo

You are commenting using your account. Log Out /  Change )

Google+ photo

You are commenting using your Google+ account. Log Out /  Change )

Twitter picture

You are commenting using your Twitter account. Log Out /  Change )

Facebook photo

You are commenting using your Facebook account. Log Out /  Change )


Connecting to %s