Search
 
     
   
   
   
 
By
Dr. R. Srinivasan,
CTO, iCMG, Bangalore
   
  Finding the right balance between R&D and production
 
 

 

It is necessary to employ a repeatable and mature process for successful software development, writer Dr R Srinivasan

After the discussion on people and technology, we will now move on to the third important factor for successful software development process. Software development in the 60's and 70's was more of craftsmanship, and each project/organisation employed certain process and tools developed by them. Naturally in most cases it used to end up with difficulties in deploying the software on target systems. However with the onset of software engineering in the 80's the software industry started maturing towards adaptation of standard procedures and processes. " The most discriminating characteristic of a successful software development process is the well defined separation between research and development activities, and production activities." (Ref; Alan M. Davis, 'Fifteen principles of software Engineering', IEEE spectrum. Vol. 11, Nov.6, 1994). There must neither be too much of R&D nor over-emphasis on production in applying the processes. The solution for this is to follow an appropriate/standard process model that would bring the best quality in software development. William Brown, it al in, 'Antipattern in project Management' point out that the process used in some organisations is so ingrained that there will be failure to evaluate and revaluate. They further add that we will hear the same mantra in these organisations, "that is the way we've always done it". In this circumstance the project Manager is forced to sit like an 'engine driver' taking the train on the track laid by the own to exhibit his leadership and take the project on the right track.

So, what is needed is to establish a repeatable and mature process that would enable successful software development. The characteristic of a process is that they do not accommodate variance associated with People and technology. To Quote William Brown again , the processes that are followed must be dynamic in supporting the changes that happen with People and technology. Moreover they must balance the schedule, skill, organisation and the project team. No process will become perfect unless it is based on the right combination of standards and disciplines employing the right type of tools. Even when a correct process is chosen in the organization, it should match the requirement of the particular type of development environment. A question is always raised about the need for following the process in small projects because of the fear that too much of adherence to process may lead to unwanted overheads. However important activities like project Management and Configuration Management are very essential for any type and scale of development.

In order to achieve a consistent and repeatable set of software development processes which are flexible and cost effective, it is absolutely essential that the processes are standardized, which will in turn bring uniformity in software development in the organization. By adopting the template and procedures provided by the standards like ISO and SEI/CMM, an organization can become consistent in developing high quality software. Such International standards are intended to be a repeatedly implementable solution pattern that enables good practices in software development. Particularly SEI/CMM addresses the importance of three factors mentioned earlier people, Technology and process.

Surprisingly, sometimes, software development standards are ignored, poorly implemented, misused and blamed for many software development failures. While the project managers follow the standards to keep track of the progress, the team members are sometimes hesitant to follow the standard processes, claming that it is too much of bureaucracy, obstruction to progress and unnecessary overhead demanding additional time, where as the management demands minimum schedule over run. It is frequently the view of the developers that standards limit their free dom in applying artistic value to the development effort. Bennatan in his book on, 'Time within Budget: Software Project Management practices & techniques' say's "This resistance makes implementation and its oversight difficult without becoming Machiavellian". It is here that the project Manager has the role to play in identifying the importance of standardization and quality to the developers. At the organization level, repeatability is very important for implementation of standard s and so not only a correct standard has to be selected, but also should be implemented uniformly in the enterprise. It is therefore necessary that the management, project leadership and members of various project teams in the enterprise are committed to implementing the standard process.

In the chapter on 'Conclusions and Resources' in their book 'Antopatterns in Project Management', William Brown, Hats McCormick and Scott Thomas advise, "Standards actually help make software development easier, if they are adopted in a pragmatic manner … sometimes in a fit of panic standards are relax to achieve schedule or cost. This is akin to selling your soul to the Devil. Don't do it."


(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