Hacker Newsnew | past | comments | ask | show | jobs | submitlogin

The dirty secret is that IBM Watson is just a brand for their army of data consultants, and their consultants aren't very good. In my experience working for a competitor in this space, IBM Watson was widely agreed to be smoke and mirrors without much going on


Former IBM Watson data scientist here.

At first I was annoyed by your comment, but then I realized how true it is and sulked instead.

The good consultants are leaving as soon as they hit the end of their first promotion cycle. The duds stick around and assume the upper-level manager roles. The group is in bad shape now and poised to get worse in the coming years.


As someone who's worked in that space, I'll repost the short version of a comment I made before: it's an economics problem.

Services Profit = Bid - Employee Cost + Upsales

Bids are only so flexible. Employee cost is much easier to minimize. So inevitably, all consultancies trend towards providing the cheapest employees that will satisfy the customer. And if the customer isn't constantly vigilant, the quality can get pretty dire indeed (BAs who just learned to "code" yesterday).


Holy shit man. This was literally my experience with Accenture. I worked side-by-side with them on a massive IT project. Their team was like 60 liberal arts grads willing to work 80 hours a week configuring some COTS software and 4 managers making sure they don't go home. I think they just use India now instead.


> I think they just use India now instead.

Depending who you get this could be an upgrade. I've met some damn good Indian programmers who work for contracting shops (and, sadly make way less than they would in the states). But, I've also met some who literally don't know how to code.


The ones you encounter in the U.S. are the cream of the crop. It gets very spotty when you look at western-based outsourcing shops like Accenture or Deloitte and then when you go to Persistent, Capgemini or Infosys it's a shitshow.

Fundamentally, the problem is that these firms are used for work that is not valued by either the customer or the implementor. The primary concern is cost. If you are a developer for a tech company working on core products, you drive revenue and are important. If a feature you implement is marginally better than the competition, your firm can win the market and, due to economies of scale, the revenue gain will be huge. Because revenue is sensitive to small differences in quality, you want the best possible developers that you can afford.

As a result, developers viewed as part of the firm's comparative advantage are paid well and treated well. But if you are a DBA working at walgreens, then you are not a part of the comparative advantage of the firm. If you are marginally better at your job, revenues will not go up. You are a cost that will be outsourced in a heartbeat if the firm could save a dollar. Or like doing landscaping at Google. Regardless of how awesome Google is, they are going to look at their landscaping expenditures purely as a cost. Revenues will not go up if you do a better job. Thus they don't care about getting the best possible landscaping, they want adequate landscaping, like water running out of a tap.

That's the type of work that is passed on to these outsourcers. It may be technical in nature, but there is little to no perceived marginal gain in the work being of a higher quality than the minimum amount necessary to be fit for use: maintenance of products that companies no longer want to invest in, but they have service contracts in place that require maintenance. The goal is to minimize cost while not breaching the contract. Or bespoke work in the B2B space where you don't get the type of economies of scale that result in a meaningful revenue bump when one particular piece of code exceeds expectations. In all these things, the driver is the cheapest talent such that the output is adequate.

That means that these jobs are not rewarding to the developers who do them, and so these firms have huge problems with turnover and keeping good developers motivated. Those developers who remain are the ones who don't mind working on code that no one cares about, being paid poorly to do it, and being treated as expendable. In other words, the least motivated, passionate developers are the ones who remain. It is no wonder that they will tend to be the least talented.


> the problem is that these firms are used for work that is not valued by either the customer or the implementor.

Truth. I've noticed many contractors take specs _very_ literally. While that might be good in that the result won't be _wrong_, the product usually becomes quite brittle and can't "scale" well.


One thing I love about HN is the willingness of people to name names in stories. I don't always do it because of fears of repercussion, but I appreciate people like you who do. Thanks for saying the word "Accenture".


In this case, the names are completely interchangeable. I had precisely the same experience years ago on a large ERP project on which Deloitte was the lead consultant. After the beachhead team (which was good) rolled off the project, the backfill consisted of an army of fresh-outs straight from Deloitte's consultant boot camp, billed out at a rate a developer with 6-7 years of experience should have cost.


People have very public debates about consumer brands. Apple or Google or whatever. These B2B businesses can stay out of the spotlight and get far less press. There's an open market for their services and their value is based on reputation, so why not express some unvarnished opinions? Especially when I'm being anonymous online.


+ ISG


I worked for PwC BPO but observed the management consultancy before IBM acquired them (grey day). Take a graduate, any graduate, send them to boot camp to learn java for 8 weeks, deploy lemmings to client at a lot of money per hour, replace dead lemmings with new fresh lemmings. Those that could handle it would rise through the ranks via attrition. Great business model, awful code.


