From Programmer to Problem Solver

When I began my software career at Softobiz Technologies after graduating from Guru Nanak Dev University, Amritsar, I was brimming with ideals that I have accumulated from relentless reading of best-practices books like Code Complete 2, Don't Make Me Think, The Mythical Man-Month etc.

'The OCD perfectionist programmer'
I was quite like the 'The OCD perfectionist programmer'(1) in the beginning, imagining I would name the variables like this, format my code like this and all. What happened in all this was that I had began to believe that programming was an end in itself. That coding is the goal here.

I had read about "I'm here to ship products" and I remember quoting this in my interview also :) but the reality of this has seeped into me only recently after about six months of on-the-job training and work.

I was fortunate to work on Zend Framework (after two projects in WordPress). The complexity of the Model-View-Controller (MVC) fueled my idea that we all are here to do programming.

When did the transformation come?
I would sometimes go online to see the projects I've coded and see how the client and their users are using it to solve a problem. The real eye-opener came when I was assigned for enhancement to a project written in core PHP, without any pattern or design.

This site was live and was serving the client and their users happily. Purpose solved! :)

But when I began working on the tasks, it was a mess. Or maybe I can say nothing like the orderliness of the MVC. Add to it the central table in database had columns names field103, field71 with absolutely no commenting.

Being on the other side of the table
We all are software users as well and there have been countless times when I wanted to a (programming-wise) easy task but  for some bug would not be able to do it. At that point I am more concerned about the task to solve my problem.

So what?
This paradigm shift has made me thoughtful about the functionality I am implementing and 'solving real problems of users', putting myself in their shoes, as a guideline when making decisions.

Suggested Reading:
References: