Log in

No account? Create an account

Previous Entry | Next Entry

The Parable of the Two Programmers

A coworker sent me a link to The Parable of the Two Programmers. In my experience, there's a lot of truth in it.
Once upon a time, unbeknownst to each other, the "Automated Accounting Applications Association" and the "Consolidated Computerized Capital Corporation" decided that they needed the identical program to perform a certain service.

Automated hired a programmer-analyst, Alan, to solve their problem.

Meanwhile, Consolidated decided to ask a newly hired entry-level programmer, Charles, to tackle the job, to see if he was as good as he pretended.

Read more....


( 4 comments — Leave a comment )
Oct. 24th, 2006 04:47 pm (UTC)
Luckily, I know two things:

1. No one will look at my code until well after I've finished. They just care about the results. And a nice interface.

2. One needs to know how to look busy.

It also helps that programming isn't exactly my job. But being a good programmer means my job is easier to get results. And people don't realize how easy it is to automate for me. (Thus, I get a lot of reading done.)
Oct. 25th, 2006 01:54 am (UTC)
Alan had a poorly defined project, with inadequately written and reviewed requirements. The customer was not involved during development. Alan worked his butt off, much harder than he needed. His promotion was based on effort and apparent accomplishment, rather than on actual delivered value. But at least he was honest.

Charles "spent some time thinking about the problem". He did a thorough requirements analysis and a proper estimate of the work. But, then he acted unethically. Rather than reviewing the estimate with the customer, he took advantage of the over-estimate and goofed off, doing nothing productive. Further, he put the whole project in jeopardy by goofing off first, and working on it later.

Charles got what he deserved. Had he revised the estimate, he could have delivered exceptional value on this project and the next, and earned himself an honest raise or promotion.

The real moral of this is to always, without fail, properly analyze the need, looking at the big picture. Question the requirements. Give feedback to the customer, and if you can find efficiencies, take advantage of them.
Oct. 25th, 2006 01:17 pm (UTC)
Alan used many more developers than needed to produce code that is difficult to maintain and delivered a product that didn't meet the needs of the company. He was rewarded for his incompetence.

Charles had the same poorly defined project that Alan had, but delivered exactly what the company needed (plus some added conveniences) exactly when the company needed it. He was punished because his manager doesn't really understand how coding works.

His [Alan's] promotion was based on effort and apparent accomplishment, rather than on actual delivered value.

Yes, companies reward/punish behavior based not on what is actually valuable, but on what allows management to check off boxes on irrelevant lists.

It would seem to me that the real moral isn't what you suggest, but instead is to determine what the company really is looking for (apparant accomplishment) instead of what it says it is looking for (actual delivered value) and provide the former.
Oct. 25th, 2006 02:25 pm (UTC)
I stated two morals:

1) Alan's company is rewarding effort rather than value, which is irresponsible management;


2) Charles' company is rewarding total value, rather than requested value. They could have, and should have, received much more from Charles than they did. This company is acting responsibly.
( 4 comments — Leave a comment )

Latest Month

June 2013
Powered by LiveJournal.com
Designed by Tiffany Chow