Name AntiPattern Solution
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
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.
Developers are kept in the dark and fed fertilizer. End-user interaction is prohibited. Solicit frequent user interaction to maximize usability and acceptance.
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
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 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.
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.
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
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.