I recently read the article "Elevating Expressions", which included Scott's reply to the article "The Human Impact of Software." What I would like to respond to, however, is the letter from Bryan Sedwick, in which Scott's statements are under fire.
Now, we all love to play the blame game don't we? It ruffles our feathers when we can identify with one of the party's involved. I would just like to suggest to both Bryan and Scott that the sub-standard product could very well be considered an error on the part of the developer AND management.
In addition, I feel that the comparison of a developer, who often has to do what he is told within a timeframe he is given, to a Doctor, is quite far off. A Doctor is not often found in the role of a lackey, required to inspect say, 180 patients before 4 PM. Nor is the likeness of a tire manufacturer any more accurate, since when we say Firestone, we are really referring to the Management rather than Tire Inspector # 208. And who knows who designed the tires? Yes they are accountable if they failed in their duties, but THEY are not "Firestone"--no one person is. I hope I am not simply nitpicking, but Bryan's comments did not quite sit right with me.
If I may illustrate my point: Say a city cuts back on the budget so less Firefighters are on duty, and the result is a family cannot be rescued from a burning building in time. Is it the Firefighters who are to blame? It is their job to do the rescuing isn't it? Sometimes you can't do your job as you would like to. When that happens it is a huge frustration. Likewise, if you pay more for development, you can expect, and demand, better results in turn.
I believe wholeheartedly in good coding practices and I appreciate the "Principled Programming" project. I don't have any argument with high standards, but I have also found myself in situations where I was asked to do the impossible, or told to do other than my better judgment told me. In those cases I think that a good developer will speak up. However, the "brass" is often good at speaking, poor at listening. And yes, you should know when you are in over your head, and do something about it.
In the case described in the column, obviously the developer was the beginning of the problem. In quite a few software companies, a whole department is devoted to testing. Personally, I like to get my family and friends to help me test my *small* projects, on about 10 different machines total. And that's just for web development.
In the end, I am probably just stating my two cents worth, but I hope that it could help both Bryan and Scott, and anyone else, to see both sides.
I have also been through a similar situation as Dan, although the effects were focused on me and my family. I was hired to resurrect someone else's coding disaster, and ended up working 18+ hours per day to meet their original deadlines!
BTW: Thanks for the great site. I look forward to more articles!