Saturday, December 04, 2004

Beware of Methodologies

I just read again Joel's Big Macs vs. The Naked Chef article. I agree completely with Joel's commentary, but I wonder if it is because I want so much to agree with the idea that highly skilled individuals can never be replaced.

Let me think...

Yep, that does sound right. This is why I believe OCI has been successful. Higher a bunch of really smart people, and run with it.


Eric Burke said...

Metaphors and comparisons between programming and "the real world" are tricky business. (I'm just playing devil's advocate here).

So McDonalds has mediocre workers, lots of standard procedures, and as a result produces so-so burgers. We are led to believe that the software world is somehow to be compared to this.

Problem is, I can think of plenty of other real-world examples where automation and well-defined processes produce BETTER results than the most highly skilled workers could ever possibly produce.

Consider hardwood floors. A factory-applied finish, according to Norm Abrams, is better than is humanly possible by the most talented craftsman. Yep, the factory - with its well-defined process, often unskilled labor, and automation - produces a BETTER product.

We need to do a better job of quantifying the benefit one gains by hiring a handful of talented programmers versus a whole bunch of cheap coders. I believe a small team with highly-skilled individuals is a better way to create software, but I don't know how to "prove" it. While I think metaphors and analogies are interesting, they don't really prove anything. Unless we can prove we can do the job better, companies will continue shipping our jobs to India.

Kevin Heifner said...

Well said Eric.

Anonymous said...

I'm not sure I entirely agree with Joel.

Methodologies allow people to communicate in what I like to call a private language; I can discuss design patterns with other people because they are laid out and specified in great detail in a number of tomes. I can talk about software development as more than just typing lines of code because there are so many methodologies out there to choose from, but they all have common terms and all go through stages and cycles.

If we want to return to the subject of chain food (not the food chain), take a successful but not monolithic chain as an example of a methodology that works - i.e. Macaroni Grill. They have chefs who do a bit more than drop items in fryers, the food always comes out consistently good, and they make money. So how does the methodology fail here? It's not always (or even that often) that methodology = mediocrity.