Funny you should mention BA, since they have had a series of high profile IT meltdowns since outsourcing...


Sorry, in my use *Business Analyst (aka business majors who want to get into "that computer thing")

BPO / offshoring is a whole other can of rotten worms.


I know, it just seemed apt :-)


I was shocked to see this comment as it rang so true for me. I worked at Oracle for many years, and I think it's a pretty well run company, but this theme of "the smart people leave, the dumb people stay and promote other dumb people" is very true. Mark Hurd is the current CEO, and I think he's really good (even though all the people on www.thelayoff.com absolutely revile him), but there is a reason he came from outside the company.


> "the smart people leave, the dumb people stay and promote other dumb people"

This is sometimes referred to as the 'Dead Sea Effect'.[1]

The same way that water carries salts and other minerals to the Dead Sea, and then the water evaporates while the salts accumulate.

Similar effect with hiring a mix of good and bad people, and over the time the good ones leave because they have options while the bad ones stay and accumulate.

[1] http://brucefwebster.com/2008/04/11/the-wetware-crisis-the-d...


Don't feel bad. All the good IBM employees are former IBM employees


Is it a bit like Deloitte? I keep hearing it's the shittiest of the bunch, but you do it for a while so you can move on and get a better job (or start your own company).


In this business, there is no rock bottom. I have seen people who would not know how to work with Java classes without main method. They were working on $100M projects.


I know for a fact that one of the subsystems for a major energy multinational was supposedly "Object Oriented" but which had absolutely no instance variables and no instance methods. Instead, "objects" were actually represented as what were essentially contiguous regions of arrays of structs, and everything was implemented in the form of oodles of cut-and-paste variations of essentially the same 4 index incrementing merge-like deeply nested looping/conditional class methods which called the other variations recursively. This wasn't an obscure system either, but was actually responsible for hedging all of the trades for that major energy multinational! When that subsystem had a bug, multi millions of dollars of trades would go un-hedged each minute.


Just a week ago I did a little side-job for a client who was previously helped by a moderately-sized web development company (100+ employees) with a WordPress site. They were too expensive for him.

There's so much I could say about the crap I found (and if someone asks I'll be happy to!), but I can summarize it by saying that it was bad even compared to the what I've come to expect from WP sites that are plugin- and WYSIWYG-layout-builder-laden, to the point of being utterly unmanageable from the WP backend interface, even on a local setup, because just exploring the ridiculous custom interface pages take ages to load.

I truly cannot imagine this code being written by anyone but a lowly, unsupervised intern at this company. And yet, based on my experience, it was probably just some 'regular' employee, unnoticed by his manager, and his manager, and the client none the wiser because how should he be able to assess competence.


I and I'm sure others here would be delighted to hear those stories about the crap you found. Those are often the most interesting kinds of stories, fire away!


I'm not disagreeing with you, but from what I know about WP, it could have been auto-generated. The plugin ecosystem is extremely varied and does lots of crazy shit


Densely packed structures with no object oriented code sometimes make sense in latency critical code and are not uncommon in financial systems.

That being said, if they weren't trying to eke every microsecond of performance out of the system, then that's pretty poor design, maintainability wise.


That being said, if they weren't trying to eke every microsecond of performance out of the system, then that's pretty poor design, maintainability wise.

She wasn't trying to eke every microsecond. There were some smart guys on our team, and we were all afraid of that code! The programmer who wrote it would fire back about her Mathematics PhD if you ever tried to bring up Object Oriented design. When I was there, she would sit in the cafe downstairs eating a sandwich, until something broke. She wrote herself fantastic job security!


Might have been a spreadsheet port?


More of a case of writing FORTRAN in another language.


More than once I've seen "experienced senior developers" who write code in Microsoft Word and then don't understand why the smart quotes cause compiler errors on their string literals.


C'mon man, I hadn't had my coffee yet that morning.


I hope this is a joke


Unfortunately, it is not. I heard about idiocy like this a long time ago from a developer friend of mine, I was also skeptical. Don't know why but have witnessed similar levels of stupidity too often to keep track. There literally is no bottom. None.


I really have a hard time believing there are people so incompetent employed as software engineers? How are they not caught out? How do they get hired?


BigCo (using Ruby On Rails) that I worked for once hired a developer. He'd worked for Microsoft and the only 'issue' was that he had to use a mac in our environment. Or so it seemed.

After two full weeks of him quietly 'working' at his new MacBook, I got a bit suspicious about the fact that he'd not asked for help once. So decided to check up on him and ask him how he's settling in with the codebase and if he could use any help.

He opened up his editor to show me something he was struggling with. I gave some suggestions (look at this code here, do something similar).

After some back and forth it became clear that: 1. he was entirely unfamiliar with Ruby On Rails 2. he had no idea how to use a Mac 3. he had not bothered to learn how to use a mac while sitting at his desk for eight hours a day for two full weeks 4. his approach to copying some existing code and then changing it for the new use case involved mostly clicking through the Edit menu. He was less familiar with keyboard shortcuts than my mom and her mom. CMD-C was not in his vocabulary.

He was let go shortly after, but of course he did get a full month's pay, an amount that would comfortably support the frugal freelancer for at least another three months.

Honestly, I'm mostly thankful for this situation. It cured a decent amount of my 'impostor syndrome'. It also left me wondering how these kinds of things happen.

This company was one that lots of good developers would want to work for, in one of the most desirable cities in the world, and they were constantly in need of good developers. I was baffled by the mismatch between what the market offered (plenty of good developers, more than most cities) and their constant need for developers, to the point of hiring this guy and not realizing that he didn't know the basic copy and paste keyboard shortcuts until two weeks in.


There are many variants. I was hired into a group based on tons of positive reviews of my work from a variety of senior engineering roles.

When I got into the group, I was asked to do stuff I had never done. Okay, I start to learn it, but slowly.

Then I was reorged into a different group, doing stuff I had never done. Okay, I start to learn it, but slowly.

Then I was reorged into a different group, now I'm a Developer, when I've never programmed professionally before.

I am far far worse than my colleagues at even simple tasks. It's not that I'm not trying, I'm working tons to try and learn data structures, and programming to be able to complete my job.

But it would be entirely valid for my coworkers to feel the same way about me, as you describe about this guy.

It's likely going to take another 4-6 months before I'm competent at my job. Will my colleagues still care at that point? Will I be reorged into another position by then? Who knows?

And I'm an expert at many fields, just none of the ones I'm being asked to do.

I'd leave, except my colleagues are great, the topics are great, and if someone is going to pay me to learn how to be a proper developer, I'd be stupid not to do this.

But it's hard as fuck, and I'm certainly not pulling my weight.


Not knowing keyboard shortcuts is a bit much though, wouldn't you agree?

I do think that he might've had a chance (perhaps downgraded to a junior position) if he'd shown willingness to learn though. The fact that he just sat there for two weeks pretending to be busy was the primary reason he got let go.


I don't know many keyboard shortcuts that most of the developers know.

Hell, I spent time stuck on a problem because I had never used code folding before, and couldn't find the import statements I needed to edit.

Would you agree that not understanding code folding is a bit much?

I'm not defending the particular individual, or the situation, only giving some context to my comment.


I rarely use code folding. Furthermore, few people other than programmers use code folding.

Not knowing the copy and paste keyboard commands is a completely different realm of incompetence!

But you're right that lots of developers don't know many keyboard commands. I was being a bit too broad. Personally I can't imagine how any programmer would not bother learning keyboard shortcuts (or even better vim keybindings), but I've met plenty who didn't.


It seems odd that someone would not know the copy/paste keyboard shortcuts, but the most likely explanation is that he hadn't figured out that it's Command+C rather than Ctrl+C on the mac.

That being said, while using the 'edit' menu to copy/paste is clumsy, I don't see that it would actually have a significant effect on someone's productivity. So I would not go so far as to say that someone was incompetent just because they did that.


Go work in the government where many of these big contracts are granted. You'll see a lot of engineers borderline competent and a few good ones who manage to keep things running.


Typically you get a few good engineers and then eventually they get swapped out mid period of performance for "other projects" (or leave their firm) and there's not really a good option for saying "no" without killing the whole project and going through proposal overhead again to encounter the same problem.

The ones that do stay in that environment either have golden handcuffs or are goddamned patriots and love the challenge. I like to think many are the latter as government is an amazing place to do impactful work that is too important to screw up.


Catching them would require that other engineers are probably pretty rude or mean to them. Asking questions like, "How do you seriously not know how to X?" and reporting them to management. I think most software engineers are more likely to be a little on the friendly side and instead give the bad dev a pointer in the right direction or a few minutes of mentoring here and there. Then, eventually, the bad dev becomes an ok dev, and so on.


I’ve never known software engineers to be a quiet or nice bunch — we love to argue and call stuff out as shit.

Update: I’m not saying this is a good thing, just an industry observation.


Perhaps. I'm a pretty covering-all-bases type person and the most common (often inadvertent) con pulled on me involved people pretending to be good at something they weren't, in some way.

It's somehow really counter-intuitive and uncomfortable to challenge someone's honesty openly, maybe?

