When Should a Consultant Question Decisions?
bay43270 asks: "Presumably, companies hire consultants because they need technical expertise. At some point (if not on a daily basis) a consultant is asked to do something that isn't in the best interest of the company (and therefore may not be in the best interest of the consultant in the long run). The consultant must ask 'do I just say "yes sir" and go to work, or do I try to explain things? If so, how hard do I push?' When should a good consultant question a decision, and how does the situation differ with contract programmers?"
The money is good..thats a plus. The company in question has zero clue on anything computer related, IE why im hired... however, the programmer... wants citrix for remote administration to a domain controller.. citrix, for remote admin...cause he does not like terminal services.. How do you fight this?
Your job is to look pretty and keep you mouth shut. Don't start thinking about "what is good for the client", they don't think about it why should you? Stepping on anybody's toes is going to get your butt kicked out of there sooner so start thinking about what is good for you.
(did I get the first post??)
I believe the answer to this lies in the price point.
Simply stated, if a client is paying cheaply (well, as close as that gets in consulting), they deserve the minimum information and just get what they ask for.
If a client pays well or tips well or has been a long time repeat client, they deserve that extra time taken to show which judgement would be best and why.
Note those last two words: "and why." That is the single most important piece of information that is needed when questioning any decision. If you have that ready, your ideas will go much farther.
Also, take into account how much the client knows about what they are dealing with and how stubborn they are. If you've ever been in sales, then you (hopefully) have some idea as to how to "read" people and present ideas in the way that will relate to them the most. If not, then I would recommend lookng into this type of "people skill," as it comes in very handy when in a bind.
Just make sure that you don't give them so much information that they feel they no longer need your services, as that could also be a dangerous move. Overall, if you know something they don't, they will pay for that knowledge. And they will continue to pay you as a valuable source of information for a long time.
Work sucked, until it became unemployment, when it became slightly more tolerable. -Tet
it it ain't illegal, unethical, or immoral, you're basically being paid to be a professional yes man so mid level PHB's can say "hey look, the consultant agreed." it's a CYA thing. our school district has done this. many times. arghhhh!!!
My problem? I was perfectly gruntled, until some numbnuts came by and dissed me.
Am I first? Well, just for the record, "he who pays the piper calls the tune". You don't know what political games are being played in your client's company. Point out your concerns and if told to go forward anyway, go forward. JSFIADO. Just say fuck it and drive on.
... on the reaction you get the first time you try it. As an employee or contractor I would feel obligated to point out why something may be a bad idea. If I get my head bitten off after that I would default to "Yes sir, here you go, exactly what you asked for." Fortunately I have a boss who listens when I point things out. Sometimes he acts on my recommendations. Sometimes his response is "You have a point, but we're still doing it this way."
Yeah, I know - a lousy answer, but it's the only one I've got.
"An unarmed man can only flee from evil, and evil is not overcome by fleeing from it." Col. Jeff Cooper
what I do is explain why my experience and expertese tells me it is a wrong thing to do. I give examples, and send it to the appropriet people. I tell them I feel its part of my resposibilty to the company to give them my opinion and expert analysy. then I do it how they want me to.
This tact has always been met warmly. They don't always go with my suggestion, but they always appriate my input.
The Kruger Dunning explains most post on
This can be generalized to any professional in any field, I don't see why it's limited to discussion of contract work (other than the fact that that's what the submitter happens to be right now). As a professional, you should view it as an obligation to provide as much information as is necessary and pertinent for your employer to make an informed decision. Given that information, it is their responsibility to make that decision or delegate it, to you or someone else. Once that decision has been made, given that you and others provided the relevent information, you just have to live with it, personal opinions aside.
How right are you, and how right do they think they are? If you're really really right, and this isn't minor, then of course, stand up for the decision. If it's a bad decision, but it's minor, mention it, but don't push it. If they love the bad idea, tell them it's bad, but do the job.
I would say always make your fears known. It's called CYA (Cover Yer Ass), you don't want to be blamed when what you feared comes to pass.
If for whatever reason you can't then it's tough luck for the customer. Any company that doesn't keep an open dialog is doomed to failure I would think.
I wear pants.
Do the right thing for the customer and the right thing for you as a consultant. Sometimes that means you will have to fire the customer. Trust me, you are there because the customer wants to get bitch-slapped and be told what to do, so earn that money and do it.
This is, in fact, a very simple situation. Get your marching orders in writing. Document your objections and suggested solutions in writing. Get the employer's reaction in writing. In the end it's their ass that's on the line, not the contractor's, and you have the documentation to prove it.
Believe me, it works.
Presumably, companies hire consultants because they need technical expertise.
I'm not sure if I'd make that assumption. A company may hire a consultant because they want an outside opinion. Everyone at the company gets so used to thinking the same way they lose sight of the forest for the trees. If I were a consultant, one of the first things I would make sure I understand is exactly why I'm being hired. It is entirely possible that the company may claim to want an outside opinion but there actions seems to indicate that they do not. In such cases, you may need to remind them periodicially what you were hired to do.
If, for some reason, you don't have this initial discussion with them, I think you still have to assume that they want you to critically examine their decisions. If they finally get fed up with you questioning their every move, I'm sure they'll let you know. At that point you can decide whether you want to continue to work for a company that disregards your opinion.
GMD
watch this
Doesn't work. Usually they just buy you a cheap dinner, and stick you with the CEO's aging wife...
The difference between a consultant and a contractor is just exactly that which you mention.
A contractor typically agrees to do a job, supplies the tools and expertise, and completes the project as agreed.
A consultant takes a problem, develops a plan of action, and is entrusted with providing an opinion on anything that is detrimental. As a consultant, it's your JOB to bring it up-- But if they say "We know, but we just want it done this way", well that's then your job.
A 'consultant' is someone who is brought in tooffer their advice, expertise and so forth.(Thus the word 'consultant', or 'one who is consulted')
Once they have done so, many bounce back and forth between consultant and contractor-- Writing the job tasks and then following through with them. By definition, the input of a consultant is wanted- She works primarily in the business/planning sense, almost as more of an adviser or planner.
I've done both extensively, myself,for your reference.
-Kysh
--=:: Wings and tail and snout and scales of blackest night
contract programmer : starbucks barista ::
contractor : sommelier
sometimes the customer asks you for a recommendation, if you're a sommelier; in either case, bring 'em whatever drink they want.
This happens regularly to me.
:-)
My general coping methodology is to identify my concerns (expressed in terms of business consequences) but ultimately, I will defer to the legitimate authority of the client who is retaining us and cope as well as I can.
There is always the possibility that:
(a) You could be wrong
(b) Your client's position is formed on the basis of additional information you don't have to hand.
On the other hand, that doesn't mean you shouldn't keep some sort of mutually visible (and emotively neutral!) audit trail of your concerns as a CYA mechanism
Hey - we forgot to ask - where are these jobs? Right about now, being an employed yes-man sounds nice...
being a consultant or not has no relevance as to whether you should "do the right thing", nor does how much you're getting paid.
if you see a problem, something that is not in the best interests of the client, you should state your case, as clearly as possible, and then let the client make the call.
it's consultants that don't say anything that contribute to the overall negative reputation that consultants have (that and PricewaterhouseCooper pulling Philosophy majors directly out of college and billing them out as software development "consulants" at $185 per hour)
The sad state of affairs is that in a not insignificant number of cases consultants are meant to be yes men to the manager that hired them. In some cases the 'consultants' are just salesmen come in to reinforce some already decided business plan.
In an idea world a consultant woudl be broughtin to actually consult and provide information and reccomendations. The fact that the people hiring you don't want to listen to your reccomendation kind of point to the fact that they want to pay someoen from the 'outside' to agree with them so they can get heir agenda rammed through.
Its really a lose-lose situation. Only think I can suggest is to make sureyour contract says that you get paid regardless if they like the report or not. Because if they dont, they'll find some other consulting firm that will give them one they like.
chirst, what kindof latte swilling hippie are you... what the fuck is a sommelier?!??!
At least you have to try and do your job, which is to make good decisions for the company (and hence you). From there it all depends on their response.
Where I'm working now, I was presumably brought on board to "reign in the process" and actually introduce some hint of software engineering to the sheer chaos that was/is our development process.
With images of bringing my past experience (well-regimented development cycles, CASE tools, etc.) I charged ahead. Only to discover very early on that what they WANTED was all the speed of seat-of-the-pants no-process chaos, with all the reliability and stability of a proper S.E. environment.
Yep, you can envision the outcome. It's been over two years now and I essentially gave up. I did manage to bring a few actual software engineers on board (our other developers are non-CS majors). I'd say we've gone from SEI Level 0 to Level 0.5.
But they pay me and treat me well. In this market you can't cherry-pick your jobs. The chaos drives me insane, but being able to pay the mortgage has its definite benefits.
Though I do dream of a place where requirements don't change daily and control-/data-flow analysis roams free and strong....
CYA goes both ways. If you recommend a course of action different than the one they're suggesting, and it fails, you will likely be held responsible. So the question is:
Are you getting paid to stop the company from making bad decisions?
If not, keep yer yap shut. If you will NOT be held liable for not stopping the company from doing something stupid, then there is no incentive to do so, and it may get you in trouble if you turn out to be wrong in the end.
If you're hired as cheap labor or as [basically] a temp -- i.e. labor replacement, they may not want to hear your ideas. If you were hired for your skills and insight, you owe it to them (and yourself) to at least try to help them see the light. Preferably in a documentable form (CYA), depending on the client.
And always start with cost comparison, then approperateness of the solution. And always get your views out there early -- the beginning of a trend is much easier to change than an established wave.
if a client is paying cheaply...they deserve the minimum information and just get what they ask for...If a client pays well or tips well or has been a long time repeat client, they deserve that extra time taken to show which judgement would be best and why
Nice work ethic there, Sparky! Nothing like doing a good job for the sake of doing a good job. No sir-e! Show me the money!
Tip: You should go into medicine. There's tons of money to be made off of pesky poor people and, hell, since they aren't paying well you can just throw a bottle of asprin at them and save your best work for people who are worthy (rich).
Please. You are hired to do a job. When you were brought on, if you had a problem with the rate, you could have said something. Hell, you could still say something. That's called negotiation. But it isn't blackmail. "Oh, I'll only work hard if you keep meeting my demands." Show some class. Show some self-respect. Demonstrate you have a moral sense of right and wrong and you aren't just a high tech whore...
I would have to say that explosives are the most abused technology in all of history.
I hardly ever do consultant involving coding unless it's something simple, like creating a web based front end for database entry or something. But when I am providing these types of solutions I always suggest FOSS. Alot of small busineses get duped into thinking that they need to go with Win2k, IIS, and either Access or MS-SQL. I always suggest Linux, Apache, and MySQL - and not one of them (OK, there was only two, but still) decided to waste over $1,500-$4,500 on the MS bundle (If they choose SQL it adds quite a hefty chunk of change onto the total).
...and it works like this: speak up freely anytime a new decision bothers you. After you've made your case, if things don't change, reconsider your position. If you're still firm, revisit the issue later, and make a better case. If things don't change, grit your teeth and build to spec.
I figure this gives the team some checks & balances where input can come from both sides, and both sides have a chance to reconsider and restate the issues if need be. But it doesn't drag things out too much -- after two discussions, we're moving on, regardless of the happy-level. The major challenge here has been upper management, only because they haven't done the math. They always want to blame the developer or contractor, and insist that if management made a bad decision, it was up to the people working on the project to raise a stink, multiple times if need be. This is of course untenable, because it implies that a project could drag out indefinitely, as people revisit, re-revisit, and re-re-revisit an issue. I find my objection/revisit rule rule to be good, but it has to be backed by something only I am willing to do right now: take the blame when I make a crappy decision and refuse to listen to input.
My Greasemonkey scripts for Digg &
You were hired to do a job. You took the job and they pay you. You should ALWAYS tell the client if something is wrong. Not argue, mind you - just inform. If they want to know why, you tell them. If they don't, you don't.
If they are a "good client", you might want to argue the point more without their asking for it.
I'm assuming the poster is in the US. I'm from Sweden myself, and I'm currently working in USA (since 6 years). I can clearly see a big cultural difference here. In Sweden (at least in the companies I've been working for), you're always assumed to question whatever management ask you to do, regardless of your position in the company. They are always grateful if you find a better solution and count on you to express any doubts or questions regarding the proposed task.
While I've been in the US, I've been asking questions in the same way and this sometimes lead to real frustration. People don't want to be told that they might be wrong. The response is typically, "well, it's nice of you to express your opinion, but this is how we do it" without even be willing to discuss the matter.
This is just my experience and hopefully not typical in the US workplace.
Jim in Az
As you know, John, the company is in hard financial times. And as you may not know since you are a contractor and you don't rate this sort of next-to-pointless perk, the company gives away hams at the holiday times. We can't afford that this year John. And we can't afford to take the morale hit either.
John, we've decided to use consultants as hams."
Time to speak up!
..whether to make money or tell the client that
are wasting their resources..
it all depends on how good your intelligence is.
if they are checking with other consultants that
might be competent then you need to tell them the truth.
Otherwise: Profit!
My belief is that a consultant should do two things when looking at a client's needs.
You analyse where they are and then where they want to be. The bit in the middle is what you're hired to do.
If doing a proper job you should have a good idea of the overall goal of the project. Not just upgrading xxx, but the reasons why your upgrading it. It is this that makes you truly see if they are making a poor decision or not. It also helps you immensely in putting in the right solution.
You may have issues with their direction, and this is I believe what your getting at. Your treading a fine line as unless you've been brought in to consult on the direction then people are going to be hurt.
Sometimes you need to go up where the air is thin and lay out your case for A vs B and why you believe B is a better solution / strategy. At worst you can get someone to have a quick look and see if you have a point; if they don't even offer you this, then its not worth your time.
A good consultant shouldn't have to ask questions, a good consultant should provide answers.
There is no way that just one solution fits one particular problem, and it should be expected that you offer all valid alternative ideas before they even come to a conclusion.
Each company has its own prerogatives- and everyone (including management) has reasoning behind their decisions.
Consultants need to remember that their job isn't preaching personal beliefs- and sometimes the best solution isn't the most glamorous.
Basically there is more than one way to skin a cat, and often each company has to make that final decision with what they could handle financially and handle in the long term.
My suggestion really is to be more aggressive presenting possible ways to go around things way before they can even think of their best solution, just don't pollute the workplace with advocacy (whether that Mac, Linux....or Windows...) - There is no reason to get emotional; yes, the manager you're dealing with might seem like a total moron-- but I'm sure he/she has good reasons for what he/she does...
If in fact the management are a bunch of total morons, the company will eventually go out of business--so I guess unless you invest in the company... don't worry be happy!
Everytime I have been in a consulting role, the decision making process included me in it. There was no need to come back and tell me to just do something new. I would have gone back to the decision makers to ensure we were still on the same page and proceed. If a consultant is hired for their expertise, this is how events unfold. If they are hired to be a scapegoat, then I can see your scenario happening. Sounds like a nightmare.
Kindness is the language which the deaf can hear and the blind can see. - Mark Twain
I am currently taking a /. break while working on my resume. The paragraph, I just added, deals with communication skills. Today, it is vitaly important that software developers are able to explain complex concepts to both other programmers and non programmers. Knowledge and experties must be shared. As a consultant, one needs to educate the managment. After that, it is ultimatly up to that managment to make the descision. Of course part of the problem one faces these days is the vast amount of missinformation being spread by Microsoft propagandists who have access to the highest levels of managment. That means that one needs to be well prepared and needs to have a good understanding of why the managment wants to do what they ask. Another skill that is often overlooked, is the ability to research and evaluate.
What a massively subjective question. Guess the good ones already are.
I just got off my first contracting gig (about 100 days), which ended with being hired full-time. It's a tech. marketing position, and so might be a little different that some others (contrary to popular belief, good product managers are encouraged to question the status quo).
As I hinted, I was encouraged to question the status quo. It continues even during my full-time employment. And I've worked in places where questioning the status quo was simply lip-service. Doing so would get you fired.
Marketing, while demonized in a lot of tech circles, is some great experience for firefighting and examining company procedures for efficiency. For me, it's boiled down to a few things:
-Company culture. Nimble and hungry, or fat cat? This is pretty obvious: the bigger boys tend to like things the way they are, and bucking that could get you in trouble.
-Your boss. Is he a trend-setter, aggressive, or is he Office Space material? This has serious impact on whether or not you're seen as a contributor or a threat.
-Relationship with peers. I'm good at developing relationships, both friendly and working, and it's a necessity even moreso for contractors. You might already have a bit of negative attention your way, and making in-roads with other folks not only gets you accepted, it makes your ideas a lot more palatable. It's 'oh, yeah, Bob suggested it,' not 'that fscking contractor wants to change another thing...'
This is in addition to a thorough evaluation of what you want to change. Make sure it's effective, efficient, and has an impact on the bottom line. Philosophical debates are great, but they need to come with quantifiable results, or else it's one person's opinion against another.
I hate to ramble and give nothing more than 'feel it out,' but that's my experience. Start by taking inches, and proving yourself along the way, and when you reach for that mile, you'll find a lot less of a fight. Good luck.
You should always let them know if they are making a bad decision. They may not always take your recommendation, and may even get to the point where they EXPECT you to argue (like they did with me) -- but otherwise you are just a seat filler.
You are hired for your technical expertise. If they say, "It must be done like this", then I have no problem speaking up with a "that will be extremely slow".
But here's the key: Be prepared to provide an alternative. If you critisize, but don't provide a solution, they may just see your comment as non-productive. However, if you get in the habit of providing better solutions, they may start asking you to find a solution to begin with.
Malachi
http://www.google.com/profiles/malachid
I know my boss reads Slashdot, but he also knows what kind of a client I'm working with on my current project. It's not so much a matter or "when to question", but "when to make sure you're not the one that gets the blame". I'm currently working with a client that has VERY poor project management skills, and we daily poke fun at the entire situation. However, we only do it in jest, as we know they're the ones paying the bills. Sometimes, the client's decision is a poor one, and we try to suggest alternate means, but the same advise rings true: "the customer is always right", "don't rock the boat", and "be quiet and look pretty". What you really have to do is document that you tried your best to better the situation, without flat out telling the client they're a friggin moron. Right now, I know I have upcomming medical expenses, a wedding/honeymoon to do, and a possible new car expense. The last thing I want is to get fired for being "insubordinate", even though I don't think such a thing would really happen. I know my opinion is valued within the company, but outside of that, it's hard to deal with a stubborn client.
Basically, I know I'm just a code monkey working on a client's website, so it's not a life-threatening thing if the client makes a bad decision. However, I have enough morals that if such a situation did arise, I would not hesitate to open my mouth. But until then, I know that this is just a temporary contract, and it's not like I'm working for this client forever. I think that's something that consultants should remember. It's really helped me these past months.
Sometimes I doubt your commitment to Sparkle Motion.
You've gotta know when to question.
Know when to keep still.
Know when to walk away.
And know when to run...
You'd better count your money
With each and every paystub
Cuz you'll have no chance to count it
When the merger's done.
If you do not feel free to express your opinion that a customer may be heading down the wrong path then I would argue that you are not truly a "Consultant". Rather you are a "Contractor".
A consultant is hired to help a company make proper desisions as well as to do some of the work. A contractor does what the customer tells him/her to do.
If a consultant is doing their job primarily for the money - as is suggested by most of these posts - their integrity is going to be called and their not going to last long.
Obviously, there will be times when what the client needs and what they ask for are two different things - and sometimes opposed. People talk about CYA - at the end of the day the people making the decisions are the ones spending the money. As such, they need to see your recommendations in terms of cost/benefit/risks. If you can't communicate the reasons for your recommendation in terms other than technical benefits then you can't really call yourself a consultant.
If you do present it in terms, that those people spending money can understand, and they still choose to go the other way - you find a way to support that 'solution' and make it effective. Being open to other ideas and working as a team is part of being professional.
Very simply say "I believe the correct course of action is X, but if you want me to do Y; I will." We are hired to provide advice based on our experience and skill set, but also to do the bidding of the company who is paying us. Period.
I've been in that situation many times and I've never been shy about it - if I think you're fucking up, and it's my job to tell you, I will. What you do with that information is entirely up to you, of course. At the end of the day, I get paid anyway (which is why I'm a consultant and not a Dilbertian employee).
Aside from the other very insightful comments here, I'd also judge wether to speak out based on the risks involved
Is this a pacemaker or space shuttle? I'd probably speak out louder.
Is this an "I'm on the web" website? I'd probably just mention my misgivings.
- I question everything, so it's nothing personal.
-
I know damned well what I'm talking about, or I'd keep my mouth shut.
- Whatever way your internal folks want it is what we'll work to make happen. Since they have to stay here and support it.
The best example of this came early in my career when I had a modest dozen programming languages under my belt and I was asked to extend a Customer Billing System for a wireless Telcom carrier. After getting all the specs. I asked the guy who would maintain it what language he thought would be best for the app. He said TCL/Expect. I'd never even heard of it, but it was going to be his baby, they were willing to pay for the extra time to have it written in a language other than C. So I bought the O'Reily book, learned Expect, and to my great suprise it was an excellent choice, and I was paid to learn Yet Another Cool Scripting Language.There's a syndrome I've heard called "buying a dog and then doing your own barking". If they're paying you for your expertise and then they ignore your recommendations, you have to wonder. Also, if the project crashes and burns due to bad project management decisions, how much damage will it do to you and your reputation?
There are two kinds of sysadmins: paranoids and losers. I'm both kinds.
Take for example .NET and Schema. The employer had a question about using namespaces and asked "Should we use namespaces?" My response was "yes, it provides a consistent way of resolving model conflicts and avoid collisions." Their response was, "what if some one doesn't want to define a complexType and would rather use element?" After some lengthy discussions, it was decided that namespaces wouldn't be used. 4 weeks later a design issue comes up and they ask "what happens if we want to provide a way for customers to extend our object model?" I politely mentioned that was one of the reasons I thought namespaces would be beneficial.
Often the customer doesn't completely understand the technology and don't realize the short term decisions they're making has tremendous long term impact that's not in their best interest. Some times they end up seeing the flaw in their thinking and change their mind. Designing complex systems isn't simple, often the assumptions given to the architect and developers are wrong. If the architect makes decisions based on those bad requirements/assumptions, there's very little he can do after the system is built.
Take SOAP for an example. If a company decides they want to go with web services across the board and believes it's the future, they are making a guess. If those assumptions are wrong and their customers are 10 years from being ready to adopt web services, the change in architecture could mean loosing their customers. there's a hell of a lot more going on than just "is it the right architecture." Part of a consultant's job is to understand the business model and ask intelligent questions. A consultant has to first understand the customer's needs and help improvement the requirements and use case. Once the requirements are well defined, making architectural decisions becomes much easier.
anyone whom they will call a consultant should consult. otherwise they should call you what you are, i.e. technician, programmer, etc. If you are going to be a consultant, dont just ask how high when they tell you to jump. That just makes you their bitch, not their consultant.
In SOVIET RUSSIA... erm...NSA AMERICA, the Internet logs onto YOU!
Revengineering: The act of giving the client exactly what he asks for, despite your expertise.
(sorry, not my original quote)
I worked in the City of London for two years as a consultant. It is a very abrasive environment. The attitude is pretty much, if you say "no" or "maybe" to any given project or demand, they will go and find someone else who can say "yes". Very often, the people giving the orders are far too conceited to debate technical issues. If you object to their analysis of the situation, you will be routed around. This is all very much why I left that line of work.
damn, i read it. what should i do?
please advise.
woooo woooo!
You must be one of those cheap fucking management types. Been there, done that with pricks like you.
Want good help? better be ready to pay...
Consultant = "If your not part of the solution then theres good money to be made in prolonging the problem."
'Nuf said.
1. Don't "unsell" anything that your sales team has sold. It doesn't matter that they dont need that particular widget - don't tell them that.
2. Make recomendations for how they could do things better. They will expect this. This is the difference between a consultant and a contractor.
3. Don't make the customer feel like an idiot for having designed/implemented something in a less-than-perfect manner. Politely suggest the necessary changes and give them good reasons why they need said changes. And don't make the customer feel like an idiot.
These 3 should get you started...
I'd rather be a conservative nutjob than a liberal with no nuts and no job.
Trackable info is GOLD. Take the following which happened to a guy I know at the same company I'm contracted to:
.doc files .doc .docs .docs .doc .doc
Guy I know got fired from [US printer company], then hired back as a contract. When working the contract, a full time employee complained about the quality of his test matrix, so they scheduled meetings and re-wrote it. Both of them kept notes, and both emailed the other with their copy of the notes to make sure they had all the same info. She complained again, then they did the meetings, re-wrote the notes, etc etc. It went on like this for about 7 iterations:
1)need more test cases
-doubled # of test cases
2)need test overviews seperated into different docs
-seperated into 3 different
3)need more test cases
-added test cases to each
4)need fewer
-combined to 2
5)too many test cases
-reduced test cases in each
6)don't like formatting of
-used different fonts, spacing, etc
7)too many test cases and docs
-combined docs; reduced test cases
8)[yelling] you are a terrible engineer (I kid you not)
-take it up the butt because you can't talk that way to employees but they can to you.
The result of this month of run-around that she gave the guy was that she didn't like him and wanted his project canceled and delayed (ie no work for months) so that a different contractor could be brought in to do the same job . . . one that would do the work just how she wanted it (YES MAN) but with out her actually doing the work.
At meetings with the VP of the contract agency, and meetings with the [US printer company] bosses the guy presented 300+ pages of printouts including each iteration of the test spec, the notes from each meeting, and all emails between them (he auto logged all emails). The VPs concluded that the guy did an excelent job of fulfilling the job requirements, but that because she didn't like him his contract would be canceled. The contract firm VP admitted privately later that this is very common with [US printer company] and there is absolutely nothing that could be done about it. Since both bosses agreed, the guys record was not adversely affected, but he still can't work in her division ever again.
When you offer your trained expert opinion to an idiot, expect nothing less that idiocy in return.
Hopefully this isn't a common experience with other companies and other contract workers.
robi
If you are a consultant who happens to be the project manager, your job and reputation are on the line. You normally will have the ability to make the critical decisions in this position with a certain amount of oversight. If I know for a fact that the project will fail because of the decisions made at a level above me, then I personally think that I owe it to myself and my customer to a) make a clear, concise, and convincing case for the method that I most favor, and b) make the decision to leave if I'm being micromanaged from above into failure.
Remember that you will be associated with whatever successes or failures that you participate in. In most situations like this you will be making an initial proposal for a solution to a customer, and if they choose your solution then you'll get the job. Otherwise it will go to someone else. In this case there should already be a certain level of synergy and trust between you and the customer, so cases like you describe would be an exception to the rule.
Now there's the other side of the "consulting" coin, and that is more of a staff augmentation situation. Yes, the customer is still paying for your expertise, but they obviously are just brining you in for extra manpower on the project. In these cases, I think that it is also important to bring up any concerns that you have about potential problems (or things being done the wrong way), but do so professionally. Don't rip apart the project plan in a team meeting (unless that's what the meeting was scheduled for), but if offerred the opportunity then offer your opinion. Speak to the project manager/lead implementer one-on-one and express any misgivings. Alsways offer an alternative method/product/solution.
My personal rule is to only bring it up once. If I disagree with a product or method, I'll pitch an alternative in the appropriate forum. If it is shot down then it's a dead subject as far as I'm concerned. Repeatedly bringing it up will only make you appear like a disgruntled employee or someone who is not a team player. Remember that in this situation you were brought in for your expertise, but mainly to be an additional labor resource. Work with the project plan as directed and do your best. If it turns out that you were right and the project is starting to sink, there's a good chance that the person you spoke with will start looking for an alternative solution, and you might come out looking like a hero.
To summarize, your reaction is going to be largely influenced by the role that you are given. So long as you fulfill your role to the best of your ability you should be in decent shape.
If the two numbers are close to equal, forget it. It's not worth fighting over. Of course, most costs aren't quantifiable, so take that whole mess, chuck it, and flip a coin. If it comes up head, fight until they fire you.
I used to be a narrator for bad mimes. (wright)
...is like asking yourself if you think you're in love.
If you need to ask, then it's all in your imagination.
If you have doubts, then you're in the wrong place, at the wrong time, and you should excuse yourself on the grounds that you are simply not ready for the task at hand. Do everyone a favor, and run for the nearest exit.
The answer is simple.
Stratigic errors are invariably traced back to moments when the group/project changed direction. The small daily things are just that, small, they are dealt with and things carry on. Tactical mistakes on Tactical issues are just the day to day part.
One of the most important pieces of information being bought by anybody employing anyone for any purpose is the employee's "list of known bad things."
Pointers:
0) TAKE RESPONSIBILITY for EVERY MISTAKE YOU MAKE. Don't make a bid deal over them, don't "fall on your sword" just say "my bad" and move on. Hell take the casual fall for others if necessary to get the repairs started. To the greatest extent, who is at fault is the last thing that matters once the mistake is out. Most people have already decided anyway and almost everybody almost always knows the exact truth before the showdown anyway. As long as enough was learned to prevent a repeat, the issue is over.
1) Teling your boss "no" is your most sacroscant duty, but it should be approached the way you would tell him his fly is down (or there is toilet paper hanging out of her skirt band.) That is TACT and URGENCY are at war. A timly rescue of face in an emergency is more important than tact and will be remembered positively; but in the absence of extreme pressure, being less-than-tactful will be remembered negatively.
2) Know the difference between the stratigic and the tactical, NEVER let a issue or mistake you know is stratgic get treated as a tactical issue. "I didn't think it would matter this much" is the lament of the under informed. "I could have told you it would" is the response of the guy who most needs to be fired. 8-)
3) State your position as a recommendataion, especially if your boss is well invested in ego games. "I would reccomend against because..."
4) The next step is to banish "ok, but..." assume any positive assertion will be processed only up until the "but" and that the but, and all the following words will be. "We could do that but it will have problems when..." will feel like a vote in favor.
5) Learn the prefix phrase "I have no informed opinion", stress the "informed" as necessary. This phrase will, up front and attached to what you really want to say, easily and professionally presage that you would be guessing, are willing to guess, or not willing to guess about. Advice given in known ignorance is not a crime, it's a sin...
6) Finally, be willing to be out voted or overruled, and never let the fact that you were so overruled or outvoted color your ego or implementation. Presume there are factors you may not know or have control over and be part of the team once the team moves.
Many people suggest getting everything in writing. Don't do that. Just get the important things in writing. It's only important to get things into the record at whatever level "the record" belongs. Overstressing the "I want it in writing" vibe makes you look either weak willed or un-trustworthy. Depending on the type and nature of the circumstance being discussed there are lots of ways to get on the record. (for instance... 8-)
1) Get it in writing as a direct order if you must.
2) Send it in email with a request for confirmation or clarification.
3) Send an "unless otherwise directed" email. (especially when others are unwilling to make any decision at all, time is being wasted, and you know there is no inescapable harm. Fait Acompli can be outstanding mojo.)
4) (in casual company on minor matters where the relationship is good) just say "I reserve the right to laugh at everybody when the thing catches fire." (but don't over use this unless it's family 8-)
(The secret evil thing most people forget, if you bother to get it into the preminant record, * keep * a copy of that record somwhere you control, don't just leave it on the corporate email server... 8-)
In short, the three greatest failures in an employee of any sort are:
-- Failure to speak, to risk speaking, when others are in danger.
-- Failure to act when direction has been set.
-- Failure to balance both tact and urgency in any assessment.
Innocent people shouldn't be forced to pay for inferior software development.
--"Code Complete" Microsoft Press
Yes but typically the more the client pays you, the more he respects you whether you deserve it or not, and will listen to you if/when you give advice. Otherwise you will just get on your employer's nerves by giving him advice that he would warrant as being worth only what he is paying you.
First, whether you are a consultant or an employee, the issue is still the same, and they have the same expectations.
When faced with something I find dubious when first starting a project or taking on a consulting task, I do not assume an air of 'I know everything and this *will* fail'. I find it is actually more effective to ask questions that will lead them in the direction of figuring out the flaw for themselves. Also, it is not infrequent that there is *something* they neglected to mention that actually reveals what they want to be reasonable in context of the situation, and when that comes out in such a discussion, it doesn't make you look like a presumptious ass. If they figure out the flaw and where your questions where going, they appreciate not only your foresight, but helping them to understand the issue at a more fundamental level. If they reveal a piece of the puzzle that makes their request reasonable, or even if you end up having to point out the flaw yourself, they appreciate your effort to understand more about the big picture and how your piece fits in before just jumping in with a 'yes, sir' or flat out rejecting it without trying to understand why they might not be idiots.
XML is like violence. If it doesn't solve the problem, use more.
Regardless of the environment you are working in you job is to offer you "expert" opinion. By withholding useful feedback you are _not_ doing your job.
On the other hand there are always the cases where your words just seem to hit a brick wall. Your client is not obliged to take your advice, but as long as you have offered it and made sure they understood your point of view you have done your job. It is your responsibility to give them advice and it is their responsibility to take action on that advice.
May I suggest getting something in writing (such as an email thread) should your advice be ignored showing that your client heard what you had to say but decided to go in a different dierction. This can help you should 'someone' try to blame you if things go wrong.
Be authentic, tell the truth (don't 'spin'), and do the best job given the time and money alloted.
Do these things, and you and your client will both win.
You have two responsibilities as a consultant:
1) To inform your client what options are available, as well as their associated consequences. (R&D)
2) To manage your client's expectations. (Process Managment)
If you have done your job correctly and communitated well, your client will be well aware of the consequences of making any decision by your advice (counter to your recommendations or not) and if they do something you don't agree with, they will probably have a very good reason, good or bad, for doing so.
It is important for you to realize that these really are not your decisions to make.
In the words of one of my former mentors, "I'll sweep your floors for $100/hour, but I will also advise you that this is not the best use of my time."
If you fear legal repercussions, keep records of your correspondence in a folder and consult an attorney about drafting appropriate liability release paperwork. Well-designed documentation at the start of a contract and/or relationaship will generally eliminate this issue altogether.
"Lawyers are for sucks."
- Doug McKenzie
If *employees* at some companies aren't listened to, what makes you think consultants will be?
You're a hired gun asked to do what you were hired to do. If you what you were hired to do doesn't involve giving advice, my advice is to shut-up and do what they ask. They could be wrong, but trying to argue the point with them just pisses 'em off.
You're a consultant. You're being paid to provide information. If you get hired and do what you're paid to do, only to be told (directly or indirectly) by the management, "I don't want your opinion. I want yes-man," then tell them to hire a yes-man.
There's never a guarantee as to what management is looking for when they hire a consultant. There's management who already have their idea of what needs to be done, and the only information they're looking for is how to do it. There's also management who's looking to make an informed decision and want expert advice. Any consultant who complains about management not listening to them should have asked what they were being hired to do before they accepted the contract.
Of course, a lot of consultants also do not understand that just because they are experts with software / networking / etc., does not mean that they are being paid to make business decisions. Just because you think that spending $20,000 on new Cisco routers to help ease bandwidth congestion does not mean it is the best decision for the business.
obligatory Dilbert quote: con + insult = consult consultant: Some who cons you and then insults you before leaving. :)
Consensus is good, but informed dictatorship is better
In general I like to give my opinion and possible suggestions. If your advice is accepted then great. If not, then give the client what they requested. In the end, it is giving the client what they want, not always what they need or what you feel is best for them. You might be surprised. Clients are not as clueless as what you think. They chose to contract with you, didn't they? Also sometimes, what you feel is best might not be better.
Judgement comes into play in dealing with the personalities. If your client is not the sort to want to listen to suggestions and advice, then keep quiet and give the client you best effort at what was requested.
Fun is all the more so when it shared
One of the biggest problems for any consultant on projects is "scope creep". A good project manager will ensure that the client gets all that he has paid for, and no more. If the fee wasn't enough - too bad. The consuitant loses. If it was accurate or generous, he makes some money.
What the original poster is describing is the "extra mile" above and beyond the agreed scope. Consultants who do this for free too much go broke.
Which is why the firms I've worked with NEVER bid fixed-price, always time-and-materials. If you did an ethical job, fixed-price was always a loser because you'd lose the bid unless you underestimated the work.
Babysitting the billing is the job of the contract administrator of a multi-man shop, not of the consultant. That way you can play good-consultant/bad-administrator if the client has an issue. (Of course if you're a one-man-band you have to wear both hats, so you're stuck.)
My algorithm for dealing with the original question:
During the project definition phase:
- Research the customer's problem to figure out what he needs. (Because when you ask him what he needs, he'll tell you the new stuff that he wants, completely skipping the core of the problem as an uspoken "of course".)
- Suggest a design that gives him what he needs. Try to convince him that THAT is what he wants. Then.
- Build what he now WANTS.
Sometimes the customer will now want what he needs. Sometimes he won't. In the latter case maybe he's right, maybe you are. Doesn't matter. Now that he's informed, if he overrules you, it's his money so do it his way.
If you go down a rathole at this point, it's his problem. But if you didn't tell him IN ADVANCE that he'd taken a wrong turn, you didn't do your job.
Bantam Dominique roosters crow a four-note song. Once you've heard it as "Happy BIRTHday" you can't NOT hear it that way
A consultants job is to tell their client what they think is the best way to solve a problem. A contractor's job is to do the work they've been assigned by their client. Sometimes you end up playing both roles.
If you tell your client "we should build it this way", and they tell you "No, we'll build it this way", then you're not a consultant, you're a contractor, and should do as you're told, like any other code monkey, after raising your concern once to the appropriate folks.
If you're a permanent hire (not a contractor, temp, or consultant), then you have more say in how things should be done because you might be supporting it for a while. It doesn't mean management will listen, but (IMO) it does give you a right to bitch and yell more than the contractor.
If you care this much about doing things the right way, and the long term health of the company that's currently paying your bills, you're in the wrong line of work. Find a company you want to work for in a long-term role and stay with them.
A wise consultant once told me this advice:
Yours is not to question why,
yours is but to bill them high.
Sure, it's not the way to engineer a perfect world,
but at some places (like AT&T), if you questioned
every poor decision, nothing would get done.
Why wouldn't you tell them? Especially as a consultant. You don't have to outright refuse what they say, but you can ALWAYS argue the bad ideas.
Simply approach them, tell them you have concerns about the methodology, and go over, in detail, what you think is bad about the idea. If they shoot down your opinions, implement their bad idea and if it fails, use it as leverage the next time around. But always stick to that- when you bring it up, tell them that you think it's a bad idea, but you'll do it anyway if they won't heed your warning.
get 0wned. irc.w30wnzj00.com
What are role assignments and what kind of employee collusion are you trying to prevent? I am mystified.
Be it consultant or fulltime I usually put my opinon of a solution in writing if I don't agree with it. I also explain why I consider it a bad solution and offer (if possible) an alternative solution.
If the client then decides to go ahead with the original plan regardless of my opinion that is fine with me, in the end it just means I'll most likely come back later to fix things, but because it's "on the record" chances are slim to none that they can put the blame on me.
So it's self preservation with an ethical twist.
M.
If you want to e-mail me, use my PGP Key.
Well, keep in mind one fairly important thing...
Assume you do go ahead and give a "yes sir" answer, against your own best judgement. Now assume that $5 million later, something blows up. When the finger pointing starts to happen (and it WILL happen), the phrase "the consultant said it was ok" will probably be uttered, and often.
Should the lawyers get ahold of this, you would be minced meat. ESPECIALLY if they find out that you thought your advice was wrong.
Stick to your guns, if you disagree with something the boss is doing, then say so (and preferably document both your disagreement and the reasoning). If you loose the account, so be it. Would you rather be sued for malpractice?
Ron Gage - Westland, MI
I was hired by the build manager of a certain PDA manufacturer (think "* of your hand") to automate their build processes. He told me they had these amazing build scripts, but the build engineers required hours to sit and run the script. (!) Therefore they needed some kind of automation server to run the scripts... Yeah, right. When I poked holes in his theory, he claimed that this is what SW Eng wanted, so I should forgive him if he got it wrong. As stupid as he turned out to be, I was just as stupid for thinking "I'll meet the engineers, find out what they really want, and everyone will be happy." I took the job. What a moe!
Long story short: my boss didn't know squat about software (he thought you could run Mac programs on a Windows box) and he hired friends from previous jobs to be build engineers (all they could do was memorize steps given them by the developers). His lauded build scripts simply ran variations of the builds (different langs, debug/release, etc.). It was a big deal to these momos because they hadn't even had that level of automation before. Processing a request, checking out the code, verifying the build, copying built files to the network, and sending emails were all done manually; yet my boss continued to believe the scripts were wonders of automation and if I simply built his nonsense server (and other crackpot schemes he came up with later), SW Eng would finally take him seriously. I wrote memos, made presentations, drew pretty pictures, and tried to enlist the help of people I thought he might respect, but ultimately I stayed too long, the economy changed, I no longer found good job leads, and I got laid off.
I'm working now, but the thing that irks me, and hurt me, is that my boss bad-mouthed me to my co-workers, apparently over my attempts to pull his head out of his ass. Despite what I say happened, I got the reputation for being trouble and refusing to obey orders. When I left, I had few friends, no references, and little to show for the time I spent there.
My point (and I do have one) is that questioning or pushing won't get you very far. Sooner or later, they'll remember that they have all the cards and you're just some guy on a contract. Your question suggests you're not happy with your company's decisions. If you can get around to being happy, more power to ya. But if it's going to continue to bother you, get out and do it sooner rather than later. You have to remember that 1) not all jobs are good for you, and 2) sometimes people really are crazy and if you're in the line of fire, it may hurt you long term.
I could tell you, but then I'd have to bill you.
As a consultant/web developer I get clients always choosing the wrong way they would like something done. Almost to the point where I don't really want to put my name on the product. Granted the customer is always right, but we do have to attempt to enlighten them.
Communicating the Pros & Cons in non-geek-speak is a good start, but sometimes whey have their mind made up. Cost is usually the biggest factor they use to pick one development path over another.
The way I try to correct them is by trying to let them know that they will save money in the long run, or have a more reliable/useable/customisable product.
---
I tried to get first post. How did I go?
I was working in something similar and the "computer guy" in the office wanted things done in a certian way. (Now if he was worth anything why am I here? And why is he running AOL over their xDSL?!) but after trying to get the point across that what they were asking for was basicly to get raped online and not getting anywhere I shrugged and did what they wanted. "Customers always right" hahahah NO. A few weeks later they were mad as hell demanding that I fix this mess (after all I was the "expert" in spite of the fact I was forced to do what this idiot "in office computer guy" demanded) and was told if I did not I would be "held responsible for losses incurred". I took that as a law suit.
From that point on I just walk if in a situation similar and have re written the terms of agreement they have to sign. Not that will prevent a suit from being filed but it might help.
Sometimes you can't reason with people. Money or no money, do your job right. In the short term you might loose a client or 2 but in the long term you will be better off and your reputation will shine like a knight in armor. That is your best sales pitch as well, a fab reputation and word of mouth.
Right, wrong, irrelevent. What is, is.
To me this is the point. When my employer does something I disagree with this is what I do. First I explain exactly why I think it is a bad idea and that in the long run we'd be better off doing it some other way. Then once the decision making phase is over I run with whatever my employer decides, and do my best to make it work. You see it's his money, but more than that it's his priorities, and I am not always aware of the overall scheme of things. The same is true when you're doing consulting work you should always express your misgivings, but then (assuming it's legal and ethical) do your best to make their bad idea work.
A contractor does as there told, and in the absence of being told anything, may do nothing. (Although this would be considered poor even for a contractor). A contracter is contracted to perform a service, code for example. Given a set of specifications, they code well, debug well and implement well.
A consultant is a value add. They are a contractor plus, they provide additional expertise and insight gained from experience that is sometimes difficult to find within a company. Many companies that hire consultants have an in-house staff consisting of "big fish in a small pond." This is not demeaning as it sounds. Consider a tennis player who only plays high school students. With few exceptions the best they will become are as good as their experience. Development is the same way. I tell people when I leave, their people will know as much about what I bring as I can pass along.
This was all leading into the question. If you are unable to explain the reason to take an action, or to select a different path, one of several things may be occurring.
I am not explaining the options well. An issue for you to deal with and not your client. My inability to explain a situation sufficiently to be convincing, is my issue not theirs.
I am working against "it cannot be done this way" mentality. On the last two sites I worked at, I was told they could not, or specifically, it was impossible to do what I was asking. As it turned out, it was impossible because they had never done it and did not know how. In two situations at the last client, I was able to remove a full time manual process (30+ hours per week) by automating it in less than one week. A miracle? No. I knew it was possible.
You don't know the politics. A good read for Developers and Leaders alike is Rapid Application Development - Taming wild software Schedules. It gives insight into this aspect. In many cases a project cannot get approval to do it "right", but can get approval to "do it" then "do it right" in support. Logical from the outside? No, but understandable.
You are missing something and they may not want to tell you. I have seen projects were they were approved to the dollar. If it went over, even by a few hundred dollars, it was killed. Even if it lost thousands. The logic(?) being that it is better to kill a project that is over budget immediately, rather than let it continue on. This may be the case or it may simply be you do not know all the players, policy, and interfaces involved.
In some of these cases you can keep trying. Hoping to add value. The attempt, given it has good business sense behind it, will keep that client happy, even when they do not choose your ideas. At least they see new ones coming and maybe the next one will hit.
Tell them you think its a bad idea when you recieve a bad order, but if they say "do it anyways" do it anyways. Tell them politely, make sure you have your ducks in a row, and they should take it well- Especially if you have a better idea, even if they think their way is best, you will often gain respect for being a more active worker, who is sincerely looking out for their best interests.
Also, if you tell them something is a bad idea, then later it bites them in the ass, they may remember you
When I was consulting, I would never flat out say no, after all the client IS paying me money and should be in control over their decisions.
However, if something seems overly expensive, resource intensive, or whatever you should say something, but not just no. I would come up with several solutions and presen them to the client. Nine times out of ten, the client would come to the correct decision on their own. Of course, I'd ask for more information from the client as well, because there may be factors I haven't though of.
I've also found that clients will trust you once you've proven you have their best interests in mind.
Oops. Accidentally hit submit, I hate laptop keyboards...
Anyways, if you tell them something is a bad idea, and later it bites them in the ass, they may remember you.
One of the executives may say:
"Sir, we had a consultant a few months ago, he did some good work- Also, he saw this coming. Perhaps we should bring him back on to help us get out of this?"
Company President replies:
"Mr Jones, call that consultant. You can spend double the normal per consultant budget to get him in, we need this fixed NOW."
If it's in the scope of your contract [I'll assume that it is.] Then it sounds like a policy/direction change of the project. If you were paid for consulting and they didn't ask your opinion [again, your fearful to speak up] on the proposed changes, then no matter the title, your a contractor, not a consultant! They just want a warm body for the chair, not a business committment.
Just from the fact you have to ask, they don't want your input. If you speak up, you'll just cause trouble. If you're right, but do what they ask anyway, it's still your fault. You're the contractor! You are there as a body to blame!
Personally, my boss likes to do the same thing. He brings in new people as "contractors" expecting them to make big improvements, then second-guesses every suggestion and expects the status-quo. Ask once, then do what they say. They might be up to listening, but if they brought you on to value your opinion, they should have outright asked you up front. Try not to make waves, then get the 1134 out of the way!
If you are, then, as a consultant, you want to work with people who value your opinion. They might not always do everything you recommend, but, on the other hand, they'll hold it against you if you let them crash and burn. People pay consultants for what they know. You can always offer your best opinion, preferably in writing, and preferably with more than one viable option. Then take payment for what you're asked to do.
It's only funny until someone gets hurt. Then, it's hilarious.
The company I work for hired a consultant to help resolve issues that they were having with a piece of software. I went and talked with her about the problem, off to the side. I asked her straight up, is the problem with the software or with the person who was in charge of the software, and said it was the person. I asked, "are you going to say anything?" She said "no because noone wants to here that!" So after shelling out 40K for this contractor, she was going to tip-toe around the real problem for why she was there, so that managment would not have to hear that someone made a dumb decision in who they had hired.
So even when a consultant/contractor is paid for an opinion, there is a good chance that are not going to tell the whole truth because they don't want to cut themselves off from potential business.
Companies that are too sensitive to take criticism are not going to be doing any real business with consultants anyways. They are looking for an opinion that matches the answer that they have come up with. Customers who will listen to your opinion without getting angry about it are more likely to come back. Someone who can respect honesty will value your opinion more so than someone who is just looking for you to say "everything is just peachy the way things are!"
Issues within your purview of expertise, or that seriously affect your area are ones you should comment upon. In any case, your response should be well thought out and reasoned. I'm a business consultant myself. I sometimes feel and think things very strongly. However, I am always very careful to make sure everyone knows what my analytical conclusions are and what my feels are. Something close to the scientific method drives my engagement conclusions. I would sugest that if your going to go outside what the client knows your good at, then what you tell them needs to be a data driven conclusion that others would be able to draw. Further, attacking a idea is far harder to pull off than sugesting that there is a better solution out there. Finally, if your a consultant then you should know it all depends. Without specific details and situational knowledge who knows what you should do. This is just some of my engement framework I've given.
Jees, anyone would think most of the posters want to either be wrapped in cotton wool, or wrap the client in cotton wool, or both. Pull your head out people.
I've been a consultant for many years. I tell the client straight up, before the contract is signed - "I'm not a yes man. If you want one, go elsewhere. I fix problems. That's why I'm here, you have a problem you want fixed. If you didn't I would not be sitting here. I'll do everything in my power to fix the problem. There may be times when you don't like my fixes. If you are not happy with this now, do not sign the contract. This contract will end in one of 3 ways. 1 - You fire me. 2 - I quit. 3 - The problems are completely fixed. I've never had option 3 come to pass..."
As a consultant, if you are constantly CYA, and not telling the client what they need to know, you're in the wrong profession, or doing the job wrong. Yes, sometimes the company wants a scapegoat. I've been in situations like that. That's why my pay check is as large as it is. In every case except the first, I knew what I was getting myself into. Remember, it ends one of 3 ways....
Enjoy,
Michael.
As a consultant, are you hired for your expertise, or your obedience?
:)
If the former, then I think you have a clear duty to inform the customer when they make a decision that runs counter to your expert opinion. The force with which you should make this objection will vary substantially based on your relationship with the customer and the severity of the potential consequences to your customer and to you. Maybe you should go to the mat to stop them from hurting themselves, or maybe you don't really want them as a client anymore. [shrug]
On the other hand, if you hire yourself out for your blind obedience, well... I hope you won't ever be working for me.
With reasonable men I will reason; with humane men I will plead; but to tyrants I will give no quarter. -- William Lloyd
When I'm in a situation where a key decision has to be made that can have severe potential repercussions (as in "Oh My God We're Fucked"), and my opinion is being ignored or my recommendations are not being utilized, I write up a quick memo and take it to my immediate superior and get him to sign it as having been received.
In the memo, I explain the situation, my recommendations, and my rationalle, my fears, and get it on the record what my thoughts are.
This is a blatently obvious Cover Your Ass and "Don't Make Me The ScapeGoat" move, and people don't take it lightly. You can almost hear them think "what does he know that I don't?" It generally causes them to review the situation, and in probably 80% of the times I've done it (20 or so times so far), they have modified their original decisions.
Once that Memo's been signed and my position is on the record, and if they still want it done their way, I will gladly do it, as that is my job... to do what they want (illegalities aside, of course).
I'm a contractor/man-whore, whatever you want to call it, and it is not my place to enforce my opinions on the customer. My job is to supply them with the benefits of my experience and expertise, and to help them make informed decisions.
At the end of the day, it is THEIR decision to make.
$0.02 (CDN)
I can't think for myself. Would a bunch of 15 years old answer my professional question for me?
Thanks.
If Citrix is being used only to administer servers by one or two users, the differences between Citrix and Terminal Server are not worth even 2 hours of your time and your customers' time.
I use this for an interview question now when looking for new employees.
Back when I was consulting, I worked for a company A that held large numbers of personal records for another company B. The company B wanted to implement a sign-on that wasn't secure. A brute force attach could gain entry to the entire company's records.
Despite objections of Company B, Company A insisted on the insecure sign-on. So company B, where I was a consultant, implemented it. (Later Company A's security review people rejected it, so it never went on-line.)
The question that came out of it, if you were a consultant and ordered to implement something insecure, would you? If I deliver the question correctly, most of the people I interview say they would do as I ask. Even if it would expose the records of hundreds of thousands of people.
Faced with losing your job, or the possibility of compromising other peoples records, most people choose the job.
In the case of this job, I chose to hit the road and never regretted it.
I thought the whole idea of a consultant was to give the customer information and recommendations. And then let the customer make the decision what they wanted to do--good or bad.
I run into that problem on a daily if not hourly basis. What a consultant needs to do is suggest/recommend the right thing, when the customer pushes back (and it is obvious that they will not do the right thing) then go with the best solution that the customer will accept. If you recommend the right thing, then they tell you no, and they you come up with a solution that they accept you have done what you can. If they come back at you later, you can show them that you recommended the right thing and they turned it down, and your next recommendation was the best solution that was acceptable by them.
It is an art not a science.
Good Luck!
Scott
janitor
sdn website family
email: scott at sboss dot net
I figure once I'm in the door at a client, I have to do everything in my power to help their business. If they're not open to suggestions and they've asked me to do something suboptimal but "good enough", I'll just do it. But if they need to hear something I'll risk my job to tell them the truth. I think that's the value of a consultant. I'm more used to getting another job than most regular employees, so I can afford to be the messenger that gets shot.
That doesn't come up often though; I've got to be pretty sure of myself before I raise a stink.
The question shouldn't be "When should a consultant question decisions", it should be "When should a consultant stop questioning a decision".
It's your duty to a customer to fight questionable technical decisions. However, once all the data has been examined, if the customer still insists on a poor course of action, you're left with 3 options:
1. Yes Sir!
2. I quit!
3. Do it the right way and don't tell anyone (if possible).
The important thing, though, it to make sure the customer has all the pertinent data for a correct decision. I've had problems in the past where consultants simply said "Yes, sir" to a technically poor request (from a manager, not me!), and caused a lot of damage to a system under construction. Had they explained the situation, we might have made a better choice.
It is the professional thing to keep the customer
well informed and answers questions honestly.
A good consultant should not merely be a yes man. No matter what the customer decides, the consultant should explain clearly and honestly what the ramifications of the decision are. If the customer is seeking guidance from the consultant, and the customer doesn't guide, he is in a precarious position.
Providing knowledge is different from doing additional work. In my line of consulting, I frequently must inform the customer that what he wants or is doing is not the best course of action. I am aware of the service they requested and are paying for, but I cannot merely let things happen without ensuring that the customer is well informed.
If the customer notes any concerns and objections, proceed and finish the job, but by all means, do not play the yes person.
Present your case to parties involved, have documentation and the potential problems with doing the project incorrectly.
If they ignore your warnings, consider not engaging in the project if it going to bomb. As the consultant, you might just end up as the fall guy. If it bombs and they use you as the scapegoat you will damage your reputation, causing you to lose work (It is after all a small "IT" world, and bad news does travel beyond the companies four walls)
If you end up engaging in the project be sure to document your concerns, document issues as the come up, so you have something to present when the project termination meeting occurs.
This is one of those things that can get you on both sides. First, the customer gets you by asking, "Why didn't you tell me this was a bad idea?" Second, the customer gets you by saying, "Look, this is the way we do it, we've always done it, and we aren't changing." Sometimes you get both responses from the same customer.
I can't speak for contract programming, but in networking I used to consult in a company that preferred Linux/NetWare solutions on the server side with a Windows NT/2000 desktop--this was a little more than a year ago. We understood that each platform had pros and cons and the systems proposed varied widely depending upon the needs of the customer--we even recommended Windows only environments sometimes.
However, we lost one customer because we didn't bid a Windows 2000 server solution and argued against it because it was simply not in their best interest to use 2000 file services. They got a bid from another company that bid a 2000 solution and gave the bid and the rest of their business to them. In the end, we had to reevaluate how we refused a customer's desires and when we were really willing to turn them down--this is a 3 man shop, so loss of customers who had us on retainer was a serious consequence.
I'd say making sure the client knows your mind is probably good. But, knowing that they make all the decisions is priority. As with any form of persuasion, the best is the kind that gives them the facts and makes the persuadee think he made the decision himself.
Anyway, walk a fine line. Hopefully, if you're good enough, you can avoid and/or afford to turn down the really easy-to-tick-off customers that are never happy.
Cheers,
Sterling
I'm not going to name it (Hint Hint: used to be part of a famous and government killed accounting company)... but from my experience most consultants just have an air (the sound and look) of credibility - not actual knowledge that will actually help the company's bottom line or efficiency. From what I've seen, consultants are actually the ones causing the problems - pushing technological "solutions" (mostly Microsoft crap) that they themselves don't actually understand aside from the marketing hype. I've seen open source solutions (that will actually have an impact on the bottom line) push aside no matter how reliable and strong on performance, just because joe six pack has never heard of it... I think this stems mostly from our company's hiring and placement practices. The bulk of our consultants were not technical majors in college (EE, CS, CompE, etc...). Our work force is mostly composed of marketing, business, and economics majors. While this does make sense for non-technology based consulting, unfortunately many of these consultants are placed in IT related positions for which they neither have the experience or formal training for... Oh yeah, get this: do you know these companies come up with the quantitative "savings" they come up with for the company? Consultant: "We have improved this imaginary thing and this imaginery thing." (Translation: We don't really keep track of anything quantitatively, because we're too busy gossiping in the office - so we pulled all of this bullshit out of our ass. You will believe us because we work for a famous big company, and we look like we know our shit.) Person Who Hired Consulting Company: "Based on what you just told us, we believe this is worth 10 Gagillion dollars of savings to our company" (Translation: Holy shit, we paid you guys seven figures to come up with this stupid bullshit! Oh man I have to come up with some even better bullshit so I don't get Fired! Look calm...)
Tying professionalism and hourly rates together almost negates the first. For me, the first responsability of a consultant is providing advice. Sometimes, that advise will conflict with other peoples opinion. Once in a while, it will totally agravate your current employer. But in my opinion it is the duty of a consultant to put forward the RIGHT answers as he sees it.
One of the benefits of being a consultant is not being tied to the politics of an organisation. You come in, do your thing, and you leave. Stepping on toes isn't anywhere near as dangerous as it is in a full-time role - 3 months is hardly a career.
I'm a consultant myself, and I actually make use of this regularly. Once in a while I have to shoot down some full-time employees idea, but I make sure to do so in such a way as to make it obvious that I'm only interested in the solution, not the politics. Usually, if I present my case properly it is accepted.
Of course, there will always be times when you are over-ruled, and forced to implement a bad solution. Do you do it? Of course you do - you are under contract to deliver the services requested by your employer. But first you make sure that it is clear that you don't agree.
Failing to accept that you won't always be allowed to do what you personally think is best is a fatal flaw in any employee. None of us will have the right answer every time. Every one of us will make bad or stupid choices once in a while. Knowing how to present your answer, and yield when necessary will help you progress and develop. It will also help ensure you don't just get fired on the spot.
Lurgen.
http://www.lurgen.com/
It sure sounds like you're asking us to define your personality for you. Grow a pair, make a decision, and live with it.
it is the consultants job to give consul to the person who hired him/her and that means that he/she can say they don't like their decisions.
For The Best Jazz/Hip-hop fusion > COlD DUCK
Well personally, if I'm hired as a consultant, and asked to do something really stupid for them, I'll advise them that it's a really stupid idea, explain why (in detail if necessary), and if you can't get them to understand that it's a very very poor idea, then do it anyways..
:)
If it's that bad for them, they'll be calling you soon enough to make a different fix.
I do recommend documenting the incident in some way.. Work logs, or even writing it on the invoice that they sign is usually a good way to get it done.
Consider when you take your car in for repairs. They say "You need $1000 worth of extra work", even though you don't.. They'll write it on the invoice anyways, and when you go rolling out of there without the work done, they can't say they didn't advise you of it.
You weren't clear to the scenerio of what the customer was asking for..
Like, if someone says "I want the SQL server set up with the password of password, and make it clear to everyone that the password is "password"", you calmly and clearly explain that anyone on the net who wants to access (or destroy) their data can do it.. Note it down somewhere that you strongly advised them against it.
Once they're very clear on it, tell them, "A hacker in Russia by the name of Vladamier will be stealing all of the credit card numbers in your database tonight, and then erasing all of your data."
Put it in simple words they can understand like that.
If they still insist, do the work. Get paid (make sure the check clears). Wait a few weeks. Then log in through another server (preferably in China. hehe), and drop everything from their database.
They may sue you. But you warned them, and strongly suggested against it. It's their company and their decision..
Soon enough, some script kiddie will find their server, and try the password 'password', and voila, their data is stolen, and the databases wiped out.
They may remember that you warned them against it, and ask you to come fix it now..
I've done work I didn't particularly like doing, and strongly advised the customers against. But, it was exactly what they wanted, so they got it.. Personally, I don't want to set up another Microsoft server for anyone, but I'd bet you I'll do it again before I die.. The difference between what I recommend, and what the customer wants.
Serious? Seriousness is well above my pay grade.
Short and sweet. As a _professional_ consultant, your client's best interests ARE your goals. You will fight eloquent, long, hard and do _everything_ possible to ensure your clients the best possible outcome. Ass kissing [implicitly to the point of inaccuracy] is to fail professionally.
Anyone who's been a real consultant for 10 years or more is welcome to reply. Anyone who hasn't lasted 10 years or more is not qualified to. If you haven't walked the walk, shut up.
Before giving an answer to your client, think about the reaction it will receive. Ask yourself a few questions.
Is your client open minded?
Is your client's boss open minded?
Does your client's organization respond well to change?
Who's feelings will be hurt when you express your opinion?
Are they in a position to screw you?
Are they the type of person that will try to screw you?
I have seen a situiation where another consultant gave well supported technical opinion that went against the advice of the client's guru and lead to several major organizational changes. Six months later, the project was successfully completed, the consultant's contract was not renewed, and the manager that hired the consultant was laid off.
I'm not a consultant (not professionally at least) but I have done computer work for those not in-the-know before. Let them know. Ethically and Financially it is the right thing to do. You don't have to outright criticize them. If you are a consultant, you should have at least some talking skills. You need to point it out in a non-insulting way. As long as you have made someone aware of it, you are blameless after that. Remember, your reputation rides on their satisfaction.
-- Having a Creationist Museum is like having an Atheist place of worship
Aye. From my personal experience, make sure you make a really big hoo-hah and generate lots of black n white when you tell your clients that what they are doing is Wrong(tm). That way if they choose not to listen to your professional advice and when things screw up, just throw them your paper predicting the problem they are facing now. The same paper which you written 3 months before the project was even implemented and cced to all the departmental heads and the CTO. They will hopefully learn from their experience and listen to you more next time.
As a consultant myself, I make sure that the people I report to directly get used to clear, concise, detailed communication (this is not a contradiction). I make sure that I investigate the pros and cons of both my suggested solution and any solutions that the customer suggests -- but once the customer has selected a solution, it is my job to make every (contracted) effort to ensure the success of their chosen solution. Especially if it differs with the one I would have chosen. The customer must call the shots. In writing.
And no matter what, never, ever say to the customer "I told you so" in so many words. You must make it a "how can we fix this situation we are in?"
Customers do aparrently stupid things for reasons which are unknown to us -- one customer I had balked at spending $5K to have a particular problem solved, but had no problem paying me $3K a week for three months band-aiding things. I discovered later that the company in question had a hard freeze on capital spending, but since I was "overhead" it was better on the balance sheet to keep me around.
you should read everything on the internet as if it had "but I'm probably talking out of my ass" appended to it.
Basically, if they're paying the bill, you have a responsibility to deliver what they want (if possible). And if you can't or won't, you have a responsibility to tell them.
'What they want' is the question. They may want opinions, or they may simply want hands typing. It's okay to ask. And if you don't like the answer, then you can decide how important 'being right' is to you. Keep in mind that 'Right' is often relative. And sometimes it takes people time to come around, longer if they've been forced into a corner.
I've been lucky that most of my clients have wanted my opinions and experience along with actual code. They haven't always listened and it has often been frustrating. But even though I may know certain aspects of 3D optimization (in my case) better than them, they know their business and their overall needs better than me. In many cases, I was probably right about 'what we should do' and they were undoubtedly more right about 'what they could afford to do.' It's their company, afterall.
Sorry if that isn't as specific as possible, but the thing I've learned after 10 years is that every case is different and flexibility is key.
The problem would be if you didn't give your opinion and it would have saved them from a big mistake. Then you got problems.
So always give your opinion - clear, consice, and tactfully. Answer questions. Then sit back and wait for instructions.
"Stop whining!" - Arnold, as Mr. Kimble
I have found that when i go into a contract/consultant situation, I almost always have some differing opinions with management. Sometimes voicing those opinions are welcome, sometimes it isn't. Everytime it has been welcome, I have been aware that it was welcome. In those cases I have been an ad hoc advisor to the project, not just a developer implementing a clear path. Occasionally I have voiced my opinion when I wasn't sure if it was welcome, and, (guess what?) it wasn't. In one case it even resulted in my quick, quiet dismissal.
Geeks (like myself to some extent) are generally bright and very opinionated. Use that brightness to realize that there is a time for putting in that extra effort and there is a time for simply just shutting up, working and drinking after work.
-Sean
If you take a well written requirements specification, which outlines the business, technical, financial, training, integration, etc requirements of a system and show it to ten tekkies, my experience is that you'll get pretty similar solution designs from all ten.
Arguments about approach only seem to happen in my clients when the requirements aren't defined properly.
Therefore when I find myself in a situation where I'm seeing client recommendations that don't make sense, I always offer to document their requirements for them. Most stakeholders actively want to assist in this process, and in doing so I find that they talk themselves out of the bad ideas and into good ones.
So I'm not telling the customer they're wrong, I'm subtley showing them a laundry list of things they may not have considered - psychologically more friendly.
You can never sa "no." You can only say "yes," then lead them to the conclusion that really isn't the best option.
Presenting options, explaining the risks, and showing why something isn't the best way are certainly valid (and expected) actions. If done appropriately and tactfully, it is certainly worth doing. If the person telling you to do this significantly outranks you (i.e. their CIO, you would match do a junior level), take it to your leadership.
Be sure to listen to what you are being told before acting (and even after). You may find that, while it doesn't make sense in the abstract, but, in the context of the clients business, it may make more sense (for technical, legal, political, or financial reasons).
Also, make sure that whatever opinion you are going forward with has the client in mind. For instance, don't push a certain tool just because you personally favor it.
If they still insist on whatever it is you have a problem with, you have two choices: just do it, or quit.
No matter what you do, remember the one rule of consulting:
If your client weren't crazy, dumb, annoying, immature and/or frustrating they wouldn't need you.
Having said that, think about what the goals of your direct contact at the company are, and do whatever it takes to meet those goals, even if doing so would go against your better judgment.
When punk rock is outlawed, only outlaws will have punk rock.
As someone with technical expertise in a small company, I find that one cannot always trust their consultants. Often enough, the consultants have another reason for providing the advice that they do. Sometimes it has to deal with special deals that they get from various vendors, as well as their own bias.
In this day and age, it's not the easiest thing to do, finding a completely unbiased consultant. There are consultants that feel an MS solution would be best, and some that would push for the Unix solution. Their own personal preferences can often taint the opinion that they provide.
A consultant is not always paid to provide a final decision, a consultant is very often hired to provide advice. So should my company hire a consultant, and we don't necessarily prefer the decision that consultant makes, we'll pay her/him for their time, and go with the solution we find to be better. We know our company better then they do most often, and as well know what we want.
After all is said and done, it's not the consultant's job to make the final decision unless that is what the company was looking for. I most often find issue when a consultant gets insistant and sometimes outright rude when stating the way they feel a company should go. And I've both rejected plenty of bad advice from consultants, as well as fought through fixing the solutions that came about due to accepted bad advice.
After reading the story above, there are a few things that come to mind that we do where I am currently working:
:)
1. Maintain a Risk Register. Any project manager worth there salt would want to know what the risks, how to mitigate those risks and what they are going to cost. If you are being asked to cut corners, inform the PM to add your concerns to the register. The project is doomed to failure if the risks arn't known or mitigated.
2. Most consultants would have a formal reporting mechanism to the client, a client progress meeting for example. If you have concerns a very powerful way of communicating those concerns is to formally report it via the client progress meeting. If the Project / Programme manager is not taking your risk on board, the project sponsor and business should be in a position to bring pressure to bear and deal with the issue. I myself have been in several situations where problems have come to light, that we highlighted on the client progress report many months earlier and effectively covered ourselves by highlighting the risk.
3. If you are consulting, there is an air of professionalism to highlighting issues as you see them. Ultimately in the end you will get a good reputation and be offered more work. I have seen this happen in many places. Before anyone chips in with scope creep and people going out of business, if you are silly enough to bid for work without including sufficient contingency both in time and price to cover unforseen issues and not fully understanding the problem, then you deserve to lose money.
4. Microsoft, yep I know most of you hate them, but they have a very effective programme management framework called MSF. One of the features of it is a process called War Room. In this, All functional and technical leads, Business Analysts, Management and sometimes developers come together and quickly discuss what they are doing and the issues they are having. This is an excellent way for a consultant, or anybody in fact, to highlight issues that may not be making up to management and in many cases come up with a solution.
I could go on for hours but my fingers are starting to hurt
Terminal services are not free. You get 90 days to install a terminal services licensing server... which has to talk to the Microsoft Clearinghouse. Perhaps you should look at the Terminal Services Licensing FAQ, it looks like an unnecessary headache to me.
I have been a consultant for 6 years now and have run into many of these situations. Best thing you can do is make an alternate proposal but using their embedded vendors and their solutions available to them. Most companies will be open to ideas but they have reasons to go the route they are moving in. Take Micro$ofts licencing 6 and the atmosphere the company is in. They have to make a proposal with an intended solution. That is not easy in today's market place.
That said, give them a solution that works for them and within their budjet and most times you will see they will move in that direction. Sometimes though, you will have to suck it up and go with the wrong solution. Just make sure your documentation is up to par and give them your phone number so when they realize they went the wrong way, you can make somemore money by helping them to the right way.
HTH
...you get the moon instead. Run, run as fast as you can away from Citrix. They work very much like IBM. The Citrix system is setup such that they manage your setup and control the show, you are left with the bill, and what a large bill it is indeed. They even have people they send on site for making changes. If you want to be in control, if you want to manage your own network setup and configuration, stay away from Citrix.
These were my opinions. Take them as you please.
+2 cents contributed.
This is unfortunately true- I usually tell them yes but then make them fully aware of all the negatives that go along with saying yes.
If after that if they say yes- they get it.
"Patriotism is supporting your country all the time, and your government when it deserves it." Mark Twain.
If a consultant is asked to take steps that he/she believes are going to impact negatively then the consultant should give clear _written advice suggesting why the steps should not be taken. If the company still persists then it's up to the consultant to consider if they should continue working there. Being desperate for work shouldn't immediately bring a professional to do desperate things.
Analytic & algebraic topology of locally Euclidean meterization of infinitely differentiable Riemmanian manifold
Disclaimer: I am not a lawyer, the above is not legal advice. Under some of the above scenarios, you should seriously consider retaining a lawyer
----
Open mind, insert foot.
I read through some of the comments here, and thought I'd put in my $0.02....
First off, you have your integrity. If you see something wrong, you have a duty, more than your job, to mention it. Measure the response.
Personally, ethics is a very important part of my job. I don't always win, and sometimes, I'm thought of as a troublemaker.
That's not what I'm doing, though. I feel that whatever job you do, you should do it to the best of your ability....
Abe Lincoln said it best... "Whatever you are, Be good at it..." (I paraphrase.)
Be responsible, be good, and be right. In the same breath, also recognize when you are wrong.
Don't be afraid to be wrong, and *don't afraid to take a chance to be right*. Nothing we do is certain.
If we all give in and compromise our ethics, then what have we become? Worthless, in my humble opinion.
Our country is built on people who take chances. Sometimes they succeed and sometimes they don't.... But they never know until they try.
"Never give up, Never surrender!" -- to quote Galaxy Quest. This is not only a silly saying, but really a mantra that we all should aspire to.
Otherwise, what are you trying to accomplish? Money? It's simply pretty paper. It will not last... And in the end you will be left empty, void and dead.
Behave like individuals, and work well with others in teams.
Okay, I'll step off my soapbox now. I hope you
get what I'm trying to say...
Chris
Nothing in this life is certain, except for truth.
In my experience both as contract programmer and consultant it is no different in either case in that..
If the project fails due to poor decision making in the managment layer over coding choices you will loose the project or temp job anyway..
Its better in either case to hold a closed door meeting explaining everything then close with I reepects' management's final decison on this but will not return to the gig because I cannopt support the decision..
Don't Tread on OpenSource
Let me lay out the scenario I was in, and then give you my advice:
I was consulting for a medium sized ISP on the East Coast, managing their Unix servers, helping with their Sybase system, as well as keeping their web presence up. One day, the guy in charge of the HTML development decided that they wanted to stream audio and video from the site (it was associated with a newspaper, and had a radio station as a client). Well, they came up with an inflated number of streams that would need to be served simultaneously, and thus they wanted these expensive SGI boxes that were tops in serving streamin media.
I did an analysis on their presentation, came up with more realistic numbers, and showed the manager that using a more mundane Unix server (a Sun box), they could easily get two Sun boxes for the price of one SGI box, and feed the streams that way. In addition, we had three flavors of Unix in house, and adding a fourth flavor would be exponentially harder to support.
Manager took my advice, chose to go with the HTML guy's choice, and I got the grand job of getting these SGI boxes going. Well, I did, I got them going and kept them going. They never got the number of subscribers that they projected, and the project eventually got shut down.
In short, let them know your points, but let them know that you're flexible and willing to work with them in any way that they want.
That was funny...
A good consultant does the his best work regardless of the price. I for one, refuse to throttle my skills back to the level of money I am being paid. On all jobs at all times I do my best work. Anything less and not only have cheated the customer, but I have cheated myself. Anything less and I am typical arrogant fark that feels the 'owes' me something.
This really works for me.
I trash talk all the developers to the boss and berate the geeks until they are chump change in my pockets. Pasty looking dorks are easy pushovers. I then claim credit for key components of their work and ideas. Since Im kissing the boss'es ass and profess like im putting out fires, the boss always believe me.
I move around a lot because it gives the impression that im on the go. The truth is that Im at the vending machines, outside smoking, or taking a nap in good old stall number 2. I actually only work for 3 hours a week.
I love being a consultant. I just bounce from company to company like that, collecting various office supplies. The boss is always happy, and I have a ton of work lined up from my excellent feedback.
However, a fortune cookie from the BSD Games Fortune Cookie files also goes:
The Consultant's Curse:
Qu'on me donne six lignes écrites de la main du plus honnête homme, j'y trouverai de quoi le faire pendre.
As a consultant, you're being paid to apply your knowledge and expertise to help your client. You're not being paid to blow sunshine up some PHB's ass or otherwise tell him/her what they want to hear.
You should always ask questions, and ESPECIALLY if something gets your spider sense tingling and you feel like you might be the designated fall-taking chump in some situation where said PHB's might be likely to do some CYA moves.
~Philly
You know... its good to be careful when dealing with upstarts... some of them upstarts from yesteryear you might recall...
:) We're all about the money, they're all about staying alive... who do you think's gonna win that one?
:)
Dell,
Microsoft,
Apple...
AOL?
You remember them right? I hear they pay good money these days. It probably would have been good to have gotten on their good sides when they started out... be they good, evil or downright draconian and satanic in their practices... being in good with Microsoft will probably have paid good money period... especially with possible return business... And whether dells suck or they rock for you, I'm sure being on their good side and doing a great job when they started out and first needed to expand woulda put you on thier top notch list for later.
"preferred contractor" I believe is the term used in the government. And I would know, I've done some work in construction for the gov't. Preferred contractors ALWAYS get the bids, unless an upstart can show absolutely better work for significantly less. Preferred contractors generally get that status doing ONE or two good major jobs or several smaller jobs. Once on that list you're guaranteed return work and even get return calls about upcoming jobs you might be able to perform. Even though our first contract with them was roughly a 10k project (and in construction for the gov't I'm sure you know 10k projects usually involve minute profits, barely worth the markup).
Thus do NOT dis those little jobs, do them right and you'll get return work that might be more to your caliber in skills and pay.
I've probably not done as much IT consulting as you, but I'm sure with your attitude it might explain why they're farming work to India. Even if those people's best often sucks, most of them try, so they can keep their jobs. Plus if the average programmer there is half as good as my mentor was during high school, I'd say we're doomed to lose all our jobs to be farmed out to India
-DaedalusHKX
PS - yep, I'm an unemployed programmer/networking geek... and guess what? I do office and construction work for a living... at least I'm in damn good shape thanks to lugging all that heavy crap around... how many OTHER geeks can claim that
" What luck for rulers that men do not think" - Adolf Hitler
You are correct that a "contractor" is typically hired to do a specific task, while a "consultant" is expected to provide expertise and guidance. However, the difference between those two is mostly in the mind of the one doing the work.
The general tone of the original article strikes me as argumentative and defensive. It is a consultant's job to offer options, advice, and approaches the client may not have considered. That information should not be presented as questioning the decisions of client management, but as an opportunity for the client to do things differently than they had planned.
When you are presenting those alternatives, it is critical that you present not only your preferred solution, but options which you might not like. Provide the client management with the pros and cons of different approaches, and let them do their job: making the final decision.
Remember that as a consultant you often do not have detailed information about enterprise licenses the client may have in place, knowledge of the corporate skillset, or even awareness of internal corporate directives.
As an example of why you should leave the client to make the final decision, consider a favourite Slashdot topic: Linux vs. Microsoft solutions. While you might "know" that Linux is a more cost-effective solution than one from Microsoft, the client might also be considering existing skillsets of the internal staff, existing contracts with data center support providers, etc. It is far from unusual for the retraining costs for internal staff and the costs of renegotiating third-party support contracts to absolutely dwarf the cost savings on the software itself.
Your job as a consultant is to advise, not dictate. If you have a good relationship with the client management, you might tactfully ask why they chose the solution they did, but you should not undercut their authority -- not if you want a long-term business relationship.
I do not fail; I succeed at finding out what does not work.
I am hired to do a task, questions arise regarding related matters, I study the business and the question, I give them an educated decision, they decide that it is their company and they make the decisions and go with whatever thing they were already planning on.
sometimes to serious detriment, sometimes I just shake my head in wonder...
The truth doesn't care what I think.
Right now I'm a consultant, and my main (and pretty much only) client is a company writing financial software. They for the most part leave all the technical decisions to the software people (which means us), and that's alright. We build the servers, configure them, install them, write the code, maintain them, and really, so long as everything works they couldn't give a flying rat's ass how it was all put together.
One exception is when it comes to infrastructure. This company is funded by some crusty "old guard" types, and they refuse to pay for data or services, and they make up a large enough bloc of the voting partners that they have some serious sway. Essentially we could order the moon in a box, and so long as it's a physical tangible thing, they'll approve it. Right now, however, we need data feeds (market data etc...) to be delivered to a new data center, and they are unwilling to spring for a comparably small expense (less than the cost of the hardware, and really the data are at the heart of the system, as always) because they don't feel that anything that can't be stacked in a warehouse could possibly have any value.
As a consultant, it is important to me to get the job done right, because if it backfires (even though it was on account of their poor decisions), part of the blame will land on me, and it _is_ part of my job to call bullshit when the non-technical non computer literate management is about to do something that is either ignorant or just plain catostrophicly stupid.
So I spoke up, and y'know what, they IGNORED me, so I talked to my coworkers, and my boss, and they all felt the same way, so we spoke up as a group, and they IGNORED us all! Why they hire technical consultants to ignore the advice they just payed for and do something stupid is beyond me. I would say fuck'em let them reap what they sew, but in this economy it's hard to find clients enough to keep a roof over one's head, and so I really want them to make it, but if they keep letting the Pointy Haired Bosses veto all our recommendations, they _will_ paint themselves into a corner and then we're screwed too.
I guess the sum total of it all is, who knows, you're damned if you do, and damned if you don't.
---
Play Six Pack Man. I
I believe a consultant should offer opinion even if it conflicts with client directives. A consultant has much experience in his field and can better assess any situation he was hired for than the client. It is the responsibility of the consultant to keep the client informed of issues that can adversely affect their project at hand. Ultimately the client decides what is the "correct" path for their organization - nothing personal.
Life is not full of good news and accolades. A consultants job is to voice concerns related to their profession. At times, clients will not follow advise even if you attempt to derail their counterproductive train of thought - their choice, you performed your task responsibly and in the client's full interest. Not voicing concerns to the client is not only irresponsible, it is literally sleeping on the job.
According to 99.99% of comapines that use contractors, you're just called a consultant, but in reality you're an expendable coder and probably worth less then pond scum for anything but coding . Nothing more...
This actually has been a good litmus test for me to use. In the long run, any client who isn't able to listen to the options for solving his problem, isn't worth doing business with. Besides the frustration factor, if you are hired to implement bad decisions, inevitably, when things go wrong, you will be tainted with the failure and probably won't be getting any more business with that client. So I would advise to never just say "OK we'll do it THAT way" when you really know it's wrong. Instead, this is your signal to tactfully move on to another client, one whose business you can actually help.
If I wanted to just fulfill someone's expectations in order to collect a paycheck, I'd still have a JOB!
The OP said "This tact has always been met warmly". Although that might be what he really meant, I think he actually meant to say "tactic", or perhaps "tack" (as in approach). No spelling checker will help with that one, though...
As a consultant, you are not part of the company, and you can in fact get sued for your efforts. Many places I have been at specifically brought in consultants for iffy projects, simply to be able to blame them when it goes wrong...
At least with some handwritten notes, you have a better claim that you remember exactly what happened than the guy that doesn't
I certainly have some IMHOs on this one.
First of all I am involved in a very large campus design project - and i am the outside consultant for once. I also am going up against a very entrenched corporate culture - and new management who are trying to establish themselves within the company by making big influencial desicions.
This makes for a rather volitile political environment as the entrenched culture who know exactly what they need and expect from an enterprise network - and the new managment who are looking to make some new innovations that will have major impact (hopefully good) at a low cost in order to impress the exec strata, go head-to-head to prove who has the bigger balls.
and I get to try to help them play happily together.
anyway - here is my take:
1) speak if you know that you are not going to lose the contract if you voice totally perpendicular opinions.
2) speak if you know that there is a general leaning toward looking in the direction you are trying to bring to light - although do it with a little bit more finesse and subtlety than 1.
3) speak if you know that the path being looked at is going to be utter failure - although do it with a LOT more finesse and subtlety as 1 & 2.
4) speak if you know that you have the ear of a person who has more internal influence than you do - but do it in a private meeting or lunch with that person, and make general non-polarizing "industry standard" and "best practices" type statements so as to get the person further on board to an idea shift without challenging entrenched thought directly.
basically those are the path options to look for (with many many variations on them that only you can discern from the perspective of actually dealing with the client and the job)
if you know what you are talking about - and you know that you are on a personal level with those that you work for, where you can openly oppose them without them being petty and taking it personally - then by all means make sure to tell them what they need to hear in order to make the right decision.
the thing that is tough to tell when you are a contractor is when a person who is in a position of authority feels out of their league.
THIS IS VERY VERY IMPORTANT!!!!
if you are dealing with someone who knows that they are outclassed in knowledge or skill - yet they are a decision maker for the company, it can be very very bad or good for you and everyone else.
A person like this will do one of two things:
1) they will make a decision, or develop a vision, based on faulty and incomplete information - but they will stick to this plan TO THE DEATH to make sure that they DON'T come out in the "wrong" as they are fearful of losing their position, job etc...
2) you will have a good rappoir (sp?) with them and they will attach themselves to your ideas and champion (read: parrot) them for you as they really dont have a clue wtf they are talking about - and are counting on their association with you to make them look good.
obviously behavior pattern 2 is more benefuicial to you - but more often than not - behavior pattern 1 is what you will encounter. and this is mostly within larger companies and upper middle management (director level). (although if you look at it closely you will often find that pattern two happenes between two people IN the company - and then the express pattern 1 to outside and internal entities in a joint effort to make themselves sound as though they have a more solid voice - plus it gives them someone to blame in the event of a bad deciscion)
there are ways around these people though. but it takes a little skill and understanding of the corporate mentality.
in order to succeed when faced with a challeging intellectual barrier such as the one described in behavior 1 - you need to have the following tools on your belt;
a great vocabulary - specifically a corporate/exec vocabulary
some ass kissing skills
a very tho
I asked my dad about this {and don't tell me to shut it because I'm just a stupid kid, I beg of you}, who's a consultant for Sogieti America. He just got kicked off a project he was managing at Primera Blue Cross for not doing exactly what they asked because he believed it wasn't in the best interest of the project. He said, though he'd like to have his job back as project manager, his position at Sogieti America could have been threatened if he had carried out the request and the worst, which was quite likely, had happened. I guess, consultants shouldn't compromise their knowledge to authority's whims. They've been hired for good reason, and the companies that pay them need realize that they know what they're doing.
Fortunately, most consulting companies understand that the people they're getting hired by aren't always going to listen, so they aren't going to take your job if you don't. If my dad had sped up the project, forcing everyone to work overtime and shortening the beta-stage of development, the whole thing could have been horribly compromised. They kicked him off for not doing what he was told, but in the end it didn't cause him that much trouble. Two weeks later, he's already pitched to a new client for Sogieti America, no hard feelings from his company.
Consultants are usually hired to solve existing problems. If what the customer is asking you to do is going to create new problems, then by simply going forward without saying a thing you are not doing your job.
The best approach to solving a customer's problems is to offer them options, 3 or so is usually a good number. Prepare various scenarios which vary in terms of time, cost and quality and offer those 3 potential solutions for the customer to choose from. Try to be as unbiased as possible in also giving the possible outcomes of each of the 3 solutions. The decision should always be the customer's, you are mostly there to offer expert advice and direction in the form of options.
You may not always like the decisions the customer makes, but you will have done your job as a consultant if you have offered them realistic options.
No trees were killed in the making of this post; however, many trillions of electrons were horribly inconvenienced.
Say you're a GP or pediatric doctor. Parent comes in, sick child. It appears they have a viral infection of some kind, flu or cold. You say, "your child has a viral infection. Give them tylenol or motrin for the fever and pain, make sure he gets lots of liquids, and let him relax." parent gets huffy and says, "that's it? I want some antibiotics, dammit!"
What do you do?
You know you're giving out something that will have 0 effect on the existing condition. You know that it will contribute to drug-resistant bacteria problems. Yet, a pissed off ex-customer is not a good thing as well, either.
I remember as a kid going to the doctor with a sore throat, routinely getting my throat swabbed and strep throat being confirmed. Now, it pretty much is a "yeah, looks like strep", and an antibiotic prescription in hand, and you're gone.
Or, in the Army, blowing out bags of yellow-green, pussy snot from my nose and being given an antihistamine.
1) Document, document, document. A few years after we started up, we were sued by one of our first clients. The solution (software package) we eventually installed/provided them with was unsatisfactory, even though it wasn't the one we recommended -- it was the one they insisted on. When everbody else went to option B and the company making package they insisted on went out of business, they sued us. We didn't have the documentation to show that it wasn't the solution we reccommended, and so we were basically forced to settle out of court -- and upgrade them to the other software for next to nothing.
2) Define the terms of your consulting contract as best you can. My firm has built up a solid enough reputation with our clients that we can generally dictate the terms of the consulting contract. We have become "complete solutions providers," which I believe to be the holy grail of any consulting firm. First, we work with the client to establish their needs, goals, and a budget. Then we dictate the solution for them. Our contract is built such that they have to buy what we recommend, or they don't get the installation help and the benefits of a support contract -- which they have already paid for.
3) Our contract aren't (and haven't always been) that advantagous, and sometimes we don't get our way. Sometimes the CTOs brother works for Macromedia (when we normally recommend Adobe), or the CEO has had a terrible experience using Windows 2k, or Linux, or the Mac, or Sun, or IRIX, and won't spend a dime on any of those solutions -- which we normally reccommend. When this happens, we generally have a back-up solution, which we use as a bargaining chip. Sometimes, even, it's just arrogance on behalf of CTOs or CEOs: even though they hired us, they don't want to take EVERYTHING the know-it-all consultants suggest. Having the back-up will make it seem as if you are willing to compromise, and that you are sensitive to the needs of your client.
4) Know thy client -- and let him know that you know him. If your client believes that you know his business as well as he does, your client will be much, much more likely to do what you suggest. As a general tip for people just starting as independent consultants: pick a niche business. This is a lesson I learned from my father, a small businessman. Pick a niche and know that niche perfectly. Know who your clients competitors are. Know all the possible solutions available in your field, so that when your client comes up with an alternative to what you've suggested, you can act expertly about it: oftentimes clients of mine will try to do their own research, come up with something that they think is better, and suggest it. If you've never heard of what they've found, it will make them suspicious. If you can show them you know all about their suggestion, it'll be much easier to convince them that you were right to begin with.
5) Interpersonal skills. This is something that many my brightest employees completely lack. The most important thing in a consulting relationship is trust. Trust is much easier to establish if you can laugh with your client, take them to dinner, etc. While you shouldn't make it the number one priority in hiring, it helps to have a few people around with excellent interpersonal skills who radiate confidence and leadership without seeming arrogant. With this in mind, I highly, highly, highly reccommend ex-Marine, and to a slightly lesser extent, ex-Navy, Air Force, and Army officers. They know how to be humble to clients when necessary, but, as experienced leaders of men, they know how to gain a client's trust.
So those are a few observations after many years in the trade.
-Shylock
Questions and comments are welcome and may indeed gain response. Flames will be ignored. Post responsibly.
Statistically speaking, there's a 99.998% chance that my IQ is higher than yours. Get over it.
I look, but i can not really find any jobs out there now. I have real good experience, and a couple Cisco certs. Anyone? Anyone? ideas? i like the whole AC thing too
During a conference call with the vendor in the CIO's office, with several other executives from the impacted business groups present, the vendor reiterated his idea. As the one stuck administering this horrendous system, everyone turned to me to see how soon I could implement the changes. I refused to do it, plain and simple. My direct manager said basically "you'll do it if I tell you to". My reply was "No, I won't do this. It exceeds the manufacturer's specs so far that it puts company data at great risk. You can fire me and have someone else do it, but it won't be me. I have an obligation to the shareholders of this company to protect their assets, including the data processed by this system, and I won't put that data at such a risk"
After picking his jaw up off the floor, and everyone else reinserting their eyes into their skull, the CIO turned back towards the phone and said "Looks like we need a better solution!"
I could have been easily fired on the spot, but instead the CIO was impressed with my courage and figured I had to have a solid point to be that bold. A few months later, the crappy system was replaced with a solution from another vendor that scaled to our requirements.
I AM, therefore I THINK!
A good technique I've found is to simply keep questioning a path till that person realises that they're unable to answer some pretty fundamental questions on this issue, at that point they're ready to listen.
Sometimes though you're dealing with fundamental beliefs, in that case it may be that a person needs to live the mistake before those beliefs are altered. You can give advice and guidence, but there's only so much you can do, and you will come across those, that as much as you'd like to, they simply can't be helped.
More often than not decisions are not so black and white, in that instance I believe you should give advice, and if that advice is not taken if you feel stronly about then let it be known you think it's a mistake. I think arguing is pointless and that you're best stopping before the point where the exchange of information stops the arguing starts.
I think as a consultant you want to make sure that you're only involved with success stories. When you get to a point where you can see that a particular decision is likely to lead down a path that will result in failure, you're best off walking away.
I work as a consultant and its not always such an easy question to answer. The dynamics are completely different when you are on a team of consultants. Often times the people making many of the decisions are not the ones at the ground level doing the implementation work. This can lead to bad decisions or unrealistic implementation goals. The junior members of the consultant team can often point out problems to their seniors and hope that they take the action to fix the issues or admonish the client, but this doesn't always happen for a mixture of bureaucratic and deadline pressure. If the manager or senior staff decides that it would be too difficult or pointless to reopen a discussion around an already decided issue, there is little I can do about it. If I go to the client I make my team look uncoordinated, confused and risk angering my manager. Consultants are also expected to be high performance individuals, and so the expectation is that the job will be done quick. If the incentives in the contracts are written so that there is a huge time pressure, things get missed and corners will be cut. This is the nature of the business. As long as contracts and incentives continue to be structured this way, you can expect consultant firms to act in their own self-interest. Its economics in its lowest form.
That's how US tax law works. The IRS has been cracking down on this, because employers use this to get out of paying taxes. Want to help them out? You can turn in employers by calling the IRS Tip Line at 1-800-829-0433. You get a cut of what they collect.
this is what I did.
I asked them to clearly state their goals and budget one more time.
Then, I did an honest cost analysis with their goals and current process in mind. This analysis was over a 2 year period. Shorter than that and you are not considering all costs. Go longer if it makes sense depending on the situation.
Don't forget hidden soft costs. A quick example. A day of lost engineering department time could cost many times that in the downstream operations that follow. These numbers get big in a hurry and are often forgotten in your typical information systems analysis.
In my case, I stood to make more if they made the foolish decision!
Always present this stuff in writing. Always. Get another person you trust to sanity check it for you.
So, I presented the written analysis with my option, theirs and one other potential path that occured to me as I was putting the project together. This was followed with a summary of my recommendations along with quick financial reasons why.
Money talks, they did the right thing.
Blogging because I can...
While working for a company, we had a really old RH (yes, I know, not my choice) machine that was used as our primary code repository. During my time as the SysAdmin, I proposed, on many occasions, things to make the machine more reliable. Due to certain circumstances, we couldn't upgrade a lot of things. After 3 years of service, the company started really went into the toilet and I was laid off.
Three weeks later, they had broken the machine and couldn't fix it. So they hired me back as a conssultant to fix the machine and make it so it wouldn't happen again. At that point, my credibility shot up 100 fold and my opinion was finally taken as "expert." I had proven, in the past, my competence but the risks involved were deemed to great (even though I had proven the safety of the changes). Since I was an "expert," I was able to present my case and force the situation.
I figure, if they're hiring out, because they can't do it themselves, your word should be next to the word of god (no, I'm not religious). Don't allow them to compromise your future credibility, by not pushing your case. If they force you to do something that you feel is wrong, it could come back to bite you in the arse. At the very least, push your case strongly and inform them that not accepting you as the "expert" means that you cannot be held liable.
Why did I not get paid last month?
As a 'consultant' you are considered to be an expert position and not 'in the office of the company' - which means that you have separate legal personality from the organisation, which means that you can be subject to legal action against you by another party - and you can't rest upon the organisation (i.e. vicarious liability) to indemnify you. You are probably not covered by the organisations liability insurance - as it is likely to extend to employees only, and not contractors or consultants. If you didn't know this already, I feel sorry for you. You may earn extra money being 'a consultant', but this is one of the downsides.
This strongly suggests that it's in your best interests to act somewhat ethically and carefully to protect your professional interests. When it comes down to 'not agreeing with a decision' or 'doing somethign you don't agree with', you need to take each case on its merits.
If you object for non objective reasons (e.g. "you like linux over BSD"), the best you can do is to refuse, and they may decide to terminate your contract. If you object for objective reasons (e.g. safety issues, bad design decisions, etc) then you could either leave without saying anything, or make your case known - if they decide to terminate you, I'm not sure what the circumstances are there - but at least you've made it clear that you don't agree with the situation. If you do take on the task, then you could be said to have agreed and therefore you could eventually be liable.
If you have a sign-off on a project then if you aren't happy with something, you are within your rights not to sign. However, you had better have justification, i.e., not liking Microsoft isn't good enough.
As a real consultant, you are paid for your opinion. The opinion you present is not the final decision, that is usually for the business to decide. I agree that you should present not only the recommendation but also your criteria and accept that you do not know the full picture (i.e., Steve Ballmer may sit on their board).
See my journal, I write things there
Questioning with reason work in a team but not for customers. From what I understand, customers are not in my team. They play with my team, but not IN. When I question a customer, things go badly. Probably not always, but generally so.
Having accepted the fact, I try to do the following whenever my customer wants to apply a lousy solution.
1. Listen to what my customer is saying very carefully and find out what exactly I need to do to fulfill the requirement.
2. Think hard and find out what I really need to do to solve the problem.
3. Find a way to do 2 while I am fulfilling the requirement outlined in 1.
Generally, (my) customers are not technically savvy, so they don't care or cannot understand what's really happening underneath the solution that I provide. But if you look closely, requirement is met and a good solution is applied at the same time. Doesn't work out like this always, but this is what I try to do.
Read your professional group's standards. Like ACM. Or IEEE. Or ASME. Or so on. Read 'em, and follow 'em to AT LEAST the letter. If you're not prepared to do that, go puke up buzzwords and become a PHB.
/. ... oh, wait, the market sucks. Nevermind.
Case in point? The venerable Morton-Thiacol.
Step 1: Eat bandwidth by posting this to
Step 2: ?????
Step 3: Ask, "what's ACM?"
Step 4: PROF-
Oh yeah - I'm just waiting for the cries of "Karma -254!". That's fine. If someone is a practicing software engineer (for example), ESPECIALLY if this involves mission-critical RTOS applications, they need to AT LEAST look at joining ACM and developing an internal moral compass. Maybe this is just part of a larger problem, though. *sigh*
OK,this whole discussion is just semantic, and it is happening because contract programmers like to call themselves 'software consultants' in the same way that garbage collectors like to call themselves sanitory engineers. If you're hired to hack a piece of code, you're a contract programmer. If you're hired to give advice, you're a consultant. Of course, in a lot of cases you're hired to do both. If you are being hired as a consultant - to give advice - then give advice. Give the best advice you can. Obviously, the client won't always follow your advice but if the client asks you to do something which you believe is against their best interests then give them, in writing, a report clearly explaining why it's the wrong thing to do and what you believe would be a better solution. And then, if they still want you to do it, do it as well as you can.
I'm old enough to remember when discussions on Slashdot were well informed.
The BCS, IEEE and ACM all have codes of ethics. The response to this situation is clearly laid out.
Yes, I have done this at least three times. The first time, the customer backed off. The second time we got to the written response stage and the customer ultimately respected the professional approach. The third time, they wanted to break the law and I walked.
It is possible to have an ethical career. Read 'Ethical Ambition' by Derrick Bell.
You are not just hired for your technical expertise, but also for your 'fresh' point of view on things. You should offer your way of seeing things, but within a few constraints:
-Go through your project manager. You will inevitably have a 'handler' or stakeholder to whom you report. Your job is to make him look good. Do not go around or above him. Give him your honest assessment of a situation, or present it to a larger body if he prompts you to do so.
-Create a paper trail. Ensure that your opinion is registered, via an email, or whatever, then leave it at that.
-Don't push. Justify and defend your stance if prompted to do so; make sure your good arguments have been made to the person(s) who are responsible for choosing and representing them, and make sure that you support them if they choose to do so. Do not insist, advise.
-Don't insist on credit. Let your superior take credit. If you're competent, it gets around. Do good work for someone, they look good. If the guy who hired and kept the consultant looks good, you look good. If he gets rid of you and the project tanks, he looks bad. Your reputation among your peers does not suffer from this.
-Make people seek your opinion rather than foisting it on them. Given time, professionalism, competence and hard work, it will become clear to your peers and potential clients that you're good. The mark of a good consultant is that people come to you, not the other way around.
-Set an example. This relates to the previous point. As a consultant, you should walk on water. You are called in to do the tasks the permies can't handle, and thus you should hold yourself to a higher standard of conduct and competence. Don't 'go native', but be professional with a degree of empathy for the client's needs.
Cole's Law: Thinly sliced cabbage
I got a guy that likes to buy consumer grade junk they put on the endcaps at CompUSA (like the parallel port video capture device) and then pay me to get them working, I do the time-materials thing so if the crap that he want's doesn't work, I get paid to fix it.
I have argued with him enough times to know hat he won't listen to me. I once ran behind him at the compusa taking stuff out of the cart when he wasn't looking.
It's called "common sense". Apply it, every now and then, it will work wonders.
------------------
You may like my a cappella music
His reasoning is simple: when he's a consultant, he always tells the boss when he's making a mistake, and precisely how its a mistake. Since he's a consultant, he's already set up the fee schedule in such a way that he doesn't care if he's summarily dropped from a project.
When he's an employee and DOESN'T own part of the company, his reaction to bad management decisions is "I'm going on the record as saying this is a bad idea, but its YOUR money, if you want to throw it away."
When he's a stockholder, he feels an obligation, as a stockholder to tell the boss "Not only is this a bad decision, but it will ultimately affect shareholder value. As a shareholder I feel it is not only my duty to oppose this decision to the full extent of my authority, but to let other shareholders know of it, and what adverse affects it will have on the company." Needless to say, this never goes over well.
And, no he's not usually bound by NDA, since he knows about this scenario when he joins a company, and doesn't sign an NDA that prevents him, if a shareholder, from communicating with other shareholders.
On whether or not the company you're assigned to is run by complete assholes. But if the company requires the services of a "fixer" that may well be the case.
This short book is loaded with tips... eg:
"If they didn't hire you,
don't solve their problem"
"If you need the money, don't take the job"
There's lots about this issue.
Amazon has it & some successor texts...
WHich it clearly is not (I am using Citirx right now and have no idea what the differences may be).
If you don't explain pros and cons I don't see why anybody should take your word at gospel value.
IANAL but write like a drunk one.
Or any book on consulting. It sounds like you need some professional guidance here. I particularly recommend Peter Block's Flawless Consulting. No affiliation, just a satisfied consultant.
Depends on your relationships with customer. Generally it is good to give advice but don't be surprised if they ignore you (especially if you give your advice for free - Weinberg's rule says that 'the more they pay, the more respect and better chance of implementation'). Additionally you have to remember of risk of spoiling your relationships. In my 15 years computer consulting experience, in most of the situations like this, there was always someone who has had his/her reputation on the stake. It takes great skill to be able to break bad new gently. And if you are really sinister (or business savvy), let them stumble and fix it afterward. For cash. In your situation I would give advice. Don't be surprised if they ignore it. Later you can fix it. For cash.
jcp
This is, in principle, sound advice.
OTOH, there's a certain kind of person who has two defining qualities.
These people are no use to anyone.
Everyone makes mistakes. In a good working environment, obviously everyone will try to minimize that, but it is accepted that it will happen. When it does, people will own up to their mistakes and try to put them right, and others will help them to do so if they can.
In a bad working environment, full of blame culture and CYAing weasels, mistakes Just Don't Happen, and when they do it's always Someone Else's Fault. Strangely, such environments tend to be incredibly political, very uncomfortable for those working there, and far less productive in the long run.
Now, a sure way to turn your office into the latter environment is to hire or keep too many CYAing weasels. A direct consequence of that is that writing too many CYAing e-mails and never accepting responsibility for things is a great way to run out of good people to work with real fast. So, CYA when it's justified and necessary, but not as an excuse to avoid taking responsibility for your own actions. It's morally right to act this way anyway, and in the long run, a reputation for having that kind of integrity is priceless.
If you disagree, post your argument. (-1, Overrated) isn't your personal censorship tool for views you don't like.
I've been a contract programmer for the past 12 years - I have absolutely no problem telling all my clients 'That's a bad idea and here's why it is' It's part of why the keep me around - I'm outside the political sphere (it ain't gonna affect my chance of promotion) so it enables to be to shoot at things other people won't. The higher ups expect it. I've seen way too many stupid decisions made to at least not voice my views - but - and this is a big but - you better make sure you know what you're talking about. I ALSO seen my huge share of moron consultants that think they know everything since they've been in the field for six months....Making a stand and being wrong can get you terminated........
One problem with technology solutions at any level is the number of possible approaches. Without clear articulation of goals and success criteria, making 'right' choices is more a dispute of taste. The view from one perspective selects A, B, C as the 'right' things and A', B', C' as 'wrong' -- but change the viewpoint and the set composition changes. The benefit of experience that a client should be paying for when engaging a consultant is their understanding of the messy choices and ensure that the client makes the choices that are best for him. It is, as many posters have pointed out, the clients nickle we are spending. It is their problem and in the end the client must live with what is created. But it is always a delicate matter to suggest to a client that they might want to consider approaching the problem differently than originally conceived. THis can work if the benefits as expressed in the clients terms are greater than the original conception.
The main trick is to know the client. Some of them are really easy going and will listen to your plans and think it out carefully. Others have a deep emotional tie to their setup and take critisim badly. (as well as you as a consultant to should be awair that you may get emotionally tied to your plan as well, and may need to step back and think clearly) For those dont take critism or want a known failed plan (Like turning on a relay on Sendmail on a linux box to prevent relays on a MS Exchange Box) you will have to be more careful and basicly nudge them in the right direction over time so he feels that he came up with the approprate answer himself. So he is happy that he thought of this better idea, you are happy because you can get your idea out. The people are paying you are happy because the job is done.
But my basicly my main rule, is to keep calm and tell them "As a hired consultant on this project I would sugest if you alter you plan by x thus you may get a better y and in the long run you can save $ becuse of z." But if they still want they way go ahead and do it. Becuase you did your job as a consultant and you consulted them on what would be a better way of doing something. Its up to them to decide if it is better or not.
If something is so important that you feel the need to post it on the internet... It probably isn't that important.
If the decision falls within the area you were hired for, then you have the duty to advise the company, in writing, why you think this is a bad decision. If the decision stands, then drop the issue and follow the decision. You have to assume that they know something that you don't.
For contract programmers, it is the same. Your scope is much smaller, so the issues you can comment on are narrowed to program technique. Even program design would typically fall outside the realm of issues they want to hear from you on.
But if they hired you for your expertise, shouldn't you be expressing your opinion and ideas??
in a company and this is why they are hired.
Most government agencies and other large corps hire consultants, not only for their expertise but because internal management can not make or will not make tough decisions on their own. They need someone to blame. If all goes well, fine, the manager who approved your proposal wins, if it screws up, then it was the consultant. But if the manager has to put their neck on the line, a decision simply will not be made in any timely fashion in most cases where I have been employed.
This is a consultants job. No single company is a career path for the consultant. Put it in writing, pros and cons and then let management decide what to do.
http://www.despair.com/consulting.html On a more serious note, why does it have to be consulting? I'm a full time employee and I'm asked to do stupid stuff all the time.
Once I see an issue, I make the attempt to correct the situation immediately.
If they are responsive, I help them draft a better plan - on the clock, of course. If they are unreceptive, I'll do anything they ask as long as it doesn't compromise my morals, doesn't open me up to legal or civil liability, and pays appropriately. It's thier money, thier time, and I'm doing the job for them.
One thing I don't do is play the "told you so" game after they ignore my advice and it blows up on them.
Thereis no doubt in my mind that personal-ethics must enter into this. Some years back I worked for a sensitive agency that was responsible for assembling, testing, controlling, and shipping software to worldwide locations. I was paid very well for this work. The software was MISSION-ESSENTIAL. In preparing for the latest release, I raised a red-flag regarding the test-results of some of the components that could in worst-case mean system-failure/loss of data/loss of connectivity/possible loss of life. I had MANY discussions with the release decision-authority. I was subsequently removed from the contract. The point is that I CHOSE not to just "let it go" and be part of releasing KNOWN bad components. I paid the price by being reassigned. They paid the price with intensive maintenance efforts to repair what NEVER should have shipped (all schedule-driven of course.) I'd do it again....but that is just me...your mileage may vary.
They should be professional enough to not waste your or their time with egotistical matches when the good of the business is at hand. A wise manager will eliminate those decision makers below him/her that do this.
The major role of the consultant these days falls along two major areas of responsibility:
1. Do stuff.
2. Advise on stuff.
On the do stuff role, the consultant is brought into the picture due to many reasons, be it cost, skillset, whatever. You may need something done and nobody in house has the skills. Or you can bring a consultant to do the work for much less than what it costs you to keep this kind of talent on staff full time.
On the advise role, the consultant is brought in to give decision makers an unbiased opinion about whatever. When I say unbiased I mean this person has no ties whatsoever to your organization and will be immune to things like current inhouse politics, legacy issues, etc. Because this person has a fresh mind he/she could care less of things like "that's not how we do things around here" or "if we had not fired Bob this would not be an issue." The consultant here gives the decision maker(s) choices and tries to justify them. The decision maker still has to make the decision itself and cannot blame the consultant.
If you are in the do stuff role, your customer relies on you to actually generate some kind of output. If anything keeps you from providing this output then it is your responsibility to raise the issue (I hate to use PHB language but this is one of them yellow or red flags).
On the other hand, if you are in the advisor role, your responsibility is to inform your customer of valid choices to deal with the problem at hand, but the customer is still the one that makes the decision itself.
Or to hell with it, you can take Dogbert's approach. Consult is the combination of the words "con" and "insult." *You* figure it out.
Pedro
----
The Insomniac Coder
Find out what the Client needs.
Convince him that's what he wants.
Convince him that it was his idea in the first place. (This is important. The Client is the smartest guy in the room--just ask him!)
Deliver what the Client needs while meeting the requirements of budget, functionality, and schedule.
Make sure the Client's looks like a f***ing genius in front of his bosses.
None of these are optional. If the consultant fails to do any of the above, the consultant does not get invited back to do the next job!
Having said that, I have the good fortune to work for a Client (for the past year and a half) who actually is the smartest guy in the room. If you ever have a Client who knows what he wants, lives in reality, and is committed to doing what is needed, cherish him! A Client with a full CNS (both a brain and a spine) is a rare jewel.
Most clients will sit the consultant down and say "Please shoot me in the foot.". When they do this, the consultant must explain that "this is going to hurt; do you really want to do this?" If they insist, the most you can do is be ready with bandages.
Some clients will ask you to shoot them in the head. By this, I mean doing things that will cause any safety concerns/violations or catastrophic financial consequences. Best you can do there is refuse to do the work.
I happen to have the good fortune to work for a Consulting company where the President stands by such decisions. I (and the Engineers working for me) have had the rare occasion to tell a Client "No, we won't do that. "It's unsafe" or "the liability is too great". In every instance, the President has stood behind us.
One final word: Pride. Forget about it. The Client is always right. There is nothing that will get you banned from the jobsite faster than embarassing the Client in front of his boss.
"Reality is that which, when you stop believing in it, doesn't go away." - Philip K. Dick
...you wouldn't be a consultant.
I am very small, utmostly microscopic.
The bottom line is that you should make your point clearly and ONLY ONCE. After you make your point, if they still wish to go forward with the "wrong" decision, do the work. Do NOT:
- whine
- drag your feet
- try to convince them again
Too many people try this and are a nightmare to work with. Unfortunately, this attitude is common in systems work, as many have the "everyone else is stupider than me" attitude. (e.g., Nick Burns, your company's computer guy)
I work for a consulting company with a large contract for a school district. The district already has 3 full time admins that are more than capable of doing and implementing items. They also have the time to do it. Instead, they use our consulting company for one reason only (and they admit it off the record): In case something goes wrong, we are expendable...
1- if something goes wrong, their have someone to point to that can be "fired" if it comes down to it... someone that can "save face" in case of a major problem.
2- union pay/time/etc. Many changes require work to be done after hours/holidays for which the pay scale for a school disctrict worker is extremely high. The odd hours that can be sent to a consultant more than pays for themselves.
I'm employed as a full time systems/security admin at a big e-com shop, and am CONSTANTLY forced to implement silly decisions... despite this, I'm also asked in meetings to vouch for the secure implementations of projects. Sadly, we're forced mostly to sneak our 'common sense' into projects while management isn't looking.
* those you pay to justify what internal IT has done ($);
* those you pay accomplish a task ($$);
* those you pay to take the blame for something internal IT has done ($$$$$);
Which are you?
-- Before you do anything you can't undo, always understand all the things you can't do once you've done it.
The idea is to have a paper trail so you will not be the fall guy when problems occur.
===== Murphy's Law is recursive. =====
i can see this kind of thing outside of consulting too when senior architects "tell" developers that this is what they are doing and this is how it should be done and maybe its wrong... what do you say.
i feel that one should always be courageous in situations where one feels there is a better solution, however, the one thing i've learned over here in the UK (was in SA) is tact. its about how you approach the questioning of the decision and ensure that you are working TOGETHER for a solution not against each orther for pride.
...the answer is the same. I've been a consulting software engineering since 1996. I've always taken the approach that the professional and moral obligations of a consultant are the same as those of an employee.
The only differences between consultants and employees are:
(a) consultants are paid more. This is why we consult.
(b) consultants get older equipment. This is a bone thrown to lower paid employees.
(c) consultants have a different contract, and a different tax withholding status.
You should present your dilemma again, but this time leave out consultant vs. employee spin.
Nice backhand. I'm neither unethical, a lackey, or both.
A consultant also needs to be pragmatic. The 90's are over.
The original poster stated the problem as: "(if not on a daily basis) asked to do something that isn't in the
best interest of the company." The consultant is being asked to perform this action (probably)
by an employee of the company. His boss hired him to make decisions that are good for
the company, and so on up the chain to the head of the organization. It's assumed that the
company has made good decisions to hire these people, who then made the decision to
hire the consultant. The consultant is a guest, they are not the proxy CEO, no matter how
smart they may be (or think they are). If there's a litany of bad decisions "on a daily basis"
either the "ethical" consultant has already left, and the question is moot, or they make the
best of the situation. By the nature of being a "consultant", or even an employee, if you are
involved in solving a problem or performing a task, "questioning the decision" is the nature
of work. You state your case, hopefully an informed one, supervision approves or disapproves,
and the task is performed as requested. These decisions are not binary, if it's an informed decision, many
factors must be weighed. The consultant, as a guest, probably does not have complete
understanding of all of those factors. Most times, it's not just a technological problem, but
also a political / temporal / financial one. If the supervisor assigns responsibility to an
unqualified employee because it's his brother-in-law, or the cute girl in Dept. A, what can
you do other than leave, and at that point, the question posed by the original poster is again, moot.
A last point. Success, in any endeavor, is rare. That's why it's so cherished.
Assuming that, the odds of making the "best" decision, especially in the long run is less than 80%,
probably more like 50%. If the consultant is so good that they can hit above 80%, they
should be working for themselves and doing a photo shoot for next month's cover of Fortune.
Otherwise, fight the good fight, hold your water, and be glad to put food on the table because
the next decision that the powers that be are considering is farming out the whole operation
to Bangalore, and your next gig will be a year as an unpaid tester of monster.com's search engine.
I explain this policy to the customer when hired:
If I think you're making a mistake, I will explain why -- once. I will not argue, I will simply make my case and let you decide. Then if you still want me to do it, I will do it.
You'd be surprised how often they change their minds a half hour after you've stated your case and then gone to do as originally requested. Gets some of them to thinking about it.
I always question tasks that do not appear to be in the best long term interest on the govt/tax payer. After I voice my concerns, I do as the customer/govt requests. Sometimes they listen, sometimes there are priorities that I am not aware.
most of the responses here pertain to how to coddle idiot decision makers and their image concerns. why do we even do to school for comp sci, or engineering? training in political science, acting, and child pyschology seems more appropriate.
Of all the clients I have has as a consultant 2 stand out in regard to this question. At the first they made a long succession of serious mistakes which I tried to prop up. But you can only do so much with bad data. In the end the project went live, but even today 4+ years later is not a happy system, and the users hate it. At the second I questioned everything, and tried to prod them towards the best solution for their needs. After about 3 months they asked me to leave. Neither system is entirely satisfactory today, but I have regrets about the first, even though I could not have fixed the problems, I still wonder if I could have done something different. I have no regrets about the second. I did what was right and frankly feel much better about it. If you are worried about money think about this. In some quarters MY NAME is probably still linked to the failure of the first client, but NOONE links me to the failure of the second. It is possible that one day I will fail in a bid for business because my involvement in the first project is remembered. I should have said NO.
...from a previous co-worker, friend and damn good developer/architect who we call Darth , you point out what you beleive to be the problem and/or failure of the proposed work and offer a corrected solution ONCE ONLY.
If they take your advice, all the better for them. If not, then do it as they request.
More than likely they will be needing help more in the future to fix it and to it "the right way". This means more $$$ for the consultant in the long run, and maybe the companies start to remember the reason the consultant was hired in the first place.
-=- James.
It matters on the intent of the effort and then how you would like to manage or measure the effort.
Typically, you need a consultant when you are not sure what the tasks should be or you need some expertise that you do not have available. In your example, the lawyer is a consultant. You do not tell a lawyer, "Win my issue by performing these tasks." If you did, you would not really need a lawyer (if you do not have resources available, she becomes a contractor). Better consultants will seek to define the tasks and get approval in order to measure them and show success. It is not until you put those tasks down officially (in writing or otherwise) and obtain approvals that you become a contractor. Typically the scope of the consulting contract does not change when these tasks are captured, but this is essential to tell when certain efforts are complete enough since there is usually a limit (even if T&M -- it is just not explicit) to the consulting contract budget.
On the other hand, you use a contractor when you know explicitly (as much as possible) what the tasks might be. The key is that the contractor work is readily measurable and the contract is generally over as soon as the tasks measure up. For example, "Does my plumbing work again?" or "Does this software entity meet the specified requirements?"
Notice the distinction of intent and the detail of task specification.
Completely agree about the typical interchange of the words, but to me, the distinction is clear. And yeah, it is mostly in the practitioner's head, but consultants should try to ensure the distinction is clear as well. I think it has a lot to do with how the effort should "look" upon completion by how you measure it.
The trouble is when the owner of the contract does not understand the tasks and cannot measure them but insists on a contracting relationship. Again, I think the better consultants in the world should aim to correct the distinction.
I say it depends on a couple of things.
First, are you the kind of consultant that was hired for your obvious command of certain knowledge and skills, or are you the kind of consultant that was hired as temporary help because the company doesn't want to pay you any benefits and your rank is somewhere near the same level as the janitor (either slightly above or slightly less, depending on whether or not the janitor is a full-time employee or a "consultant" too).
If you are the former, then sure, you have been hired to educate them and help them to do things correctly. If not, shut up or you'll get fired.
Even if you are of the first ilk, you should be careful. Most people don't like being told they are wrong and they may get rid of you for hurting their ego. Professional consulting is 90% successful and tactful negotiation and 10% actual work.
I have to agree on this. Diplomacy is always called for when dealing with clients. I've been on both sides of the fence on this one. I've been the consultant offering the advice and I've been the employee receiving it. The responsibility for the decision rests with the client unless it has been explicitly delegated to the consultant.
However, the whole point of bringing in a consultant is to fill a need for specific expertise. In some cases, the need is for expert advice. In that case, the answer is unambiguous. You owe your client the best information and advice you can provide. Your client may disregard part or all of it, but that's a separate issue. In other cases, which fall more on the contract programmer side of the line, you are still there because you have the skills to do a job. If it didn't require some of your skills, you wouldn't be there. Summarize your advice to a level appropriate for the person you report to, but provide it.
The net will not be what we demand, but what we make it. Build it well.
At the beginning of the assignment, you must determine if you are there to accomplish a goal or to prove the point of the hiring manager.
During the interview phase determine if the assigment is "prove the manager's point", then decide to take the assigment or not.
A consultant is paid for well thought out opinions based on facts. Document everything, and preface it with "in my opinion" either written or verbally.
A consultant does real work also. Actual bit flipping.
The difference between a consultant and contractor? About $60/hour.
Comes down to this: if you don't know, it doesn't matter. If you're in charge of the Citrix stuff, then you shouldn't be. The world doesn't have to explain things to you. If you can't be bothered to find out on your own, check out my taillights.
my job is what some rational people have defined as a "no-good, low-down, dirt-bag, software contractor". a harsh job title if there ever was one.
my solution to doing the at best, 'questionable', task for a client? i call the f.b.i, and ask if the project is illegal. you'd be amased at the surprise responses one gets from our law inforcement. next, i call the local state d.a.'s office and ask the same question, 'which law am i breaking if i do task X'. once again i am surprized by a government agency that being used as an information source, NOT a 'come in with guns blazing' source. so far, everyone i've called has been more than willing to state the law.
here's the cap stone; i now go and tell my findings to the tasker in question, and offer either a known legal way of doing business, or i say what the laws are that are being broken, and by whom has those laws been stated by. once again the tasker sees how to use the law enforcement community for advancing american business. i've lost several thousands of dollars in tasks that were 'routed' to others more capable. i'm not in jail, and its not my problem at that point.
Who will also expect you to work for peanuts - these recomendations you don't want.
Unlike the employers conspiring to pay a smaller amount. As an example, why does every employer want to know how much you were paid in your previous job? Yes, you don't have the *right* to always get the "First Class" wage, but the employers don't have the *right* to always employ you for the "Economy" wage - *that* is the market, and has been pointed out, if you do first class work, and charge economy fair for it, you *are* "ruining it for all".
The market value is what the *market* is willing to pay, not just a particular participant in the market. So if the *market* predominantly pays $X, and you are providing the expected service, you should generally expect $X.
If the "shut up and accept what's on offer" party get their way all the time, everyone but the board of directors will be on minimum wage, and we will have a new nobles and serfs society. And to think people fought long and hard to abolish slavery!
As a consultant, I have faced this many times. A customer pays me to come in and help them solve an issue. During the course of the work, I present them with the solution(s) and work with them to implement them. If, however, they choose to not go with my suggestions, but have me do the work, I will consider the best course of action.
Is it worth it for me to gracefully turn down the offer to implement someone else's concept? Perhaps the other approach will work.
If the solution(s) they choose to use are absolutely not going to help them, I will present my opinion and evidence in an organized, calm manner. If they still choose the path of destruction, then I will calmly, politely leave. I cannot afford to have my reputation associated with the poor decision. My presence there with most likely result in being associated with the poor decision.
I have still stayed in certain circumstances just to help them pick up the pieces, because the higher ups understood my statements, and asked me too. Then it becomes my job to try and keep them from destroying things beyond recovery, and be the voice of reason, as well.
My 2 cents.
Here I come to save the da... *thud*
I gotta get me a shorter cape.
I only got through the first 10 or so highest moderated comments, and I didn't read the article link (if there was one ... I have no clue), so take this as a typical /. comment. What little I did read seemed to take one thing for granted:
that as a consultant, one knows the entire context of managers' decisions.
This is probably untrue. Chances are, Consultant, you have no clue what's going on, or the full reason why you've been told to do something.
If you do know the hiring company intimately, and you understand the inner workings that create such decisions, then maybe you can judge the quality of your orders.
Why, when you have all the answers, of course.
At least for me. I've had this happen a lot and generally I tell my clients that they can do what they want, but supposedly the reason that they hire me is to take advantage of my experience. I then explain why I think whatever they're going to do is a bad idea. If they still want to do it, I do it. If it's something that I feel might cause legal problems later, I make sure I have the directive in writing.
Every so often you see a company succumb to consultantitis. It breaks out in a rash of consultants. Mostly they are management consultants from one of the Big 4, but every so often you might find yourself in a gig like this, bought in to make a technical decision that the MBAs don't feel qualified to make. One big clue you are in this situation is when native managers are being squeezed out to give offices to all the consultants.
First, any company that does this is on the way down. Make sure you get paid on time. You might give serious thought to shorting their stock too.
Second, the reason that consultantitis happens is that every management consultant will automatically include more work for himself and his colleagues in his recommendations if it looks halfway reasonable. They also inculcate a feeling of FUD amongst native management, who feel that they cannot make a decision unless it has been blessed by a an all-knowing consultant.
So if you find yourself in this situation scope out the local power structure carefully. The guy who is theoretically in charge of what you are doing may well be a puppet controlled by his consultant (think Grima Wormtongue).
Once you know who really takes the decisions you can act accordingly.
Paul.
You are lost in a twisty maze of little standards, all different.
In one company I had several bosses.
Their was on boss who was technically competent, with whom I could argue literally for hours, and what all this did was make a better product.
My second boss, I would point out things like it would make a more elegant design (ie, consum less memory, take less time, affect fewer modules, and better fit within the data structure) to change the design of one page as opposed to changing the design of the system. We wound up changing the system because it was less thought work for him.
In another run in with the second boss, I showed that the data structure that he had worked out was NP-Complete and could not work for the data set we were anticipating. This guy just labled me as being sarcastic, and went ahead with his design, only to remove the NP-Complete part after a year of failing with that part. I was unprofessional and told him that I had told him as much a year ago.
The third boss, just kept comming up with unimplementable notions of efficiency and wanted to program a panic button.
My observaion, most bosses are like #2 and #3, however really special things happen with bosses like #1.
Consult, and
Consultant: One who gives expert or professional advice
In other words, it's the consultant's job to give advice. If they're making a bad decision, it's your job to give them advice as to why it is bad, and/or alternate routes.
If they still do not heed the advice... make sure you have something in writing and then your job is done.
"Sir, we had a consultant a few months ago, he did some good work- Also, he saw this coming. Perhaps we should bring him back on to help us get out of this?"
Company President replies:
"Mr Jones, call that consultant. You can spend double the normal per consultant budget to get him in, we need this fixed NOW."
and in the real world...
woe betide the consultant hauled in at the last minute, lured by the promise of double the money to fix it fast. It's the equivalent of offering the taxi driver double the fare to get you to the airport in 10 mts.
any decent consultant has read "the mythical man month" and "the peter principle" cover to cover and would not touch such a job with a 12 metre barge pole.
sure there are people who will trott out the old "the customer is always right but they should pay for their arrogance" line but in truth you do yourself no favours by taking on jobs with unreasonable expectations, especially from a client who has refused to listen to you in the past.
I used to have a better sig than this, but I got tired of it
as they are full of yes men who will blindly not just walk but SPRINT down paths of known error because they depend on the slicksters to clean it all up later. In the past week, I heard many times a variation of "you don't go argue with the customer" and yet when I stressed that "argue" is not the way but attempts to persuade were... no difference in response. Then again, these managers do not KNOW how to do anything but argue and slink around so perhaps they are just admitting they do not know how to be consultants and actually... consult. Sad thing is, many times they willfully distort facts and say, "the customer wants this specific thing (X) in this specific way (Y)" yet later you always find that the customer simply said, "I would like something that does this, along the lines of Y. Let me know what you recommend" However that would imply we have to actually apply our brains and work. So much easier to just blindly apply the suggestion and after being over budget and past the deliverable date by 6 times and with 20% of the functionality then that is still considered a quality job.
practice the unfortunate but true "most powerful TLA" in IT and... CYA. Ensure you spell out why there is a problem, what you disagree with, what your alternative plans are (helps if there are multiple) and associated short and long term costs estimates.
Result: besides the obvious low morale, productivity is nill and "quality" is a word and concept in another universe.
Assessment: situation is setup for instant failure of individuals, the team and the project.
Solution: Get out!
This in response to the very good advise of:
A profesional environment sees itself as a school of inspired students always seeking to learn and grow.I know he said TightVNC, but even with the Tight encoding and the JPEG compression you still miss screen updates.
TightVNC works quite well until you try something better, then you just can't go back.
Advanced users are users too!
Few people want to know the truth; even fewer want to hear it. People who tell the truth tend not to be very good politicians. (Yes I know... that is a tautology.)
You simply would not believe the confrontations I've created by simply being honest to customers. As an honest person, you may be tempted to believe that "the facts speak for themselves." Well to you the enlightened nerd, perhaps they really do. You've become successful by knowing the truth.
However the world is filled with clueless nontechnical idiots to whom the truth appears to be just some technoweenie's opinion which has created more work. Among the clueless are some brilliantly effective liars, some of whom are highly educated, very articulate, and command far too much authority for anyone's good.
If you tell the truth long enough, you will eventually attract the attention of such a person... and when that happens, you have bought yourself some serious trouble professionally.
If you're lucky, you might partner up with a good industrial politician (AKA "salesperson") who has at least half a technical wit. Then you can reveal "The Objective Truth" to this politician/salesperson (who will promptly forget the essence of it) but will nonetheless find tactful ways to reveal snippets of reality to your customer as needed.