“Good Enough Quality”
Every now and then, I come across arguments such as the following:
- “There is no sense in investing too much time in designing the product. It only has to be ‘good enough’”.
- “We don’t have time for writing Unit Tests. This project is not that critical anyway.”
- “Code Reviews? Too much effort for this project. The code doesn’t have to be ‘perfect’. It should only be ‘good enough’”.
Sounds familiar? These are just three common examples out of a large family of arguments called “Good Enough Quality”. Usually these arguments are brought up to justify the decision to avoid doing some quality-oriented activity during development. The context is either the project-planning phase or some post-project analysis.
The "beauty" of the “Good Enough Quality” argument is that it seems to make perfect sense. Why should we treat each and every project the same? Should we really invest the same effort and use the same tools for every project we do? Aren’t there projects that really need to be just “good enough”? Well, surprisingly, I totally agree with the conceptual claim: not all projects are equal. Some project needn’t be perfect. If everything is “critical” and must be perfect then nothing is. The problem with the “Good Enough Quality” argument is not at the conceptual level. It is purely an implementation problem.
***
Here’s a fictional scenario:
A Development Lead is assigned with a new project. She begins to analyze the requirements and does some rough design only to come up with the conclusion that the project should take approximately six months for a team of two developers. The Development Lead goes with this estimate to her boss. “Unfortunately”, her boss says, “you only have four months to accomplish this task… and we cannot assign more people to it other than the two people you already have”. Our Development Lead really had good intentions. She wanted to do this project right. But now she must find a way to make the project on time. Well, if we can’t have more resources, she says to herself, this must be a “Good Enough Quality” project. Let’s cut development time by not spending too much time on design and skipping Unit Testing. This will probably save about a month of development time. The rest of the time, we will just have to work harder. And… we probably won’t have enough time for extensive Code Reviews since we are working overtime as it is, but this is OK because we will deliver the product on time. Any major bug will probably be identified by QC anyway.
So, what is the problem with this line of thought? The first problem is that the project was not defined a-priori as a project that could settle for “good enough quality”. No body really knows what “good enough” is in this case. The project became a “good enough quality” project due to constraints, which have nothing to do with the customer expectation regarding the quality of the product.
In fact, this is what happens in most cases: the customer wants a quality product on time; the development team does not have enough time to do the job properly so a unilateral decision is made to compromise quality because “we can settle for a ‘good enough’ product”. Still, no one takes the time to define what “good enough” means for this concrete project: are two major bugs discovered on the customer site considered “good enough”? Is unmaintainable code, which will cause every new feature request to consume twice the resources that it should have, “good enough”? Is a security breach in the product, which can cause severe damages to the customer, “good enough”? Without explicitly defining the expectation from the product, you will end up with a frustrated customer, and developers who don’t know what they are expected to do.
But the situation gets even worst. Our Development Lead decided to take the “good enough” approach. But will she be accountable for this decision when something “unexpected” happens? In most cases, when a major bug is revealed on site the developer is the one everybody looks for, although she might wanted to do a better job to begin with. The same applies to situations where a new feature is needed and everybody is amazed to find out that the design does not support it and that the code is practically unreadable. Will the Development Lead take responsibility for her decision to waive Design and Code Reviews? Probably not. Most chances are that the developer will be blamed for writing such poor quality code.
***
Accountability is the keyword in this discussion. We abuse the term “Good Enough Quality” on a daily basis and use it to avoid our responsibilities. If this is done after thorough consideration and analysis – so be it. You must consider all the relevant factors, however, and take into account that the customer is not the sole stakeholder of the Quality aspect, but that’s for another discussion. In any case, a few things have to be done to formalize such a decision.
First, someone should take responsibility for this decision. If the customer will raise some claims regarding the quality of the product in the future, someone apart from the developer should be accountable. In order for that to happen, the decision to go for the “good enough” strategy should take the form of explicit figures and guidelines: what will be considered “good enough” for this project. This is a good basis for negotiations (either internal or external). If no one agrees to take responsibility for the figures, you might need more resources or more time to develop the product. That’s how things work in the real world: in most cases, you can’t have both.
Without translating the abstract term “Good Enough Quality” into real-world terms, you create confusion and fuzziness. The customer expects one thing, while your developers understand a different thing. Without a clear definition, no one can take responsibility for the quality of the product, so when something gets wrong all that’s left to be done is calling the developer and demanding an emergency fix, leaving both the developer and the customer frustrated for a good reason.












