11.2.08

Ooh... Shiny!

In my experience, one of the great and largely invisible forces of the business world is Shiny Object Syndrome. I don't think you'll find it in the DSM-IV but it's still a debilitating mental disorder, or at least a frailty.

In Shiny Object Syndrome, you get distracted from your work by something bright and shiny that you see out of the corner of your e --- hey, what's that driving by outside? Is that the new Prius? They look pretty cool now. Much less clunky. I wonder what kind of mileage those get now. I'll just go on-line to the Toyota site and see... (Many hours pass while I configure my dream-Prius, and weigh the pros and cons against the Mini Clubman that I really want...)

That, in a nutshell, is Shiny Object Syndrome.

As applied to software development, most engineers will say that Shiny Object Syndrome describes the scenario wherein Marketing demands new but useless features that look good in a trade-show booth. But there's a more insidious and dangerous side to Shiny Object Syndrome, and it applies directly to managing remote or offshore teams.

Shiny Object Syndrome, as applied to outsourcing:

I'll sum it up thus:

"We used to like our outsourcing partner, but lately they suck. Let's go get a new partner."

I've personally seen this play out enough times, and I've heard it described by others enough times, to suspect that this flavor of SOS is a crippling business problem.

You might have a lot of reasons to believe that your existing partner sucks. For example, from my own experience:
  • Maybe your partner "pitches" new work to you too frequently.
  • Maybe your partner hires junior engineers who don't have enough experience to work on your complex projects.
  • Maybe your partner has high attrition.
  • Maybe your partner's rates are too high.
  • Maybe the deliverables from your partner team are of low quality.
Each of these are real problems. But let's talk briefly about these problems, and the various ways you could fix them:
  • Too much sales pitch
    • Shiny Object solution: Let's get a new partner, and a new sales team, and maybe they won't give us the hard sell. Likelihood of success: Mixed. Basically luck of the draw. Maybe you'll get an aggressive partner and sales team next time around, maybe you won't.
    • Boring hard-work solution: Let's have the hard conversation, confront the person or people in question, and articulate the fact that this behavior is unacceptable and is jeopardizing the partnership. Likelihood of success: Pretty high. This plays to human nature and financial incentive. Tell people what needs to be fixed for them to continue enjoying your business, and they'll try really hard to fix it.
  • Engineers too junior
    • Shiny Object solution: Let's get a new partner, some place where engineers are more senior. I've heard engineers in Russia are more senior. Let's go there! Likelihood of success: Mixed. Basically luck of the draw. There is variance in average experience level across teams, companies and locales. Maybe you'll get lucky and end up with a senior team. Maybe you won't.
    • Boring hard-work solution: Let's have the hard conversation, confront the partner, and articulate our requirements for seniority, in clear, concise language, devoid of vernacular. Or better yet, let's interview everyone the partner hires to make sure that they meet our expectations and that we want them on our team. Likelihood of success: Pretty high. If we're picking who gets to be on our team, chances are we can get it right and help our partner hire to our expectations.
  • High attrition
    • Shiny Object solution: Let's get a new partner, some place where the market isn't so hot, and maybe people will stick around a bit longer. Likelihood of success: Low. In my experience, this is likely to backfire. Even in India, where the market for software development talent is white-hot, good people don't leave for more money. They leave because they're poorly managed, treated like dirt, and asked to do boring repetitive work that doesn't challenge them or improve their skills. The Shiny Object solution here may get you a team of engineers that stays with you longer, but do you really want people to stay on your team because they can't get a job anywhere else?
    • Boring hard-work solution: Let's treat our contract teams like part of OUR team. Let's have all-hands meetings and tell them what we're working on next month, and why. Let's recognize their work and achievements. Let's give them some pats on the back. Let's tell them what we expect, and hold them accountable to that. Let's make the offshore center a nice place to work, and let's invest in the team, just as if it were a team of our own employees... Likelihood of success: Pretty high. In teams that I had a direct hand in managing, in India, during the height of the recent tech bubble, I've had very low attrition - lower in fact than my US-based team. If you treat people well, give them relevant, visible work, and let them know what's expected of them, they'll generally like working for you, and they'll stick around.
  • Too expensive
    • Shiny Object solution: Let's get a new partner, some place on the planet that's cheaper, and let's do a better job on the contract. Likelihood of success: Pretty high. For a little while. One of the rules of supply-and-demand is that cheap labor will almost always draw global interest, and salary will almost always go up. So what ever competitive advantage you get in a new locale will be short-lived. But when you sit down to negotiate a contract, you get to decide what you'll pay. So you can make this one come out to your advantage when you set up a new partnership.
    • Boring hard-work solution: Let's have the hard conversation, decide what "good rates" are, confront the partner, and get the rates we want, even if it means getting the lawyers involved and voiding the existing contract. Likelihood of success: Pretty high. If you're on the buy-side of a partnership, you always have all the power. You always get to decide if the services you're paying for meet your expectations. And you always get to decide if it's time to re-do a contract. Your partner will tell you otherwise, because it's in their financial best interest to do so, but remember, you write the checks every month. It's tough to make yourself use this power, particularly if you're a software manager and not a business person, but you can do it. Or you can get one of your salespeople to come in and help...
  • Low quality
    • Shiny Object solution: Let's get a new partner, with a better process, smarter engineers, and more commitment to quality. Likelihood of success: Mixed. Generally, people try to do good work. If your last team produced low quality, and you don't change anything but the people, you're back to luck of the draw. Maybe you get exceptional people who can overcome what ever obstacles tripped the last team, maybe not.
    • Boring hard-work solution: Let's figure out why the quality is low. Do the engineers on our team not care about their work product? Then let's put them on notice about our expectations, and let them know their jobs hang in the balance. What? We haven't written down our quality expectations, or made them analytic and objective in any way? Well... let's try that first. Likelihood of success: Mixed. If there were a universally applicable quick fix for high quality, for starters I wouldn't have had a job for the last 8 years. This is tough to get right, but those who have gotten it right have sharpened their pencils, figured out what levels of quality they wanted, how they would measure that quality, and how they would test for it. Then they held their teams accountable to that standard. Without that hard work, quality is just a matter of luck. Which is a poor plan.
In all of these very real scenarios, the problem you're facing might initially drive you to look for a new partner, with the hope or promise that the new partner will fix all your problems for you.

In my experience, it just doesn't work that way. What does help is a little institutional Ritalin - take your meds and focus...

In each of the scenarios above, the focussed, hard-work answer is at least as effective as the shiny object answer. In most cases, the focussed hard-work approach is better.

Human nature wants a quick fix. But a much more solid approach to troublesome business issues is to focus in great detail, with analytic rigor, on the problems at hand, and not to be seduced by something that promises to solve them all your problems in one fell swoop.

If you go for the shiny object solution with respect to your sourcing partnership, what will likely happen is that you'll replicate your old problems, in a new locale, with a new partner.

It's better to do the difficult thing, and to look for root causes -- Why does our partner hire people too junior to meet our expectations? Why do we produce low quality with our partner team? Be analytic about the root cause of your problems, and solve those problems. Don't be naive about the prospect of simply chasing shiny objects until your problems go away.

Now that we've laid out this simple advice, we can move on to... Hey! It's stopped raining. Let's go ride bikes...

1 comment:

Outsourced Software Testing said...

Really nice article! Your blog is quite interesting and informative.
By the way thanks for sharing the article. Have a nice day!