Fog Creek Software
Discussion Board

Equating Cab Drivers to Software Engineers...,1759,1619426,00.asp

Superfluous analogist editorial crap. Someone reciting their 'expertise' on a topic (in this case, software engineering) without being an expert (has this fellow developed any profitable software product?). I fear the MBAs in the world that read this filth and believe it . . . nah, I don't fear them . . . I fear the results of a software development company with this mindset.

I'm getting rather tired of individuals bringing themselves up to such a high level, that anything outside of what THEY actually do (in this case, magazine editor) can be equated to a monotonous/mechanical process. Something repeatable by any lowly goon . . .

Of course, this comes from the same editor who believes GOOGLE should be our operating system (vaguely attempts to make another analogy):,3959,1054579,00.asp

What a complete tool.

Wednesday, July 07, 2004

I agree that the author is wrong if he actually advises people in college right now that programming is a not a valuable skill to have. But I have the opinion that you're much more secure as a programmer if you specialize in some domain. So I agree with the writer a little bit.

I'll point out that you've fallen into the trap of attacking the author without actually refuting any of his points...

Rob VH
Wednesday, July 07, 2004

That's a rather strange article which badly needs an editor to straighten out the flow. 

I suppose the author is trying to say that being able to write code (in any language) is becoming more common.  As it does so the magic of the ability disappears and it becomes harder to earn a top salary with just the basic ability.  So one must learn how to add more layers of ability or additional and more valuable skill-sets in order to differentiate oneself.

I don't see anything too wrong in that concept.  The use of the programmer as cabbie metaphor is a bit forced and entirely unnecessary.  But the point, that a person who can drive isn't too valubable, but a person who can drive and has learned evade and escape maneuvers is quite valuable, is something to consider with respect to programming.

Wednesday, July 07, 2004

In a way the guy might be right. Imagine 100 people. Perhaps 90 of them could pass the test and get a hack. Then maybe 70 of them could really do the work. It's one thing to drive to church on Sunday but another to look for rides, listen to riders, and drive and work with all the people like dispatchers etc. But I would argue that from 100 people you could only get about 5 who could hack the code.  Those 5 will always earn more than those 70.  Supply and demand. I do believe his mistake is thinking that there are as many people who can code as can drive taxi cabs.  We are a LONG way from that and I doubt we will ever be there. Maybe some countries might have a higher percentage of citizens who can work with symbols (and have the persistence and mental flexibility).  Obviously the guy is beyond his grasp.

Wednesday, July 07, 2004

Analogies are common.  Good analogies are few.

In this case, I don't feel the analogy to a taxi driver is a good one.  With all respect, driving a car is an easy task for the brain to handle.  That's why we let kids as young as 15 learn how.

While coding is not difficult to learn, how to develop software well is not such a trivial task.  It requires intuition and psychology for UI design, interaction skill for working in teams, and just plain talent.  Not everyone can do it.

I do discourage young people from claiming they have experience programming by saying they know HTML, not only because it's not programming, but because HTML knowledge is so easy it's like a commodity.

The author seems to imply that programming knowledge is binary (you got it or don't), but the reality is far from it.  Every developer must be evaluated individually, based on their knowlege, as well as their deliverables.  I've never seen a smart interviewer that didn't do so.

If you want to compare software developers to some other trade, why not try 747 pilots?

Wednesday, July 07, 2004

"I'll point out that you've fallen into the trap of attacking the author without actually refuting any of his points..."

What points are there to refute that the OP didn't directly deride in their subject? The article in question basically states that wizards simplify programming to a menial skill similar to cab driving, and the OP disagrees. There really isn't much more in there beyond that.

Personally I could go either way on this. I do think a lot of tasks (and I'm thinking of achieving the result, not whether it's "programming" or not) that once required specialized programmers are being degraded to almost data entry skills (an entire, highly-complex project I worked on once could be replaced by InfoPath and a low-level "document specialist", for instance), and businesses are getting to the point where their IT is satisfied and thus their headcount needs diminished. I do think the era of big-IT is over, and ultimately many of us are actively engaged in projects whose ultimate purpose is to remove the need for specialized IT workers.

However, I think it is grossly ignorant (and stunningly naive) to presume that immediate gratification of modern tools (dropping a component on a form) means that real software development is easy, anymore than Microsoft Access makes database design easy. This is a recipe for disaster, and lots of firms with competent employees still manage to create utter crap with such "simple" tools.

Ultimately I find it interesting that for software development to be a credible profession we need to do something so amazingly unique and unachievable by the common man. How many other professions have this requirement? Hell I can pull figure out how to pull teeth, I can understand the law, and I can assess risk of a prospective insuree. This doesn't mean that dentists, lawyers, and underwriters are "just like cab drivers".

Dennis Forbes
Wednesday, July 07, 2004

> If you want to compare software developers to some other trade, why not try 747 pilots?

It's cheaper to learn (to practice) programming than to practice flying a 747. Before PCs, only a corporation (or university) could afford to buy a computer ...

Christopher Wells
Wednesday, July 07, 2004

I agree with a lot of what he says.

The accidental aspects of Programming are being abstracted away by successively better tools and environments. Programming needn't be about low-level coding; the essentials should be masterable by anyone who can think logically.

Admittedly the tools aren't here today; you can't build a UML diagram of your (non-trivial) business logic, press a button and there's your application. But that's the way we're heading.

You will still need people to build the low-level abstractions. But most programmers spend a lot of time on low-level stuff that the end of the day isn't essential to what software is about - codifying requirements, capturing behaviours, architecting information, modeling the world.

Of course none of this should worry if you are a Developer rather than a Progammer.

Wednesday, July 07, 2004

Sorry,  but I agree with the author.  And I agree the analogy is bad.  A better one would be chair maker.  In the 1800's it was hand made, required a great degree of skill to be any good and the number of available resources were few.  In 2004, chairs are made by machine, in many cases without a human beyond the design phase. 

While we are not there yet with software, it is moving far faster than cabinetry makers moved.  It is possible today, for an unskilled person to use a language, like VB or VBA to write fairly complex processes.  This person makes just above minimum wage and while it may take them 10 times as long and be a long term PITA, it works for the local manager in both resource and budget. 

Departmental solutions are the skunk works projects of IT.  People get some kid out of high school or who has been tinkering around and uses them to build a database for "X".  Ten other departments do the same thing.  At some point a solution become critical/essential to the enterprise and that one get sucked into the IT realm.  There the developers lament the poor coding, bad database design, et. el., but end up supporting it.  This means far fewer IT people are needed and their skills need to be more varied.

Given the direction would you suggest your college grad become a chair maker?  Perhaps, but would really suggest it for "college graduates" in general?

Sounds like this writer is onto something.

Wednesday, July 07, 2004

"A better one would be chair maker.  In the 1800's it was hand made, required a great degree of skill to be any good and the number of available resources were few.  In 2004, chairs are made by machine, in many cases without a human beyond the design phase. "

A far worse analogy. :-) Ultimately there still is a highly skilled chair designer, which is what can be compared to a developer, the difference is that most people are satisfied with a few models of chair - the market is satisfied with what the market has, and people aren't getting custom chairs designed for their own arse. This is the state that IT is maturing into - already created solutions are good enough for many needs.

