Thursday, September 14, 2006

Advantages of working on Decent Code

I recently switched employers for the first time in my working career. After spending six and a half years with a huge (tens of thousands of employees) software services company I recently moved to a much smaller product company. After the initial few weeks getting acquainted, trained etcetera, I recently started hacking away at the code base. It came as a surprise to me that after three days spent adding enhancements to an existing (mostly Java) application I was no where near as stressed as I would have been in the past. I realised that this was mostly thanks to the decent code base that the application's developers had created in the first place. The code did nothing extraordinary; it was merely well structured, cleanly packaged and came with a good many automated tests. And boy, what a change it made. No need to spend days merely building the app; no more personal source code repositories (I have been forced to install CVS in my machine on several occasions in the past thanks to general ignorance about SCM tools).

The contrast with what I have been through while with my previous employer could not have been starker. I have worked in half a dozen 'legacy' applications for my previous employer and not once have I not been frustrated by poorly written code. Adding insult to injury were the indifferent "developers" who had created the monster in the first place.

The moral of the story is that good code goes a long way towards stress reduction and boosting employee happiness. Should I need to change jobs in the future, I will ask any potential employer to show me their existing code base. If the code sucks, I will politely bow out.

3 comments:

James said...

"should I need to change jobs in the future...."

But sounds like you won't want to be doing that for a while...or is that a Freudian slip?

Nice to see you back on blogging form

Manoj Govindan said...

James,
It certainly looks like I will be working here for a good while. I was merely spelling out a guiding principle for my future transactions in the job market, if any, rather than insinuating that I will be moving soon.

In retrospect it is evident that I should have adopted this principle earlier on, even when accepting offers to join different projects *within* a company.

Nisha said...

Congratulations! May you always work with decent codebases in future.