Search
 
     
   
   
   
 
By
Dr. R. Srinivasan,
CTO, iCMG, Bangalore
   
  How antipatterns are interlinked
 
 


Antipatterns do not occur in isolation, and one antipattern usually leads to a chain of many others. Such disasters however can be avoided by adopting suitable processes and refactored solutions during the project development life cycle, writes Dr R Srinivasan

We are all aware of following an appropriate process model that would suit every phase of the software development life cycle. Organisations which have good experience in adopting the software process would agree that a lapse in any phase affects the other phases in the course of software development. Perfectness in each phase of the development process is interrelated with others, therefore an antipattern in one phase will have a secondary effect on one or more phases. In short, antipatterns do not occur in isolation and particularly over a time period there might be possibility of one antipattern leading to a chain of other antipatterns.

Software experts like Brown, McCormick and Thomas say, "It is important to understand the relationship of known antipatterns to the phases and activities throughout a software development cycle, and the major antipattern relationships of causes, symptoms and consequences." They explain a model in which the necessary interrelationships are depicted horizontally across the software development phases and vertically with important aspects of software configuration management (including the processes involved in project management). This model is good as it provides guidance in enumerating the antipatterns in a sequential manner as part of the software development life cycle. A typical sequence comprises Software Development Antipa-ttern, Software Configuration Management Antipattern and Project Management Antipattern.

We have seen in an earlier article that a typical software development project involves a sequence of phases like determining its scope, deciding the software requirement specifications followed by requirement analysis, finalising the software architecture, proceeding to a high-level and then low-level design (coding) of individual modules (units), unit testing, integration of modules into a system and finally system testing. We have already discussed some of the antipatterns that are detected during the software development phase. The typical ones are: Requirements Jeopardy Antipattern that happens due to misunderstood specifications, or the case where document on SRS and analysis are missing; Analysis Paralysis Antipattern which happens due to the decision of arriving at highly sophisticated models which may not be very useful for the processes down the line in the development phase; the Blob Antipattern which is a procedural design separating process from data in contrast to the much needed object-oriented design process; the Lava Flow Antipattern that is responsible for bringing in a set of models and codes that have been developed long ago and have no documentation, resulting in a situation that the present team struggles hard to understand; and Sure Thing Antipattern where the team and the management are overconfident that testing is not necessary.

Coming to interrelationship with vertical activities, let us first take the case of antipatterns in Software Configuration Management (SCM). They are: The Silver Bullet Antipattern where a tool is taken to be more reliable than adopting the necessary process in SCM; CM Takeover Antipattern, in which the person in charge of CM takes control of the project and emphasises SCM as the only focus; Failure to Audit Antipattern happens while omitting audit as part of SCM; problems caused by inexperienced person put in charge of SCM, etc.

Similarly, we have described many antipatterns under project management, during the last few weeks. They are Corncob Antipattern, Nil Desperandum Antipattern, Planning 911 Antipattern, Micro Management Antipattern, etc.

It should be borne in mind that the antipatterns happening in each phase of the life cycle development may lead to antipatterns in other phases, both in horizontal direction as part of the project development, and also umbrella activities like SCM and project management processes vertically. Such a catastrophy can be avoided if proper care is taken to adopt suitable processes and refactored solutions at each stage during the development cycle.

( To be continued)

(The author is Chief Technology Officer, Internet Component Management Group, Bangalore and can be contacted at: r.srinivasan@iCMGworld.com)

 
 
     
Copyright © 2006 iCMG. All rights reserved.
Site Index | Contact Us | Legal & Privacy Policy