Dennis Forbes
Wednesday, July 07, 2004

You wanna go sath o' the river mate?
This time o' night?

Wot do you fink I am?

Yes, my good man, and I shall pay you handsomely.

Very well, guvnor, you're the Marketing Toff, aintcha?

(cab drives off, a lone chimneysweep is seen testing some chimneys in the background)

Simon Lucy
Wednesday, July 07, 2004

That article was poorly written.  Instead of wasting my time with paragraphs of psuedo-intellectual arrogant guff the author could have condensed what he was trying to say into a few sentences. He could also have chosen a better analogy to get his point across.

Sorry, but life is too short to waste time reading that sort of claptrap.

Wednesday, July 07, 2004


Wednesday, July 07, 2004

Re: cheapness of learning to fly - I know some flying schools start you out on MS Flight Simulator :)

Walter Rumsby
Thursday, July 08, 2004

I agree with the author. Development skills *are* being eroded by tools that abstract the low level layers more and more. Soon software will be custom built and the only programmers around are those with very rare skills. Think of the auto industry and tunning shops. There are a lot of cars around, but only a couple of people work with cars the old school way.

I expect to reach the point of rupture during my lifetime (I'm 25). Coding is becoming more and more irrelevant.
And I don't know with what I'm going to replace it as a job.

Thursday, July 08, 2004

I guess since reading and writing are such common skills, we won't need magazine writers or editors. 

Peter Coffee might as well pack up his bags, because my cab driver has got himself a new job writing for E-Week.

Thursday, July 08, 2004

> I expect to reach the point of rupture during my lifetime
> (I'm 25). Coding is becoming more and more irrelevant.

There may be only a couple of people who work with cars the old school way, but how many mechanics are there?  How many automobile designers are there?  How many people are there that invent doodads like those beaded seat covers, air fresheners, and such?

Maybe it's because I'm as much IT as I am a web-dev -- gotta love small school with nebulous job descriptions -- but there's no way I believe that my job will ever be replaced by FrontPage, InfoPath, or some other tool.  (I may be replaced by another person, but I won't go there, too chilling to think about.)  There are people, teachers, with doctorates and master degrees who need help importing email, who don't know HTML, who don't grasp relational databasing.

To say, "You'll need to know your business logic, how to use a mouse, and where the compile button is" is one thing.  To actually implement it, that's another parsec all together.

And even if, heaven forbid, Microsoft comes out with the HAL-9000 of Office Suites tomrrow (no pod bay door jokes, please), there's always room for improvement.  People make money off adding RSS aggregators into Outlook, for heavens sake.  There's always room for customization.

In fact, I think that's what the MSDN Camp at Microsoft is all about.  They're the guys we should be rooting for, no offense to Raymond Chen's "camp."  The more diverse and specialized software, networks, systems, etc. get, the more IT people and developers (world-wide) will be needed.

Equating programmers to cab drivers is a good idea, I think.  Take the best New York driver there is, and put him in Cairo or Tokyo and he may not fare well (or is that "fair well?"), because he's an expert New York cabbie.  However, in New York, put him in any car, from Yellow Taxi to Dodge Viper, and he'll know how to get anywhere from anywhere.  I think the way software is going, we'll need to be the same way.  Take an E-Learning web-dev (such as myself), and ask him (me) to build a Java-based desktop spreadsheet and I'll be lost.  However, ask me to build an interactive, database-driven site in Perl, PHP, C# on a Linux, Windows or Mac platform and I'll be able to do it.

Abstracted tools -- like Perl, IDE's, etc. -- are good because they allow you to develop faster, but they're no replacement for knowing what's under the hood and how it works.

There was a point somewhere up in there...  Oh: No bot-like software is going to replace a smart developer, users will always be dumb, bot-like software will always break, and a good programmer knows how to take users down the scenic route for more billable hours. ;)

Andrew Burton
Thursday, July 08, 2004

*  Recent Topics

*  Fog Creek Home