

Code maintainability, and the joy of outsourcing - bravura
http://blog.metaoptimize.com/2010/03/11/code-maintainability-and-the-joy-of-outsourcing/

======
gvb
The outsourcing part of this piece is a red herring.

The situation is...

1) A piece of software that the original company gave up on.

2) A single developer (single point of failure) that knows the software but
"went postal" so now the new company has unknown software and no expert.

Strongly implied in the story and the advice is that the source code is a
mess; the original company gave up on it, and "refactor" is a repeated
refrain.

The advice is to hire a "good project manager" who will become expert in the
software and parcel out pieces of work to hired hands (the outsourcing red
herring).

OK, we've traded a single point of failure who "went postal" for a new single
point of failure, but labeled him "project manager" instead of "key
developer." That sounds to me like the same problem, the same failure mode,
just a different title on the business card.

A further disconnect is the reference to open source as an argument that the
"program manager outsourcing the work" methodology espoused will work. The
"program manager" methodology as described is centralized control taken to the
extreme. Open source is the epitome of decentralized control. That is a major
difference in philosophy and methodology.

------
brendano
i'm confused who's the "common wisdom" you're strawman-ing against. at the top
you say "managers", at the bottom, "defensive domestic coders"; aren't those
way different?

~~~
bravura
I'm not exactly sure who I'm strawman-ing against.

I know personally from experience in talking to managers that they are _very_
hesistant to try remote collaboration. The prevailing bias is that their
workers must be in the office at the same time within earshot of each other.
But, I've observed very successful collaborations between workers who leave a
skype window open and communicate via audio when necessary.

I also saw people, primarily managers, push-back on outsourcing on
answers.onstartups.com:
[http://answers.onstartups.com/questions/8423/outsource-
basic...](http://answers.onstartups.com/questions/8423/outsource-basic-webdev-
maintenance-elance-vs-odesk-vs-guru-vs-rentacoder)

The objections from coders? I am just guessing based upon personal feelings.
When I went to the outsourcing sites, I had a strange feeling in my stomach,
wondering if I was undermining the value of programming by paying below
domestic market rates.

------
vlisivka
Developers can communicate with each other. It is not hard to write email to
developer, which email address is written in source header.

If developers unable to communicate, they will use copy-paste. They will
create copy of broken code, rename, refactor and fix it, and will use it in
their own code only. I SAW that.

Good code quality is achieved through review system. Someone must just block
bad code, until he will burn out.

