Outsourcing

I've
been thinking about outsourcing a lot recently. The difference in the apparent
project costs is very appealing, from a management standpoint, but I wonder if outsourcing
large chunks of development can really be successful over the long term. Successful
outsourcing projects have very specific requirements and deliverables. You hand
them off, and viola, you get back a finished project. Hopefully the customer
requirements didn't change in the meantime. And hopefully you got all the requirements
down. This requires a lot of rigor in requirements definition, and also in getting
final buy off from your stakeholders (with no, or very little, opportunity to change
their minds.)

I
missed this
post from Johanna Rothman
back in September. (Or maybe I hadn't found her
again yet, I lost some folks when I switched machines.) She talks about how
managers would be smarter to assign people to only one project at a time, and to only
one priority task at a time. She concludes:

 

I'm
convinced that the reasons outsourcing works is that it forces organizations to document
requirements and the outsourcers work on only one project at a time. The outsourcers'
management can then choose any number of useful product development practices that
increase the outsourcers' productivity. Management can't change their minds and refocus
the outsourced project(s) in the same way they feel free to refocus the internal projects.

I
have been working in the software industry for 22 years, and I have never once worked
on only one project at a time. Even when I was managing for only one product,
there were always those other side projects that needed to be taking care of.
What Johanna points out is spot on; at MSDN we currently have one full project
outsourced, and if it weren't outsourced, if we were working on it internally, we
probably would have de-prioritized it in favor of a more important project.
As it is, it's pretty much out of our hands, and soon we'll be delivered a completed
project.

The
other things that I think about, though, are the decisions all along the way
of every project I've worked on, and how, for the most part, those decisions improved
the final product. In addition to being good at analysis, documentation and
communication, great PMs are flexible, quick on their feet (nimble), adaptable
and good decision makers. We wouldn't value those traits if they weren't required
in successful projects, and I don't think great requirements and single-minded focus
will necessarily yield a great result. The conclusion I ve come to is that you have
to carefully pick your projects to outsource, using it just like you would any other
tool.