August 9th, 2007 at 6:13 pm
EVE Online ISK
EVE Online ISK
EVE ISK
Buy EVE Online ISK
Buy EVE ISK
Cheap EVE Online ISK
EVE Online ISK
EVE ISK
Buy EVE Online ISK
Buy EVE ISK
Cheap EVE Online ISK
EVE Online Guide
EVE Guide
Runescape Gold
Runescape Gold
Runescape Money
Buy Runescape Money
Cheap Runescape Money
RS Gold
RS Money
Buy Runescape Gold
Cheap Runescape Gold
Runescape Gold
Runescape Money
Buy Runescape Money
Cheap Runescape Money
RS Gold
RS Money
Buy Runescape Gold
Cheap Runescape Gold
Free Runescape Money
Free Runescape Gold
Runescape Gold
Runescape Money
Runescape GP
Runescape Guide
Runescape Guides
Runescape Cheats
Runescape Hacks
WoW Gold,World of Warcraft Gold
WoW Gold
Buy WoW Gold
Cheap WoW Gold
World of Warcraft Gold
Warcraft Gold
WoW Gold
Buy WoW Gold
Cheap WoW Gold
World of Warcraft Gold
Warcraft Gold
WoW Guide
WoW Powerlevels
WoW Power level
WoW Powerlevel Guide
WoW Powerleveling Guide
Lineage II adena
Lineage II adena
Lineage 2 adena
Buy Lineage 2 adena
Buy Lineage II adena
Cheap Lineage II adena
Lineage II Gold
Lineage II adena
Lineage 2 adena
Buy Lineage 2 adena
Buy Lineage II adena
Cheap Lineage II adena
Lineage II Gold
Maple Story Mesos
Maple Story Mesos
MapleStory Mesos
Buy Maple Story Mesos
Cheap Maple Story Mesos
Maple Story Mesos
MapleStory Mesos
Buy Maple Story Mesos
Cheap Maple Story Mesos
Maple Story Mesos
MapleStory Mesos
Buy Maple Story Mesos
Cheap Maple Story Mesos
Buying Maple Story Mesos
Maple Story Mesos for sale
Cheaper Maple Story Mesos
Everquest II Plat
Everquest II Plat
Everquest II Gold
Buy Everquest II Gold
Buy Everquest II Plat
Everquest 2 Plat
Everquest 2 Gold
Everquest II Plat
Everquest II Gold
Buy Everquest II Gold
Buy Everquest II Plat
Everquest 2 Plat
Everquest 2 Gold
Gaia Online Gold
Gaia Online Gold
Gaia Gold
Buy Gaia Gold
Buy Gaia Online Gold
Cheap Gaia Gold
Gaia Online Gold
Gaia Gold
Buy Gaia Gold
Buy Gaia Online Gold
Cheap Gaia Gold
Final Fantasy XI Gil
FFXI Gil
Cheap FFXI Gil
Buy FFXI Gil
Final Fantasy XI Gil
FFXI Gil
Cheap FFXI Gil
Buy FFXI Gil
Final Fantasy XI Gil
FFXI Gil Guide
Final Fantasy XI Guide
Cheap FFXI Gil
FFXI Guide
SilkRoad Online Gold
SilkRoad Online Gold
SilkRoad Gold
Buy SilkRoad Gold
Cheap SilkRoad Gold
Buy SilkRoad Online Gold
Cheap SilkRoad Online Gold
SilkRoad Online Gold
SilkRoad Gold
Buy SilkRoad Gold
Cheap SilkRoad Gold
Buy SilkRoad Online Gold
Cheap SilkRoad Online Gold
WoW Powerleveling
WoW Powerleveling
WoW Power leveling
Buy WoW Power leveling
Buy WoW Powerleveling
Buying WoW Powerleveling
Cheap WoW Powerleveling
WoW Powerleveling
WoW Power leveling
Buy WoW Power leveling
Buy WoW Powerleveling
Buying WoW Powerleveling
Cheap WoW Powerleveling
WoW Powerleveling
WoW Power leveling
Buy WoW Powerleveling
a href=”http://www.powerleveling-wow-powerleveling.com”>Cheap WoW Powerleveling
Lotro Gold
Lotro Gold
Lotro Gold for sale
Buy Lotro Gold
Buying Lotro Gold
Cheap Lotro Gold
Lotro Gold
Lotro Gold for sale
Buy Lotro Gold
Buying Lotro Gold
Cheap Lotro Gold
Lotro Guide
Buy Lotro Gold
Lotro Gold
Lotro Powerleveling
Video Game Powerleveling
Runescape Powerleveling
Buy Runescape Powerleveling
Lotro Powerleveling
Buy Lotro Powerleveling
Lineage 2 Powerleveling
LineageII Powerleveling
Runescape Powerleveling
Buy Runescape Powerleveling
Lotro Powerleveling
Buy Lotro Powerleveling
Maple Story Powerleveling
MapleStory Powerleveling
Vanguard saga of heroes Gold
Vanguard saga of heroes Gold
Vanguard Gold
Buy Vanguard Gold
Cheap Vanguard Gold
Vanguard saga of heroes Gold
Vanguard Gold
Buy Vanguard Gold
Cheap Vanguard Gold
MMORPG Games Guide
MMORPG Games
Video Games
Video Games Guide
PC Games