Search
 
     
   
   
   
 
By
Dr. R. Srinivasan,
CTO, iCMG, Bangalore
   
  How Software Configuration Management can guide developers
 
 

 

Software Configuration Management has become integral to a successful software development process because it enables developers, testers, users and the maintenance group to fully comprehend a system says Dr R Srinivasan

STEVE McConnel in this book on, 'Software Survival Guide', cites a quotation as follows: "As Thomas Hobbes observed, in the seventeenth century, life under mob rule is solitary, poor, nasty, brutish, and short. Life on a poorly run software project is solitary, poor, nasty brutish, and hardly short enough". It is imperative that in the development of any system, a comprehensive process encompassing the principles of system engineering has to be adopted. The process transforms the required operational capability of the end product into a set of vital parameters defining the function and performance, employing iterative scheme of analysis, synthesis, specification, design and testing. Blanchard, et al in 'Systems Engineering and Analysis' say, "the systems engineering itself is not a discipline; rather it employs engineering specialities to achieve its conclusion". Software Engineering is clearly based on this concept; but the important point to remember is that the members of the software development team must know how to implement these disciplines. Having seen some of the vital parameters to be taken care of for the development of a successful software, the next one to be considered is Software Configuration Management.

If we go down memory lane to the early days of software development on the main frame in the sixties and seventies, software was seen in a manner different from what we have now and the configuration management was viewed more as an ad hoc process with no standards. It was the DOD in USA which realized that the maintenance of the systems was becoming unwieldy in many respects. In order to circumvent this, DOD brought in the standard language ADA along with the methodology of standard development and configuration management processes. With the evolution of Internet and Internet-based technologies, bringing the facility for distributed computing, Net-based transactions, etc., there is a real challenge for managing the components within an enterprise. As mentioned in the Meta Group's Spex Evaluations, "The need and design for rapid deployment along with multiple versions of products and solutions residing on many platforms, client/server alike, have given rise to a new class of software designed specifically to exploit the available technology and keep track of the marginal assets at the component level". Development of software, particularly to work under such environments, needs good control at every stage of development and needs Software Configuration Management (SCM).

SCM has become integrated to a successful software development process because it enables developers, testers, users and the maintenance group to fully comprehend a system, not only in the current state but also its previous state and the challenges that will result in a future state (Brown, et al in AntiPatterns and Patterns in Software Configuration Management'). SCM plays a vital role in every stage of Life Cycle in project development. SCM guides the development team in identifying functionality of the system employing the required modules/components. Thus it paves the way for communicating with other development teams so that integration at unit level and system level go through with minimum efforts and the change control, if needed will also become easy. The ultimate system then will have assured reliability through the concept of SCM auditing of the documented functionality and interfaces. SCM thus comprises the primary functions of identification, documentation, control and audit.

SCM is vital for other members like the test team, the users and those involved in maintenance. Adopting SCM, the test team will evolve the test plans and will also become cognizant of the changes to the base line for conducting the regression testing. SCM helps the users by assuring them that the system meets the needs and also for identifying and communicating the problems that occur in the usage. A well-written documentation of the system under SCM will enable the maintenance group for quick diagnostics or to perform any required functional changes.

To conclude, it is absolutely essential that every member of the project team is fully conversant with SCM. Unfortunately, in some cases, lack of experience in SCM leads to failure of projects. The team should follow the process and then choose the appropriate SCM tool rather than relying on a tool that may not fit in. Experts like McConnel warn that hype from SCM product companies encourages the belief that a tool will not only solve all the problems but also provide a comprehensive SCM program. Frederick Brooks, in the book on 'Mythical Manmonth' points out that total reliance on tool cannot establish the SCM program and ensure its integration with the development process.

(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