Stacey on Software

Agile

Outsource? Yes! Offshore? NO!!!

March 19, 2009

I read an article (well, it’s more of a slide-show) this morning that just set my hair on fire.

Now I understand that to many folks in I.T., outsourcing is analogous to offshoring. So I can understand at some level why an article like this would be published.

Today we are weathering the worst economic crisis some say since the great depression, but at least in the last 30 years. We are losing jobs at an alarming rate, and entire industries are at the point of collapse.

Hence, my hair on fire. Don’t you think we should maybe be a little protective of the jobs we have left?!

I agree with each of the headlines - each discipline mentioned does seem well suited to outsourcing. Each process mentioned is decoupled enough from internal business operations so improvements can happen outside the core organization in a controlled fashion.

However, I vehemently disagree with much of the reasoning stated in the body of the slides. I’m only going to pick apart the first two slides because they’re closest to my heart and expertise. Anyone else with their hair on fire want to tackle the rest? :)

1 - Application Development

My company’s core expertise so I couldn’t agree more. Definitely starting small is a good idea because you want to ensure you can work well with the team you’ve chosen. They need to prove to you that they can deliver, reliably. This means that they can communicate effectively with you - they understand your needs, they can communicate their challenges and questions to you in a way that you understand. This also means that they are competent in managing your project and the inherent risks in software development, they hire competent developers, and they manage them competently.

These are not easy things to achieve. I personally believe they are easier to achieve in smaller organizations - a group may achieve it within a larger organization but it doesn’t necessarily mean that your project will be assigned to such a group. With a smaller organization you know you’re dealing with the best team, but they may not be available exactly when you need them unless you put them on a retainer.

2 - Testing

Now, an associate of mine would probably be more articulate about this, but I’ll take a crack because we do a lot of testing - it is an integral and critical component of successful application development.

If you think communications and understanding is important for software development, that’s nothing compared to communications and intuition required for effective testing. And intuition is so incredibly culturally oriented I can’t imagine this happening effectively offshore.

Look at testing something like Twitter. Robotically you could ensure that the post you enter is the post that’s published. Intuitively however you could ensure that 140 characters is enough to get a typical social message across. Intuitively you could think that it might be a great idea to update your Facebook status from your Tweets, and you might explore how to do that. Intuitively you might discover a new way to craft an XSS (Cross-Site-Scripting) security attack.

Now you could break testing down into many areas, certainly there’s more intuition required for exploratory or “kamakaze” testing than for simply following a defined procedure like a robot. There is intuition required in making defined procedures. I’d argue that if you’re paying people (internally or outsourced) to be robots, you’d do better paying people to automate the process to improve your error margin. Start with the people you were paying to be robots, you may find they have the best ideas for improvement.

There, the flames have subsided a little. Do consider outsourcing to reduce your costs. Don’t automatically go offshore assuming that you’ll get the best value. Don’t assume that the best price is the best value.

I heard it said once, “If 80% of software projects are doomed for failure anyways, if we offshore those and save 50% we’ll be much further ahead!“.

If 80% of Three Wise Men projects failed, we sure wouldn’t be where we are today. I fully attribute our excellent success rate to our people, our ability to understand and proximity to our customers, and our methodologies.


Welcome to my personal blog. Writing that I've done is collected here, some is technical, some is business oriented, some is trans related.