For example, I can be relatively rude and direct (without meaning to be about half the time), but when someone tells me a story that strikes me as unlikely or heavily embellished, I feel really uncomfortable challenging the story, because it's tantamount to saying "you're lying".

In the situations where I was 'conned', in hindsight I could have probably found ways to test the person involved surreptitiously. It just didn't enter my mind to do so. But openly challenging them just felt wrong to me, and it still does, because if you're wrong you just accused someone of lying.

So these days I make a game out of finding ways to surreptitiously test the people around me. I often forget how useful that approach is (trust, but test), and I guess your comment reminded me to apply it more.


I think it's generally not useful to attempt to assess a person's honesty through conversation. It is very hard to distinguish between lies, foggy memory, or a poor conceptualization on the speaker's part.

Whether its a good plan to challenge someone's honesty actually has nothing to do with whether or not that person is lying, even if I have certainty and evidence. The question is: what is the best thing I can do for my life? If my accountant lies to me, I will call the police. But if someone turns out to not be skilled as claimed? It depends on context.

It doesn't advance my life to tear down someone else; the best thing I can do is try to build my own understanding and take action. My approach is to be curious, actively listen, and ask clarifying questions. This can be as simple as saying "tell me more about that." Once I have enough information and context, I can judge claims and ideas directly.


To be clear, I try to make sure it's in no way an 'open' challenge. Usually it's an entirely innocuous question that at least for me is a 'tell'. And usually at least a few more of those to make sure.

It's not about tearing down someone else, it's about assessing the validity of someone's statements.

I might have presented it as more suspicious/antagonistic than I meant. My actual approach is pretty much as you describe in your last paragraph.

Basically, my approach to 'new humans' is the biblical adage: "be as shrewd as snakes and as innocent as doves", because I do believe, as in the biblical context, that good people are sheep among wolves. I try to be a good sheep, but I know for a fact that I can't handle wolves without being clever.

So far it works pretty well for me, but I've found it difficult sometimes to explain how I try to be both a sheep but shrewd, calculation but not shrewd or manipulative.


Sounds like you work on some pretty toxic teams or are yourself toxic


Whoa, personal attacks will get you banned here, so please don't post like this again.


Sorry, the post wasn't at all intended to be a personal attack. All I'm saying is that someone willing to immediately call something out as "shit" when it comes from a less experienced dev on their team likely comes from someone with a toxic attitude or someone in a bad working environment. Most of us stand on the shoulders of giants and would have never got anywhere if our mentors were downright rude or mean to us.


I didn’t mean to be taken quite so literally.

That said I’ve witnessed plenty of cringeworthy moments watching members of the MIT community deal with guest speakers during Q&A.


I agree with both of you.

In corporate environments that I've experienced, the otherwise very argumentative developers would never actually challenge Employee No. 9610 in their basic skills. There's a formal distance in every interaction, pros and cons.

But in the few startup environments (<15 people) the culture was much closer, and there's no way that they would not have been 'caught' very early on, probably even in the first interview.


In larger environments this is exactly what process exists for.

Even the nicest manager and teammates in the world don't have to proactively call someone out on being incompetent if every sprint their tickets are going unfinished, etc. And with the tooling, it's an automatic paper trail.


I’ve never known software engineers to be a quiet or nice bunch — we love to argue and call stuff out as shit

I think everyone is going to get a lot quieter, as you don't know who's listening.


Oh don’t get me wrong, I don’t think it’s a good thing to be a jerk. I’m at a startup now with an extremely nice and respectful culture. That doesn’t mean people keep their opinions to themselves.

You can’t realistically look at engineering culture and say wow here’s a sympathetic bunch who stay quiet when they see something wrong. Just read what industry leaders Richard Stallmen or Linus Torvalds write.


Imagine Torvalds at any conventional workplace. HR on speedial.


I resent Linus being bad-mouthed. Only because he is kinda famous his occasional rant is published everywhere. Normally he's a very laid back and reasonable guy. He's definitely not someone who is toxic in the workplace.


This is the real reason the kernel won't move to Github. ;-)


>Asking questions like, "How do you seriously not know how to X?" and reporting them to management.

Exactly. Between my freelancing and full-time experience, I've been involved with dozens of teams. Very few of them react well when you question their abilities, no matter how fair and justified the question.


I've seen this happen so many times and it makes me infuriated and sad.


You know why the FizzBuzz test is used? It's because a lot of senior devs with 10 years of experience really can't code a solution. They work at companies that don't do FizzBuzz style tests.


Bull. The same holds for junior devs.


In the land of the blind. Cyclopses rule!



They have the right demographics and cultural fit.




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

Search: