Fog Creek Software
Discussion Board

Liberal Arts Majors

Joel said " . . .because nobody thinks they know how to remove a burst appendix, or rebuild a car engine, unless they actually know how to do it"

It's true that few people would try to remove a burst appendix without training (if it's burst it's too late btw) but I know plenty of people who try to fix their cars without knowledge. Even to the point of rebuilding an engine. In this case, the results are obvious. If you get it wrong, it won't go very far.

This is the wrong analogy though. Anyone can get a manual and order spares for a car. Most cars have a very modular design. Most repairs can be done easily with care and by following the instructions. In software terms this is the same as making very simple changes to a well designed modular system. This is the kind of job that a grad gets. The effects are self limiting unless the coder acts like an idiot. Most software isn't like this yet and I would say that the software industry is a good 50 years behind the car industry in that modular maturity. Open source will go a long way to developing that modularity.

Developing software properly has a lot more implicit design and re-design work in it. Rather like working on cars 50 years ago.

Thursday, May 6, 2004

There's a British comedian, Lee Evans maybe, who does a joke about the average person trying to fiy their car. He says you open it up, look, can't see anything obviously wrong and start touching various bits of the engine - "That's not motor mechanics, that's the laying on of hands. Bloody faith healing!"

Thursday, May 6, 2004

I'm with tongue. Good point. You would read the manual, check  you have the tools, then carefully change what you could. You would not create a car.

Kind of why architecture is important.  My model is that some programmers write the back end stuff, some write the controllers and help the designers develop the views. And there is someone who is concerned with the architecture. Could be one person using different hats. Unfortunately, where I work, everything I do is labled as over teching. My response is that there is one true rule: "things change, plan for it". I've got to wade through hundreds of lines of code with more than that many if statements ... just incredible stuff .... and I turn it into a data structure with an engine to produce the output so now suddenly not only is it easy to change but it's easy to understand how everyhing works without needed to read the code. I can print out the data structure for use in excel or plain text or html or whatever.

Anyhow, I rant, everything I've experienced in the last 7 years of development tells me that architecture and patterns are good but I'm working in a place where I over tech everything.

must remain anonymous
Thursday, May 6, 2004

I've always fixed my own car.

The reason?

Because I can do a substantially better job that the people who have made it their career.

Tony Chang
Thursday, May 6, 2004

*  Recent Topics

*  Fog Creek Home