Tuesday, November 3, 2009

Life as an IT Consultant

I have been working in IT for almost 5 years now and recently I started reflecting on what I have acheived, what I have learned and some of the "Do's" and "Dont's" of working as a consultant. While I still feel I have a lot to learn, I have also come along way. For those that dont know...Im currently working as a Technical Leader/Team Leader for a consulting company. Previously I was working for a Financial Services company in their IT department.

Anyway here are some of the things I have learned over my time in IT...

You need to keep yourself up to date





This may sound quite simple, but a lot of people fail to do it for various reasons. Some people get stuck one project/application and dont feel the need to keep themself up to date with the other technologies that are out there. Some people are content with the framework that they are using and dont believe in adapting a new one. And some people are just lazy and simply cant be bothered.

But any professional person in IT needs to be aware of whats going on other, whether it be a new technology or an updated version of an existing technology. This doesn't mean you have to be an expert in every new framework that is released, but at the bare minimum you should know what it does and its advantages over other technologies. You will ultimately be a much more efficient programmer, instead of wasting time writing something from scratch, you will have a better knowledge of the frameworks and libraries out there that are available. It makes you a more valuable resource and also makes it much easier in job interviews.

This means you will need to study in your own time


Who said you didnt have to study anymore once you finish university?? The fact is you will need to spend a considerable amount of your own time away from work researching/studying/playing with different technologies that are there. Basically the more you put in, the more you will get out.

Leave your emotions at home
Another tip that sounds really basic, but too many people get way too emotional at work. It just isnt worth it. In your work life you are bound to work with a lot of people you dont like, people that dont like you and people who treat you like shit. If you get too emotional in the work place, it is a recipe for disaster. You need to keep it simple. This doesn't mean you don't care about your work, but you need to have a line. If you don't draw a line, then your work life is going to affect your personal life and that is the last thing you want.

Always present yourself at your best

 
Sometimes we can be working in the same place for a few years and start getting complacent. We can let our standards slip and not work with the same passion and attention for detail that you once had.

But the fact is the IT industry is very tight knit. Let me tell you one example of this...in my first job I began working on a new project. At that time I was still classified as a graduate, so i was extremely enthusiastic and had a great passion for the job. The other people I was working with on the project, I didn't know all that well, but I would do my best to work well with them and be a valuable member of the team. Then I was offered a job offer in another state. I went to the other state for the interview (of course i didn't initially tell anyone i was going for a job interview, i didn't actually have any intentions of actually leaving). After I flew back from the interview, one of the people in the team who sat right next to me and who I didnt really know that well came up to me and quietly asked me "how was the interview?" My initial reaction was..."how in the world did you find out...i didnt tell anyone!!" It actually turned out he was friends with the manager from the company i was offered a job with, and they had asked him for some feedback on me. Luckily for me, I had always worked hard with him and been kind and friendly, so he had said all good things about me.

So the moral of the story is...always present yourself in the most professional manner possible...you never know when an opportunity will come up.

Get to know your client
This may sound like a funny one...but the benefits are huge. Listen to your client, get to know what they really want, it will ultimately lead to a lot less pain in relation to your project. An example of this is a project I recently worked on. Initially there was little interface between the technical team and the client. While a lot of people would suggest this is a good approach, after getting to learn the Agile methodologies, I can see that its imperative to be working closely to the client.

On this particular project, the initial requirements were give to us, we developed it exactly as specified and delivered that unit of work to the client. But it turned out it wasnt what they really wanted...so it became a CR. We developed the CR as the BA specified in the requirements, delivered the unit of work...and again it wasnt exactly what they required. By the end of the project, one component of the application had five CR's attached to it. The reason for this...the BA didnt spend the time to get the requirement right.

Solution? Well in the second phase of the project, I as the technical leader on the project spent more time consulting with the client to ensure what their BA has specified in the requirements was "exactly what they were after. Again it turned out the BA hadn't really spent the adequate time discussing with the end user and this resulted in a very poor requirements document. One of the biggest problems on this project for us was the fact the BA was actually working for the client, so we had no control over this person and the quality of work they produced. Nevertheless, working more closely with the client and knowing what they really want ultimately lead to a much better phase of the project.

Its very easy to just take the requirements they give you, go away and develop what they have asked for exactly, but too many times what the requirements say and what they actually want are not exactly the same

Dont expect too much
This is a sure fire way to have a hard time at work. Managers will inevitably lie. They will make big claims and majority of these will fail to come true. Unfortunately this is just part of our working lives. If you can find a manager that doesnt lie and really cares for you...hold on to them!

Reality is...managers care about one thing: making money. If that means they have to do things that will make the staff upset...then its just bad luck for the staff. Management will say just about anything to get you to do what they want.

My advice...dont let it bother you. The sooner you realise this, the better. It is hard, sometimes you will work your butt off to reach a deadline or win some new business, and your boss will not show you an ounce of thanks...but this is just the way of life. Don't let it bother you and don't lower your standards...you are better than that!


I know these all sound very basic...but sometimes we need a reminder of the basics. We get so wrapped up in the now, we for get to take a step back and put things in perspective. These are all pretty high level concepts and ideas, in a future post I plan to drill down to more technical level and discuss some of the frameworks/technologies/libraries I have used.

No comments: