Hacker News new | past | comments | ask | show | jobs | submit login
Good Consultants vs. Bad Consultants (jacquesmattheij.com)
81 points by jacquesm on Nov 8, 2014 | hide | past | favorite | 74 comments



Why are there so many stupid ads on the internet? Because idiots keep clicking on them.

Why are there so many "scamsultants". Because idiots keep hiring them.

Nice piece, Jacques. In my younger days, I would have wholeheartedly agreed with you. (And I still agree with your major point: Don't do this!)

By now in my jaded older days, when I see so much clashing between the ideal and what's really happening, I'm not so sure.

I've spent a career cleaning up the messes of scamsultants. And you know what happens to them? They move on and make bigger messes. And more money for themselves. Sometimes, a lot more.

In just the past 5 years:

- My accountant fired his IT guy for fraud. When he told a half dozen of his associates, every single one of them asked for the IT guy's number because they couldn't find anyone. They didn't care about the fraud.

- A scamsultant for one of my customers ripped them off for over $2 million. They decided not to sue him because of the bad publicity (and embarassment). He now has a new company name, a new website, and one of his testimonials (fake, of course) is from the company he just ripped off.

- Another scamsultant convinced one of my enterprise customers to hire 80 more people into their IT department because "lack of resources" was their biggest constraint. 2 years later, they fired most of those people (who came from the scamsultant's own agency and couldn't do the job). The scamsultant is now doing the same thing to 2 other enterprises in other parts of the country.

- A scamsultant tried to split the commission with my co-founder on her side hardware business. She told the customer who immediately fired the scamsultant. I just saw him driving a new Mercedes SUV into another local customer's parking lot.

- A scamsultant set up the software to (believe it or not!) funnel every 5th customer credit into his own bank account. It took the auditors 2 years to unravel this. He was promptly fired, but never prosecuted (embarassment, I presume). Now he's selling new e-commerce software to new suckers.

- Another customer hired 20 .net programmers through a scamsultancy. After 2 years, they had produced nothing. They were all fired. I stayed in touched with quite a few of them. They are all still working.

As long as people value money over ethics, this shit will always happen.

Don't do this, but don't be surprised when others do and get away with it.


> As long as people value money over ethics, this shit will always happen.

Usually, it's a matter of short-term thinking. It is a human tendency to discount long-term benefits against short-term costs. Where it's not, it's because people want to be "nice" and not be the bad guy. They will go along with people who don't mind being the bad guy.

And then there's my personal belief that in any given job role, a large percentage (possibly the majority) of people are not competent. By competent I mean that any situation which may arise as part of their job and involves a professional decision can be handled by them in a competent way. Most people aren't actually able to do their job without someone guiding them from above and supervising them in that job. This applies also to the people hiring and supervising them, which in the average case are not able to hire and supervise competently without supervision. This chain continues all the way to the top of a company, and as a result most companies are not actually able to do their job competently without constant adjustment from their customers or shareholders in the form of complaints, lawsuits, etc... That's probably why many consultants are not competent, and why they still get hired, because the people who hire them are not competent in hiring consultants. Never ascribe to malice what can adequately be explained by incompetence.


>A scamsultant set up the software to (believe it or not!) funnel every 5th customer credit into his own bank account. It took the auditors 2 years to unravel this. He was promptly fired, but never prosecuted (embarassment, I presume). Now he's selling new e-commerce software to new suckers.

It's like the tray at the 7-11. You take pennies from the tray, right? We just do it from a much bigger tray, millions of times.


> - Another scamsultant convinced one of my enterprise customers to hire 80 more people into their IT department because "lack of resources" was their biggest constraint.

This is why I have brought a carbon copy of The Mythical Man-month after reading pirated pdf.)


This is really horrifying. But as you say, as long as there are people to pay for it, it will continue.

How did you get into your "cleaning" type of job?


that’s a separate brach of consultancy called ‘scamsultancy’

There's a third branch, usually called something like strategic consulting. This is where you hire a bunch of young people from good universities with impressive resumes to tell your clients (executives at large companies) what they already knew and want to hear so that they can in turn use it to justify whatever they wanted to do before they even met you.

The world is not fair so this is the most lucrative branch. And you take no hit to your reputation. Quite the opposite, you benefit from associating with your high status clients.

Or maybe it is fair. It's pretty hard to get into that.


I used to be an associate for a major management consulting firm and your assessment seems only "directionally correct", as we would put it. Certainly there are little incentives for risk-taking - engagements run a couple of millions for two months of a team of 3-4 people; who wants to "destroy value" risking making one of the top executives unhappy? Nonetheless, there is a lot of work that is actually pretty useful (and profitable for the clients), specially on the least fuzzy projects (eg. "How can we improve our pricing?").

I'm not sure it is a matter of fairness or not, but there seems to be a real "pain" that management consulting solves. In the most prestigious firms, it's quite a better business than most. Low-competition, high-margins. We used to call it a "revenue business": revenues are so much larger than expenses that what the firm tries to optimize is the former, not the latter.

Also, does anyone knows a startup that is run like a firm? I find it a really interesting model. I would love to know if anyone knows of one that does.


The political obstacles are very real. Getting over them or overcoming inertia is valuable. Just not in the sense of directly making clients money.


Matthew Stewart's The Management Myth[1] is a pretty brutal autobiography of "strategy consulting".

A key insight is the role of business school theorists, particularly Michael Porter.

Porter essentially looked over the fence at economics, saw what the economists introduce as the bad behaviours and outcomes of monopolists, then taught that as behaviour to be emulated.

[1] http://www.amazon.com/gp/product/B002PQ7B72/


Seconded.

I had a boss who hired some outside consultants to "find out what our IT department should do in the future". They had no experience in our industry. They asked me some questions and wrote down my answers. When they turned in their report, the boss was happy. For this, they charged $20K.


It's not just that, they'll also sell you your competitors' trade secrets, labeled as "best practices."


I often see consultants (or entire teams) which are engaged, but are blocked by the environment they were hired to work in. From another perspective, that may look like that they are doing a bad job. They have to perform, because they are 'the outsiders, the specialists', right? - Bad consultants may just be a sign that your company is dysfunctional.


When I worked as a consultant, I found often I will be given a lot more freedom and trust as a consultant than most of the staff at the company, despite some of them being clearly capable of doing what I've been hired to do. It's incredibly frustrating and demoralising for the staff, who are usually stuck dealing with legacy, messed up, projects. Whereas the reality is, my experience is much better used cleaning up the mess of the legacy project and trusting your staff to lead the new project.


Going through this now. Trying to build an app on top of the client's service layer that is never up so we can't do end to end testing.


That's a good point, this does happen. But I think those cases are fairly rare and give you an excellent opportunity to raise this issue with management as soon as you become aware of it and then to move on if they do not wish to have the situation improved. Otherwise you'll just end up harming your reputation by trying to solve the unsolvable and ending up getting the blame for it.

Usually it will not take 10', 100's or even 1000's of hours to know which way things will swing in the long run.


Not rare. We're not allowed to use certain tools and services for odd made up reasons. These decisions are made by people that are incredibly distant from the actual production.

An example is that we're not allowed to use crash-analytics tools but we are however allowed to insert Google Analytics.


Yup, I've also seen this happen pretty often. The problem with working as a consultant is that it's difficult (or it's assumed you shouldn't) be in contact with various 'decision makers' of the client. You can of course suggest to the client many times that something is broken, but it rarely gets fixed. Instead the fix is to create various workarounds time after time.

It's very irritating to see so much money lost.


This happens to us. We're not allowed to use certain tools and services for very odd reasons.


at one place in order to hire me my director had agree that I was banned from writing production code ;-(


Which I what happened to my team at a global 500 company brought in to bring order to chaos we couldn't over come the siloed nature and politics of the business.

Funny thing is if we where in house accountancy,legal or hr consultants we could enforce our requirments.


Being in consultancy for a while, I find most big names are "making money off the customers" while trying to sell the image that they "make money for the customers".

I lost count how many tricks I saw being done in the name of such practices.


Can you name some?


He probably lost the names when he lost the count...


In a public forum I would just say, think of any top 10 multinational in the consulting world, which also offers off-shoring as part of their services.

Any of them will do.


Not in a public forum.


I actually meant the tricks, not the companies.


There's forgotten dimension being a good consultant and that's to only make sales when you have the opportunity and ability to remain independent and be able to provide recommendations that your clients might not want to hear, but need to hear. Too often, consulting firms incentives are aligned to making the sale and getting the next cheque that they'll be willing to compromise on their recommendations and solutions in order to please a manager within their clients - often whom have a specific thing they want to achieve which might be unaligned to the overall client's best interests.

Because of this, consulting exists somewhat differently to startups as well. In the startup world, your aim is to delight the customer. If you apply that same principle, you'll be tempted to say things that make people happy. I'd argue proper consultant or advisor in any field (whether IT consulting or management consulting) must be able to make a judgement concerning their expertise or their analysis regardless of what 'wants' to be heard by their prospective client (in lieu of how much they might be paying them).


I'm having a little trouble with this one. I run a small shop (really really small), we do a lot of troubleshooting and some maintenance and deployments for customers. Maybe we don't qualify as "consultants", I dunno.

But we certainly don't make money for our customers. We save them money, we eliminate some hassles and downtime, but that's not really the same thing.

So I'm open to hearing that we're doing it wrong, but I don't know what doing it right would be, especially since we aren't really getting rich, and we've got a bunch of customers that have been with us for years. I'd like to change the way the business works at the beginning of next year, so now'd be a great time to start figuring out how to do it right.


From the article: "you should be trying to save your customer money, which is the same as making money for them"

I don't see how what you're doing isn't the same as making customers money. You save them money, all else equal they make more profit, that's what matters. Plus the fact your customers choose to stay with you suggests they feel they're getting positive value and not being taken for a ride.

If saving money isn't materially the same as making money, and maximising revenue is seen as the only way to create value, that sounds ridiculously 1 dimensional and like terrible business to me.


You're arithmetically correct, but in practice new revenue is seen as more interesting than reducing expenses.


If you don't see it, try doing a sales pitch sometime. It'll be vastly different.


What do your clients do with the things you maintain and deploy? Does it help them make money? If so, then you're helping your clients make money.

I'm in the same position as you (running a small development/consulting shop) and it made a world of difference when we started changing the perspective of our pitch to clients from "yes, we can build a website, it will cost $X" to "yes, we can solve that problem for you, which will save/make you $Y".


Yes. You can only "make" money for your customer if you're advising them on sales and/or marketing. You can help them save money in other domains but that's not the same thing.

And some processes need to be streamlined not even to save money in the short run, but simply in order for the company to understand them and regain control.

Put like this maybe it doesn't sound very exciting or useful, but it is (useful).


Customer retention makes money too.


I think the article was painting with a broad brush. Saving money for clients adds to their bottom line and is therefore valuable.


Why, "good" doctors, advocates, coaches, consultants are very good at telling to clients what they want to hear. "Bad" consultants are trying to "tell the truth" (at least as they perceive it) and this, especially in cases of doctors and advocates, newer do them any good.

Telling that Java is a wonderful thing (safe, mature and standard, so no one would blame you) would make you a "good" consultant. Telling that it is mere "piles upon piles of crap" wrapped in tons of BS (written by "good" experts) would never give you any good. I have tried.

There are SAP consultants also. These are just salesmen on commission. All lies and manipulations are good as long as it help to sell.


Your Java example seriously undermine your point -- you have set up a world where you have an opinion, and thus your opinion is the "truth", and people who believe otherwise are being fooled by liars.


There is an opinion, shared by many marginals (Rob Pike, PG, Joe Armstrong, you name them) that Java, as they put it to remain polite and socially correct, has lots of serious issues, or, in my own wording - the biggest scam in the history of IT business (in terms of waste of paper, human and hardware resources) and the consequences are still to come.

But you are right, my example is a little bit irrelevant. SAP would be better one.


Java was intended to allow median programmers to build large systems, largely by removing a lot of sharp edges.

In that regard it has been fantastically successful.


> allow median programmers to build large systems

> In that regard it has been fantastically successful.

It allows median programmers to work for years on large systems, yes, and usually to maintain them as well. That indeed has been my experience.

However, in my experience, it is not those median programmers that actually built those systems, and wouldn't have been able to. Much better skilled individuals did.

In my experience, large systems built by mostly median programmers tend to fail (or never even reach production status), regardless of the implementation language. Which is to be expected, since system complexity is often inherent. However, it seems like the idea that "all programmers are just replaceable cogs" and thus that's not the case is way more prevalent around Java (and to some extent .net) than around other ecosystems.

Java has been fantastically successful in the sense of keeping armies of programmers employed maintaining large systems, and at keeping those systems running. Personally, I suspect that most of those cases could have been fantastically more successful if they didn't use the "replaceable cog" model that for many projects is Java's core feature - but of course I cannot offer any proof.


Yeah, let's say that "Java creates jobs", which is not the same as "Java solves problems".


Like in any religion, when enough people believe in a dogma it become a "truth".

In my opinion, Java's "success" is a like a "religion". It is relatively easy to make money on "believers".

Nevertheless, facts are that in telecoms we have "success" of Erlang, in Android we have "success" of NDK, on server side there is everything mixed, and if someone would collect statistics of failed projects and project went hugely over time and budgets Java would be on the first place. And here, in my opinion, it would be a more of causation, not mere correlation.


Your "sarcasm", which I assume are coming from your own strongly-held "beliefs", is not "positively contributing" to this "discussion".

Let's stop here.



This is good one, thanks.) I have silly habits of writing, indeed.


Even so I share your opinion about Java as a language I don't think it is a bad choice if you take the market into account, like how many Java developers there are, etc.


If Java is the biggest scam in IT, I'd really like to hear what would you recommend over Java for a typical business applications that could be found in any enterprise?


The very mindset that "typical business applications that could be found in any enterprise" require some very special tools is one of the consequences.

Seriously, nowadays tools are so good, that you could really write in any popular language you like (in fact - in a few at once, depending of which one fits better for a sub-task).

The internet services, for some reasons, are not (mostly not) implemented in Java. This site, for example, is powered by author's very own dialect of Lisp. Slashdot has been written in Perl, Reddit is mostly Python.

The real problem is still software complexity and lack of programming/engineering (not coding) skills. Problem is with modeling and [de]composition, not with coding. Coders are cheap.

The business of [outsourced] Java sweatshops of unskilled coders "getting shit done" by quickly picking up methods out of IDE's context help without any understanding of underlying principles is like a whole sector of economy. Products they made in the most cases are exactly what they themselves call it - "shit done in exchange of salary".

But this subject is irrelevant here.


I've had a consultancy staff a large project with "senior Java developers" that we threw out the day they arrived on site because they couldn't pass a trivial coding test. This went on for a while until the consultancy became irate. While it might be nice to blame this on Java, I'm certain that if the leading enterprise language was ADA, we'd see ton's of marginally talented ADA developers being staffed. Whatever the dominant language is, you'll see a stark talent bell curve emerge around it.Think about it, if you can get a six figure salary by saying you know something, folks will say they know whatever it takes to get the job.


On the other hand, a lot of the stuff at Google is Java. Also, I can't imagine writing a reliable 1m lines of code system (say for a bank) in Lisp (or any other dynamic language for that matter).


Perhaps this is why the have "invested" in Go.

They also do some Common Lisp on the airline search division.

btw, Common Lisp is a "strong typed" language, and many large enough code-bases were here. Lisp machine ecosystem is a good example.

A lot of banking software has been written in 4GL and stored procedures (SQL). When Oracle stuffed its products with Java it was not necessarily an improvement, rather things became more difficult and messy than before.


> Perhaps this is why the have "invested" in Go.

I'm not sure how widely Go is being chosen (over say Java) for new projects inside Google. Maybe some Googler could clue us in?

> btw, Common Lisp is a "strong typed" language,

Can you point me to a code example? The ones I did find didn't have any type information in them.

> A lot of banking software has been written in 4GL and stored procedures (SQL). When Oracle stuffed its products with Java it was not necessarily an improvement, rather things became more difficult and messy than before.

Banking was just an example, and I'm sure they are plenty horror stories there involving Java (esp. when used in some awkward way). What I wanted to say is that IMO the effort to build and maintain large code base in for example Python would typically be much greater than in Java. For small code bases, I'm not sure who wins - the development phase will obviously be faster in Python (which is the only thing that matters for startups - hence python/ruby/... popularity here), but maintenance will still be a pain - after the initial devs leave, hires will need to learn that Python codebase, and lack of type information will make it harder.


Not sure if I've understood the question about types in CL.

  * (type-of 1)

  BIT
  * (type-of 123)

  (INTEGER 0 4611686018427387903)
  * (type-of "hi")

  (SIMPLE-ARRAY CHARACTER (2))
  * (type-of 'hi)

  SYMBOL
  *
And there is also typecase macro which is basically cond on type-of - the way to do dispatch on a type.

This technique of extending a language with new special forms using macros is the essence of Lisps.


I understand that, internally, everything is of some type.

What Lisp is lacking though is type declarations for variables, method parameters and returned values. These make codebases immensely more readable.


Common Lisp added type declarations in 1984.

A usual type declaration looks like this:

    (defun month-name (month)
      (declare (type (integer 1 12) month))
      (the string
           (ecase month
             (1 "Jan") (2 "Feb") (3 "Mar") (4 "Apr") (5 "May") (6 "Jun")
             (7 "Jul") (8 "Aug") (9 "Sep") (10 "Oct") (11 "Nov") (12 "Dez"))))
You can also declare the type of the function, outside of the function:

    (declaim (ftype (function ((integer 1 12))    ; the parameter list
                              string)             ; the return value
                    month-name))                  ; the function name
CLOS (the Common Lisp Object System) was added a few years later.

    CL-USER 1 > (defmethod add ((a integer) (s string))
                  (+ a (parse-integer s)))
    #<STANDARD-METHOD ADD NIL (INTEGER STRING) 402005B1C3>

    CL-USER 2 > (add 12 "23")
    35
What do you think the words 'integer' and 'string" are about?


I love it how we can have lisp code in just about any thread here :)


I didn't know you could do that in CL, thanks!


> I'm not sure how widely Go is being chosen (over say Java) for new projects inside Google. Maybe some Googler could clue us in?

Quite widely, for new projects.


A lot of those applications are the "bullshit jobs" of software, ie they are not actually needed. Many only exist because of insisting on only minor changes to existing processes. Many should be contracted out as services as they do not add value and differentiation. There is some stuff left of course.


There is even a TV show which, among other things, depicts the tricks of bad consultants. It's called House of Lies and is based on the eponymous book.


I think there's also the rare case of "bad things happen to good people". I've been lucky as a consultant, that I have had a handful of long-term clients. We've learned how one another work, and how to communicate our expectations.

Alot of web-development consultancies however, as far as I can tell (primarily the culprits I think), are run by business-minded people who are great at marketing and advertising and networking, but don't understand how to get the right kind of talent in the door. They get the lucrative deals, but have no idea that they don't have the talent on board to make it happen. I've "cleaned up" on a few of these in the past.

Also, there's people like me who start their consultancies without as much business-sense as tech-knowledge, and so you learn quickly what your limits are and to not over promise and under-deliver. An iterative approach helps ensure your mistakes are minimal and generally not impactful in a negative way on the overall project.

Finally there are (yes they are rare, but they do exist) overbearing clients who manage their people and their consultants like it's a sweatshop. Generally speaking I find that it's hard to extract a perfect set of requirements out of a client when in the early stages. I find that an iterative approach is best suited for clients, thus the full picture is not completely understood when the project begins. Most of the time the client appreciates this lean / scrum-like approach, and so it helps me extract requirements throughout the life of the project. The overbearing client, however, sees this as a window of opportunity to take advantage by increasing scope, or changing directions completely, and in some magical way think they'll be able to squeeze you for your time and expertise to get a bargain basement deal. I have an at-will clause in my contracts for exactly this type of client.


I have recently met one example of this type of client, it was so damaging to my company that the owners ended up selling it. If you could you give an example of this at-will clause I'll try to have it included in future contracts.


IANAL so I would be remiss to provide legal advice here :)


Good article. However, I wonder about the "IT is a small world" bit. If you're a huge organisation of consultants and your organisation develops a reputation for doing a terrible job at great expense, I'm sure that's bad and word will quickly get round. If you're just a couple of guys - a micro-consultancy - or even a one-man band, does the same really apply? I say this mainly because I'm a one-man consultancy myself (in some sense, at least), and a bunch of the other people commenting are similarly positioned.

I was working recently with a hiring manager at a digital agency in London, sifting through some CVs to help them find another contract developer. One of the CVs was of a guy I'd worked with a couple of years before; I said, "Ah, I know this guy. His work was decent enough, within reason, but his attitude was quite problematic and he was pretty aggravating - I don't think they terminated him early, but it was a close call." I pointed out that his CV in the two years since I'd worked with him bore evidence of that attitude - lots of very short contracts which plainly hadn't been extended. The hiring manager put his CV in the reject pile, unread, on the strength of my non-recommendation.

There are over a hundred digital agencies in London, though - and that guy isn't going to have worked at enough of them, throughout his entire career, that his bad reputation would really precede him at every one. In fact, he could do a three month stint at half of them and that would still be a good chunk of a career. Or he could move to a different branch of the industry (finance, let's say) where he wouldn't have any reputation at all.

So, I wonder, is IT really a small world? Does an individual's reputation really matter that much? It's certainly helpful having a good reputation for all the obvious reasons - but does it really hurt you that much to have a bad one?


There are also customers who have a tendency to not accurately value projects.

For example, if you are making revenue of $1mill/year, and a "IT specialist" consultant convinces you (legitimately) that they could increase that by X% or give you X% in savings, then how much is that person worth to you? Certainly some non-trivial fraction of X%. But often there are people who don't do this math and are confined to thinking of consultants as labourers and then they try to drive it on price.

They are not stupid people, but if you step back and take a look at the company, you can see who is holding it back.


I rubbed shoulders with a consultant that used to do real estate contracts with large supermarkets here in the UK.

Sometimes they would win contracts by basically bribing the hiring team with cash incentives. Once he told me that one of the these guys asked for the money for cash when they were out entertaining at a strip club. He wanted the money there and then for girls and coke.

It's worth bearing in mind that some of these kickbacks might be going to employees in your own company.


If only employers put in a few more minutes researching potential hires, they would save themselves the stress of having wasted a ton valuable resources on these dumb weights. Good consultants can mean massive growth just as bad consultants can mean massive decline in fortunes.


Absolutely true, the customers do carry significant responsibility as well.


True! Everyone has a part to play.


What about the situation where a firm hires consultants expressly to do something that will not make them money? To complete a project that is simply not in the best interests of that firm?


That is why we need a companion post entitled "Good Customers vs Bad Customers". I work full time at an investment bank and about 15 hours per week on the side doing consulting. I've done side work now for almost four years for one guy. He pays me 1/4 what I make in my full time job and gives me 10x the hassle. I've done multiple projects for him where the payback period is 2 months and the NPV is 6 figures. He takes it for granted at this point. I'm slowly steering him to value based pricing for that reason.

Every once in a while though he sets me on a ridiculous project that is the financial equivalent of digging a hole and filling it back up again. I see pet projects like this all the time at the bank. At least there, it isn't impacting people's personal bottom line. This guy's motives for them, I don't understand at all.


>He pays me 1/4 what I make in my full time job and gives me 10x the hassle.

Why do you still accept work from him?


I run a small consultancy (myself, though I engage peers whose work I respect as subcontractors for larger jobs), and the #1 issue I've faced are company representatives who look for consultants to make them, personally, rewarded: Their concern is primarily their own personal benefit, not the benefit to the company. Whether it's professional sports tickets, expensive dinners and lunches (which sound small in the small, but when you have a company representative who schedules regular "status meetings" during lunch/dinner, you know where it's going), and so on, it is an industry absolutely dominated by kickbacks, the whole notion of which feels dirty and fraudulent.


"Don't commit fraud"

Next.




Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact

Search: