Angelika Langer - Training & Consulting

 
HOME | SEMINARS | TALKS | ARTICLES | BOOKS | LINKS | IOSTREAMS | GENERICS | ABOUT | NEWSLETTER | CONTACT | SITEMAP
Book Review - Anti Patterns

Books  
HOME 
SEMINARS 
TALKS 
ARTICLES 

BOOKS

  OVERVIEW
  REVIEWS

  BIBLIOGRAPHY    
    J2SE
    J2EE
    CORE C++
    STL
    TEMPLATES
    IOSTREAMS
    CONCURRENCY
    I18N
    PATTERNS
    OOA/OOD
    TESTING
    MANAGEMENT
 

LINKS 
IOSTREAMS 
GENERICS 
ABOUT 
NEWSLETTER 
CONTACT 
SITEMAP 
Book Review - Anti Patterns
   
  Book Review of the week
 
 
  AntiPatterns: Refactoring Software, Architectures, and Projects in Crisis 
  By William J. Brown, et al 
  New York,NY:Wiley Computer Publishing 
  ISBN 0-471-19713-0 
  336 pages 
 
  Price: $39.99 
  (Reviewed 12/15/98) 
 
Adding a New Facet to the Patterns Discussion 
Volume describes where projects go wrong in all areas of development
 
P atterns have gained a significant role in all areas of software development since Design Patterns by Gamma, Helm, Johnson, and Vlissides was published in 1994. Today there are patterns for implementation, design, analysis, and organization of software development. Now AntiPatterns promises to add a new facet to this pattern movement.

 According to the authors, "An AntiPattern is a literary form that describes a commonly occurring solution to a problem that generates decidedly negative consequences. (...) When properly documented, an AntiPattern describes a general form, the primary causes which led to the general form; symptoms describing how to recognize the general form; the consequences of the general form; and a refactored solution describing how to change the AntiPattern into a healthier situation." In discussing the patterns that make projects go sour, the authors of AntiPatterns cover all fundamental areas of software business and provide guidance on refactoring solutions based on identifying dysfunctional behavior.

  AntiPatterns consists of two parts: the first, smaller, part introduces AntiPatterns and the abstract models and forces behind them. The second part discusses 50 AntiPatterns, grouped into three categories: development, architecture, and project management. An example from each category illustrates the idea of AntiPatterns.

 One development AntiPattern is cut-and-paste programming. In this AntiPattern, code reuse by copying source statements leads to significant maintenance problems. Developers should use alternative forms of reuse, including black box reuse, and reduce maintenance issues by having common source code, testing, and documentation.

 Vendor lock-in is one type of architectural AntiPattern. Vendor lock-in occurs in systems that strongly depend on proprietary architectures. The use of architectural isolation layers can provide independence from vendor-specific solutions.

 Finally, an example of a project management AntiPattern is death by planning. In this case, excessive planning for software projects leads to complex schedules that cause downstream problems. The authors describe how to plan a reasonable software process that includes incorporating knowledge facts and incremental replanning.

  AntiPatterns helps to identify what might be wrong with a software project and what can be done to solve the problems. Since it does not focus on in-depth technical patterns but covers the entire range of software development issues, including management and organizational matters, the book is easy and worthwhile reading. Its greatest merit is in the establishment of a common vocabulary, which might ease communication between inherently different groups in a software projects, such as developers, architects, and managers. They can use the terms defined in AntiPatterns to discuss problems and solutions in a language that all share and understand. 

Angelika Langer develops and teaches classes on advanced C++, STL, multithreading, internationalization, and Java. She has served on the ANSI/ISO C++ Committee since 1993. Klaus Kreft is a software architect and consultant with more than a decade of experience in industrial software development. He works for Siemens Business Services in Germany. Langer and Kreft are working on a book about standard C++ iostreams and locales and are columnists for C++ Report

 
 

 
© Copyright 1995-2003 by Angelika Langer.  All Rights Reserved.    URL: < http://www.AngelikaLanger.com/Articles/Reviews/AntiPatterns/review.htm  last update: 29 Oct 2003