August 26, 2009

Consultant - "Doing things quickly" - Not really

I was working as a consultant from an Indian IT company at a client location in Melbourne for almost three years. It was an exiting place to work as I was given opportunity try out new technologies for the project.

As a consultant, I had the following perspective on my role and obliged with it:
  • I had to quickly learn the tools and technologies used at my client place (like., Weblogic Portal, Spring, IBatis, Clearcase, etc) 
  • I had to do my job quickly to add value to my customer.
  • I had to understand the project functionalities quickly.
  • I had to adapt to new technologies quickly and start contributing.
But only when my clients hired three consultants from ThoughtWorks, I realized how little was my value add to the customer apart from my "doing things quickly".

I had gravely missed to think on these lines as a consultant...

1. Are we using the right tools?  Are there better tools out there? Clearcase version control - it is being used at my client place for more than 5 years. After the initial hiccups, I got used to it and tried to solve our problems within the tools limits. I never had a clue that this could be challenged. But TW, proposed Subversion as an alternate for development environment and integrated with Subversion to Clearcase behind the scene. Introduction of this SVN to the Test driven development environment is claimed to have helped the developers is refactoring the code at ease.

2. Are we using the right technology? Can it be done in a simple way with other technology?
Weblogic Portal was traditionally used at my client place for more than five years. It is a good technology to work on if you are familiar with it. It had so many features and good IDE to develop things.
But we had a big learning curve with Weblogic portal in our first project and it has always been difficult for new developers coming into project. Few developers tried proposing alternate technologies but was not able to convince everyone.
Again TW consultants, annoyed with the time taken to learn,build and deploy portal applications, proposed Spring MVC as the alternate technology. But this time they presented it with a case study comparing the effort  involved in developing a functionality in Weblogic portal and Spring MVC. As it directly translated to $$$ terms, it caught the attention of everyone and Spring MVC was inducted into clients technology stack.

3. Are we up-to-date with technology?
Being up-to-date with technology not only helps in doing things in a smarter way but also leads to doing things quicker. I am still wondering how few people are so familiar with the latest open source technologies. For example, which tool will you use for XML processing?

  • Do not choose the opensource library just because you have used it earlier.
  • Look out for better opensource libraries which will help you to achieve the result in a smart way. 
  • Be up-to-date about the new libraries.
I never imagined that a technology like "Weblogic Portal" which was considered as the standard for all applications could be replaced. I never thought a tool like "Clearcase" which is being used for 5 years can have an alternate.The lesson I learnt from this experience is "Never take anything for granted". 

I always thought that I had to learn the technologies used by the client but I have now realized that it is also my duty to identify what is right for the client.