Saturday, 1 August 2015

The side effects of working in maintenance project

I have been doing software maintenance for some time, majority of my work experience is maintenance. As we already knew, no one really prefers to work in maintenance :) Recently, I went through an interview process and the kind of questions I got made me think and look back. Ideally there are two types of interviewers, who mainly focus on technology (like Java, SQL etc) and other category who focus on programming skill (the ability to code). This interviewer I faced is of second type. The questions were based on array manipulations and algorithms. Unfortunately, I couldn't clear the interview as my programming skill was not at peak :) Moreover, I don't remember algorithms like sorting, searching etc. This contributed to my failure

After that failure, I was thinking for almost two months to really understand what went wrong. After much introspection I realized that my programming was bad and I was unable to come up to convincing solution on paper. The reason is simple, I have not done real programming for quite some time. All I'm doing from the past 5 years is analyzing the code and fixing the bugs. Even in my current job, I'm spending my 90% of the time in understanding large code base, identifying where to apply fix and applying fix (this is as simple as adding one line of code, or changing property etc.)

Alright, these are side effects of maintenance programming. Typically, you'll be good at analyzing the code and fixing the bug, but not designing a system and coding from scratch. Perhaps this is the reason, I think many of us will not consider maintenance. Unfortunately, we do not get to choose our projects, even after programming interview there is no guarantee that we'll be assigned in greenfield development.

So how can we keep our sanity of programming? People suggest to become obsessive with programming and do coding all the time! This is not easy thing to do, especially after fracturing brain while bug hunt and fix. However, this is the whole point, so focusing on either consistently improving skill is important!