1. What are antipatterns?
    • Commonly used patterns that are inefficient or counterproductive in practice
    • The opposite of design patterns
    • A proven and documented refactored solution exists
  2. Categories of antipattern
    • Orgnaizational
    • Project management
    • Software design
    • Methodological
    • Configuration management
  3. Organizational antipatterns
    • Vendor lock-in
    • Analysis paralysis
    • Stovepipe enterprise
  4. Project management antipatterns
    • Software bloat
    • Smoke and mirrors
    • Mushroom theory of management
    • Groupthink
  5. Software design antipatterns
    • God class
    • Big ball of mud
    • Poltergeists
    • Gold plating
  6. Programming antipatterns
    • Coding by exception
    • Cargo cult programming
    • Hard/soft coding
    • Magic numbers/strings
    • Spaghetti code
    • Boat anchor
  7. Methodological antipatterns
    • Copy and paste
    • Golden hammer
    • Reinventing the wheel
    • Premature optimization
    • Test driven development
  8. Student antipatterns
    • Nightmare before deadline
    • Ask me no questions, tell me no answers
    • Headbanger
    • Never ending story
    • Redeye
  9. What is analysis paralysis?
    OVer analysis of requirements or design that prevents progress
  10. What is stovepipe enterprise
    • Information is only transmitted up and down the organization
    • Deparments/peers don't communicate
  11. Alternative name to smoke and mirrors
  12. What is a big ball of mud antipattern?
    • A system with no recognizable architecture
    • Usually the occurs over time with lots of people working on it
  13. What are poltergeists?
    • Objects who only purpose is to pass information to another object
    • Usually have a very short lifetime
    • Associated with middle man code smells
  14. What is gold plating?
    Working on a project beyond the point where the value is worth the effort
  15. What is coding by exception?
    Code evolves by having special case functionality added piecemeal
  16. Examples of cargo cult programming
    • Copy and pasting code that you don't understand
    • Overuse of design patterns
    • Unnecessary comments
    • Deletion code in garbage collected languages
    • Factory objects for simple objects
  17. What is cargo cult programming?
    Ritual inclusion of program structures that have no use in the program
  18. What is a boat anchor?
    • Keeping a part of the system that no longer has a use
    • Associated with lazy class code smell
    • Makes maintenance hard and lowers understandability
  19. When is copying and pasting ok?
    • Boiler plating
    • Replicate and specialize
    • Cross-cutting concerns
  20. What is Tester driven development?
    • New requirements are specified by bug reports
    • Characterized by long testing phase
  21. What are the symptoms of tester driven development
    • Very late projects
    • Poor code quality
  22. Causes of tester driven development
    • Testing started too soon
    • Requirements were incomplete
    • Tester are inexperienced
    • Developers are inexperienced
    • Poor project management
Card Set