So I was reading the latest issue of Dr Dobb’s and got to the piece by Scott Ambler called “Is Fixed-Price Software Development Unethical?.” Mr. Ambler, as you may know, is the Agile Methodology guy at ddj. It is really a fascinating article, and something that I have been on about for some time now : you simply cannot do fixed cost software projects. Mr. Ambler took it a step further and questioned the ethics, which is really an interesting concept. As a quick side note, it is interesting that in an article on ethics, Mr. Ambler basically recycled an article he wrote more than a year ago. Journalistic ethics aside, the article does raise an interesting twist to the problem : can we ethically propose fixed cost software projects?
If you don’t want to RTFA, I can summarize a few of the more salient points. The key to understanding fixed cost software is that the intent is to mitigate risk for the stakeholder (the person wanting something done) by specifying boundaries of time and money, or as sometimes happens, the desire to squeeze a large profit margin out of a project. Unfortunately, what ends up happening is that an inordinate amount of time and money is spent on Big Requirements Up Front (BRUF) which results in an untenable development model that assumes that all requirements are known and static. Following this to its logical conclusion, The fixed price project suffers at all subsequent phases; in the development process there is inherent disincentive to allow for change management; the end product contains many portions that are unused and unnecessary; the end product fails to deliver on new (discovered) requirements; and finally, the project usually end up late and over budget anyway. QED, the risk mitigation aspect is a feel good fantasy at best for those unwilling or unable to understand the creative aspects of software development.
Now that we have an understanding that at some level, or at least an assumption, that Fixed Priced Projects are A Bad Thing, I must examine the assertion that responding to an RFP that is fixed price is unethical. On the surface, doing something that one knows is wrong is pretty much the definition of unethical. I think that Mr. Ambler missed a point though. Responding to an fixed cost RFP is not the unethical part; putting said RFP out in the first place is the unethical. There is nothing unethical in giving an organization what it wants, or at least thinks it wants. To be sure, it is better to propose a non-fixed price alternative, perhaps in addition to the RFP, but it seems to me that that route is on the fast path to unemployment. As Agile Methodologies continue to be accepted, I predict that fewer and fewer organizations will want a fixed cost project anyway, but until then, keep responding to those RFPs and try to get the system changed from the inside

Post a Comment

*
*