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.
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 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.