Name | AntiPattern | Solution |
Analysis paralysis | Striving for perfection and completeness in the analysis phase leads to project gridlock. | Incremental, iterative development processes defer the detailed analysis until the knowledge is available. |
Death by planning | Excessive preplanning of software projects leads to postponement of development work and useless plans. | Pursue iterative software development process, which includes modest planning with known facts and incremental replanning. |
Fire drill | Management waits until the last possible moment to allow developers to proceed with design and implementation; then they want results almost immediately. | Engage in proactive design and prototyping, even if customers and management staff are not completely on-board. |
Mushroom management | Developers are kept in the dark and fed fertilizer. End-user interaction is prohibited. | Solicit frequent user interaction to maximize usability and acceptance. |
Viewgraph engineering | Organizations with limited technical capabilities for system development are taken at face value because they produce substantive documents and polished briefings. | Verify the development capabilities of the organization and key project staff. Utilize prototyping and mock-ups as part of any system development process. |
Smoke and mirrors | End-users mistakenly assume that a brittle demonstration is a capability ready for operational use. | Practice proper ethics to manage expectations, risk, liabilities, and consequences in computing sales and marketing situations. |
Design by committee | Committee designs are overly complex and lack a common architectural vision. | Assign proper facilitation and software development roles for more effective committee-based processes. |
Lava flow | Dead code and forgotten design information are frozen in an ever-changing design. | Install configuration control processes to eliminate dead code, and evolve/refactor design toward increasing quality. |
Intellectual violence | People use obscure references to esoteric papers, theories, and standards for intimidation or short-term gain. | Encourage education and practice mentoring throughout the organization. |
Corncob | Difficult people obstruct and divert the software development process. | Address agendas of the individual through various tactical, operational, and strategic organizational actions. |
Blowhard jamboree | Industry pundits disseminate marketing information that concerns customers. | Assign in-house expertise to separate the facts from the hype. |
Boat anchor | A costly technology is purchased by a systems development project, but goes unused. | Send competent engineers to evaluate the product before buying it. |
Cover your assets | Document-driven software processes often employ authors who list alternatives instead of making decisions. | Establish clear purposes and guidelines for documentation tasks; inspect the results for the value of decumented decisions. |