Search
 
     
   
   
   
 
By
Dr. R. Srinivasan,
CTO, iCMG, Bangalore
   
  Proper planning is a must for software projects
 
 


The project plan serves the purpose of identifying the strategies at all levels in the development cycle and so it should be used as a basis to assess the efforts involved, to reach each milestone in the project, writes Dr R Srinivasan

We have seen earlier that the three important aspects that a project manager must take care of are: People, Process and Technology. There is no chance of any debate here, as to which is the most important among these three. We will discuss some of the antipatterns that occur if the process is not followed as decided. In software development, process constitutes an important umbrella activity and so it is always important for the project manager and project leader to emphasise the need for adopting a suitable process in a project. A process should not be meant for producing necessary documents but for clearly chalking out the software artifacts. This will give the team an impression that documentation is only a bureaucratic burden thrust upon them and does not carry any importance. Software gurus like William Brown, Skip McCormick and Thomas say, "A consistent way of developing software moves software incrementally towards an engineering discipline." They emphasise on the need to follow a process so that it is not only beneficial in the initial development, but also for future maintenance. This is the rationale behind the origin of the concept of Life Cycle models with built-in pragmatic processes. Quite naturally a project, which lacks in these basic aspects, will end up with problems. Some of the antipatterns that arise due to these problems are described below.

Planning

The first and foremost activity in any engineering design is planning. An experienced project manager exhibits his talent by laying out a clear plan for the software development project. On the other hand, an inexperienced project manager may end up in a situation of under planning or over planning. Since the project plan serves the purpose of identifying the strategies at all levels in the development cycle, it should be used as a basis to assess the efforts involved to reach each milestone in the project and ultimately to deliver the product. On the other hand, a project with poor planning, either because of too little or too many details, will face the antipattern called "Planning 911."

While discussing the aspects of planning in an earlier article, we have seen three types of antipatterns described by Brown. They are the 'Detailitis Plan' that takes into account too much of detail during the development phase; the 'Glass Case plan' that talks about lack of up-to-date project plan against important milestones and the 'Management Plan' where the development schedule is taken care of by the senior management who have no direct contact with the project manager or the team members.

Life-cycle model

The next antipattern that arises due to a poor process is the 'Life-cycle Malpractice AntiPattern'. McCormick in his tutorial on antipatterns says that life-cycle model clarity is the key to successfully developing several applications or projects in tandem. He stresses the point that a dogmatic adoption of a single life-cycle will prevent a more appropriate process set, resulting in increased costs, reduced competitive edge and technology malpractice. So a project manager must be well conversant with the selection of the appropriate life-cycle model for the project under consideration. He should not think that a single life-cycle model, which was successful in a specific case, would be suitably applicable to all types of development. This is because of the fact that each life cycle model has its own advantages and disadvantages with respect to the nature of the project on hand. Steve McConnell in his book on 'Rapid Development' gives a clear illustration on different life-cycle approaches according to specific classification of software development projects.

Collaboration

The process and hence software development may go haywire if the project comes under the category of the one being developed jointly with many organisations for a single customer. It is very important for both the organisations to have very good collaboration and work in tandem with each other. On the other hand, if their interests are orthogonal, each one of the parties will assume that they are the individual customers of the client and under this situation the project manager may be forced to satisfy many at the same time-a typical example of a Herculean task. If the project fails, it may be due to his inability to satisfy the interest of any one of them. Ultimately the project is subjected to face different unexpected angles and directions. The antipattern associated with this is known as the "Customer Antipattern."

( 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