|
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)
|