05 January, 2007

A Love-Hate Relationship

I love my job...I really do. The software field is by-far one of the most exciting fields of our time. With a $500 PC, expertise in some area, motivation and dedication you can accomplish some extraordinary feats. A couple college drop-outs in a garage create an operating system that one day dominates the PC market. A kid with an idea for a centralized video repository later sells it for billions. Ideas that can be accomplished with software are near endless, they are not directly bound by physics like that of electrical engineering and mechanical engineering. I really love this field.

At the same time there are days that I am one step away from my co-workers finding me hanging from the rafters, lifeless...with a smile on my face signifying an end to the madness.

One of the present-day aggravations that steers me toward a noose and a chair is a newly hired contractor. I have to say that most often bringing in a new body to the team is exciting. They often times come with fresh experiences, a newly defined sense of drive, and often times technical expertise that is of interest. I have to say that I was exceptionally excited to work with this new guy. I helped conduct a phone interview with him and of all the candidates he was by far the most qualified. His responses to each interview question was spot-on, textbook responses. I was really looking forward to working with him.

The usual new guy dance entails a couple days of 20 questions, an assignment of a well-defined task for them; they finish the task, they may get another of increasing complexity, otherwise they are on their way. Our new guy however has two-right feet; he doesn't know the steps and is stuck in the 20-question loop. Touting his 20+ years of experience he is under the delusion that he was hired as a consultant. I do believe that I've been asked every possible question with two exceptions....why our hardware casings are green, and why we are using C++. I expect them to be raised within a week.

While I have no experience as a consultant, nor as a contractor I have not yet to meet a contractor that would not rather be a consultant. The difference? A contractor is a temporary replacement to a senior engineer, a consultant a temporary replacement to a system architect. Consultants are typically hired to look at the big picture of the system, making recommendations to assist in bettering the product. Education of, and enforcement of best practices is an example of a typical role for a consultant. Consultants are typically an authority on a given subject or domain. Hiring the likes of Scott Meyer or Marshal Cline to teach proper C++ best practices would be an example of a consultant. Contractors on the other hand are typically a temporary resource with more average skill sets. The typical contractors that I have been involved with are software engineers. I think of them as a coder for hire. If you ever wonder if you're a contractor or a consultant just take a peak at your paycheck. If you are bringing in ~$500/hr then chances are you are a consultant, if you're in the ~$100/hr range then your a contractor.

So, what does this have to do with our new guy? Well, he's been hired as a contractor and is playing consultant. Rather than focus on accomplishing his tasks at hand, he instead snoops around our entire source tree asking questions about everything and then expressing his 'opinion' on why it should have been done differently (sigh). He is currently just finished week 3 of his self-proclaimed 2 day task, the other 13 days entail a good deal of 'why did you do it like this....why didn't you do it like that'. Worst yet, he's slowed down everyone else with his unproductive questions.

I'll finish my rant with a plea. For those of you that are contractors, hired as contractors but want to consult....either sit-down, shut-up and do your current job, or seek out a consulting opportunity elsewhere.

No comments: