Search
 
     
   
   
   
 
By
Dr. R. Srinivasan,
CTO, iCMG, Bangalore
   
  Project Planning: The key to successful software development
 
 

 

It is the responsibility of the Project Manager to come up with a suitable plan for the development of the software being undertaken by his organization, says Dr R Srinivasan

In the previous article, we looked at the importance of Architecture in Software Development. This week we will discuss another noteworthy and vital aspect, viz., Project Planning. We should have seen it prior to Architecture because the decision of the appropriate architecture is part of Project Planning. It is the responsibility of the Project Manager to come up with a suitable plan for the development of the software being undertaken by his organization. As stated by Brown, et.al. Software Panning is the representation of the reality of software development. It is through the Project Management Plan that all the required strategies at a topical level leading to discrete process plans for the specific details. The Project plan has to be pragmatic in many respects, viz. covering the cost of the development within the budget (through proper schedule and effort estimation), test plans, review schemes and tracking progress and also the method of handling Software Configuration Management. To assist the Project ?Managers, we have well laid standards for Project Management Plan. NASA's, "Software Development/Management Plan and SEI / CMM's, "Plan Technical Effort" provide the real guidelines for an effective Project Management Plan.

To give a brief account, NASA's template covers important bullets like Statement of the Problem, the Technical approach, the Management Approach and the ways and means of assuring the performance of the developed software product. Under the technical approach it advocates the need to take care of any software component developed earlier for reuse, the assumptions and constraints in undertaking the project, the types of activities, tools to be used and also the strategy for the development of the project. It also brings out the importance of Management Approach encompassing resource requirements, milestones and schedules, the need to collect metrics on critical parameters, identify possible risk factors and methods to manage the situation. Quality Assurance and Configuration Management are illustrated under Product Assurance.

In any engineering design, well spelt planning and bringing out a document of the plan are very vital for the execution of the project. Software development, employing Software Engineering methodologies is not an exception - successful software development, therefore, depends very much on effective planning. Frederick Brooks in his book on, "The Mythical Man Months", says as a rule of thumb, the average time taken in a typical software development cycle are: 1/3 planning, 1/6 coding, 1/4 component test and early system test and 1/Ľor over all system test. He points out that all these estimated times go well as per plan until reaching the System Integration point and system testing. (It is therefore necessary that the Project Plan projects sufficient time for system test; otherwise it will lead to disastrous results like unexpected days, cost over run to the Management and psychological stress to the members in the team.)

While the project plan is a critical factor in software development, there should neither be over planning nor under planning, because improper and inadequate level of planning will lead to problems in the management of the project like unexpected risks, delays and also, as an extreme case of failure to deliver the product to the customer. William Brown, et. al (through their Planning 911 AntiPattern) illustrate three important categories of poor planning in a software development organization. They are: Detailitis Plan, Glass case Plan, and the Management Plan. A Project plan attempts to capture maximum details needed in the course of development in a Detailitis Plan. On the other hand, in Glass Case Plan, the Project Plan is decided and documented at the beginning of the project but is never revisited during development for reviewing and tracking. In either of the above cases, it is impossible to assess the status of the project at any time. As an example of an extreme case, the third category, viz., Management Plan is the one where the Senior Management takes the responsibility of producing the plan/schedules of the project. This is a very wrong move, because it not possible for the Senior Management to have direct contact with the Project Manager and the team on a daily basis; as it is not possible to have periodic tracking of the project against the plan and hence in all probability the planned schedule and efforts estimation will go awry!! To circumvent this, the Senior Management will resort to surprise fire drills defined by the milestones in their management plan. This situation will happen because while designing the Project Plan the Senior Management does not take cognizance of the inputs from the Project Manager and the team and hence there will be a striking disparity between the Management planning model and the actual development activities; a clear case of having two plans - a formal one by the Management and a hidden plan of the team!! Each one of these Project Management Plans described above will result in delays, disgruntled staff leading to attrition and failure of the project.

To quote Brown. Et. al from their book on, AntiPatterns in Project Management", "while each of these poor planning classes is common, the best management approach is to produce a published plan whose detail is appropriate for the phase of development and then capture progress, replanning as necessary on a weekly basis for each development team".

(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