Monday, April 28, 2008

Week 13 Writing Assignment

The analysis of the first scenario in Section 9.3.5 revolves mostly around the fact that the case in question is a safety-critical application. That is, the product has the potential to both save lives and to harm people. In this case, testing is particularly important from both an ethical and a financial perspective because if something goes wrong, people can die as a result, and the company would be both morally responsible and legally liable for this.

The second scenario is not safety-critical, and Baase focuses on explaining why the programmer should feel that they have the power to protest skipping testing rather than explaining why the programmer should protest in the first place. After all, releasing early for the show could give the product a lot of extra publicity, and this time there are no lives at stake.

However, even if the product can't physically hurt anyone, it might still harm people. What if the product were an accounting program and it malfunctioned, causing people to lose money? What if it were a photo-sharing application with a security leak, so that someone could access other people's private photos and embarrass or even blackmail them? Any application could have potential problems such as these.

Another argument that still holds in scenario 2 is that releasing a shoddy product can hurt the company's reputation, sometimes more than extra publicity can help it. I think that releasing well-designed, well-tested software is ultimately the best advertising.

That said, I think that the book does present this issue as black and white when there can be more subtleties to the situations. Sure, it is never a good idea to skip testing altogether -- but even with extensive testing software is almost never entirely bug free, and it is definitely more important to be absolutely thorough in some applications than it is in others.

No comments: