Emperors New Clothes
AntiPattern:' EmperorsNewClothes
Original Author: JamesPoupard
Anti Pattern Category: Management
Click on CategoryAntiPattern to see other anti-patterns
Problem
-
In design or code reviews, no one really understands the design but reviewers are unwilling to admit it.
-
Any criticism is quashed by other reviewers who claim understanding and consequently gain a feeling of superiority.
Context and Forces
-
Peer Review is seen as a milestone to pass before development can continue.
-
Too much negative feedback can delay development and effect project timescales.
Proposed Solution (the bad one)
-
Make design process and procedure idiot-proof to prevent developers making mistakes next time.
-
Down-play complaints about over complexity or lack of abstraction because changes can be postponed until the next stage of development.
-
Effort required to make major changes at this stage has a huge effect on project timescales. Consequently leave it as it is - it won't be as bad next time!
-
Define design or coding standards with a set of clear rules that can be tested against to simplify the peer review process and minimise non-constructive feedback.
Resulting Context
-
You cannot develop an idiot-proof process - a good process depends on good developers to execute it (see IdiotProofProcess).
-
Delaying serious problems will lead to more serious ones (see ImplementationIssue).
-
Checking only against standards will mean any updates to design or code is simply cosmetic.
-
All of these leaves us with a poor design which means:
-
Requirements may be left unmet
-
Major problems are missed
-
Difficult decisions are left to the implementers
-
Coders ignore or abandon design
-
Design will have served no purpose
Design Rationale
-
Identify different people who:
-
have good analysis and design skills
-
can define good abstractions
-
have good implementation skills
-
or are subject matter or user experts
-
Hold regular brainstorming sessions with these people to refine requirements and/or develop the design.
-
Change organisation to promote day to day coaching of those less experienced.
-
Adopt and/or develop simple, clear notations that are more understandable.
-
Change focus so that formal reviews are a just a small part of the quality process.
Related AntiPatterns
Discussion below...
See also TheEmperorsNewClothes