Do I have your attention? YES! The title worked.
So here I go… I have done both been the evil consultant and the customer. I am the customer right now.
Quickly – for me – why am I writing this blog? I’ve left one too many comments and would love to generate a discussion here.
Let’s start with the Evil Consultant (EV fort short. In-house IH for short)
IH: Hi Mr consultant, I’m so happy to work with you. (Meaning why on Earth would they bring in a consultant?)
EV: Sure. I’m happy to work with you too. (Meaning – you idiot, I’ll tell you what to do.)
IH: So have to had time to look over the new project. Do you have any questions for me? (Meaning, of course you do, you don’t know our system or our way of doing things.)
EV: <Getting a little mad> Of course I have. The problem is that I’ll have to rewrite all the old code. It is inefficient and doesn’t use objects. So I had to double my hours. (Meaning your programs are horrible)
IHr: Yes, that was one of the early programs, but can’t you just use the basics. We don’t have anyone on staff who knows objects. <Kind of worried now. What is this idiot thinking we can’t support that.>
EV: Well you’ll have to learn then. He goes on to program a complete system. It runs great in development, so he is on his way to his next client.
In-house developer: <Project has gone to production> Oh no! It’s crashing! We don’t know objects, we have no idea what he did, and this is critical to our business. No holiday for me and some very late nights fixing this while learning basic objects.
Sound familiar? Maybe with a different twist? The consultant stays there when it goes to production, but when he leaves it breaks? All the sudden your production system is running too slow? Oh boy, so not good. I bet we all have some stories to tell.
The good consultant (GC) / the Evil in-house developer: (EH)
EH: Hi Mr. Consultant. I’m so happy to work with you. (Meaning I hate you, and wish you were gone. You idiot.)
GC: Hi, I’m happy to work with you as well. (meaning this could be a fun job)
EH: Well here are all of our standards make sure you follow them exactly. I will be watching you. I also code review all your work, and nothing will slide by me.
GC: Well I’ve noticed that you are using for all entries and are not using joins. I think I can prove to you where some joins are more effective. I could also help you learn something about objects while I’m here. I’ll make some time for it.
EH: What did I tell you?!!! (Idiot) Just follow our standards and we will get along.
Sound familiar? I bet it does.
So what would I suggest?
In my infinite wisdom, you know since I know everything. (wha ha ha – that’s my evil laugh) Objects are actually an older technology. New programming techniques are coming quick with HANA. I’m an In-house developer. So if/when we bring in outside consultants, I want to pick their brains. Will I let them do everything they want? WILL I? Not my call. It’s my bosses call, but I’m guessing we will have to compromise a bit. Also if they are leaving me any code, I want to sit with them and completely understand it. That can’t happen without some give and take. We don’t have to be friends, but it would be nice if we respect each other a bit.
OK – now there are some truly bad consultants out there. There work is below even the lowest standards. My advise, if you aren’t the boss get with him immediately. If you are the boss, send them packing.
Some horrible customers (In-house developers) – well it is up to you Mr. Consultant if you want to put up with it or not. You can always look for a different gig. Or you can try to make those horrible customers be better. (Not always possible)
Here’s something to think about. You’re consultant is amazing; however, she is horrible with people skills. Would you keep her around?
Last but not least – some assumptions:
- In-house developers do not keep up with the latest ways of coding. Not always true, but remember we have to get things out quickly and sometimes it is easier to use something we know than what we are learning.
- Consultants are inflexible. Well they wouldn’t get very many jobs if that was true. They are just like the in-house programmers.
- In-house developers are inflexible – demand consultants follow standards. Not true, they may say that but give them (us) a reason to do something different that is better, and we will. We will demand to understand it.
- Consultants are horrible. There code is inefficient. Some are – get rid of them. Some aren’t. Some are exceptional. Remember they probably have a higher ratio of people staying up to date with the newest technology. Of course they have the higher ratio of new developers as well. Be careful.
And so – now have fun with this one! What is the worst and the best that has happened to you? I may start the comments too! Of course leave names out. And never post something that you wouldn’t mind your employer reading.
OH – BTW I’m great at ranting. But here is my point. If you are a consultant don’t assume your customer doesn’t know anything. If you are a customer be able to be flexible. And really this was just a rant. And I’m leaving it open for others to rant as well.