by
Muhammad Arif , Network Administrator , pakistan institute of cost and contracts picc house, lahore
Software Configuration Management encompasses the practices and procedures for administering source code, producing software development builds, controlling change, and managing software configurations.
Specifically, Software Configuration Management ensures the integrity, reliability and reproducibility of developing software products from project start to release.
by
Muhammad Ijaz , Implementation Manager , Huawei Technologies (Du Project), Dubai
SCM enhances productivity and boosts application quality because it
automatically versions files, labels and organizes them as they change during
the development process. SCM prevents unintentional code overwrites, which
can result in missed bug fixes or customer-specific change requests.With SCM, you can
stop trouble before it starts.
SCM also enables parallel development. You don't have to wait for one team
or developer to finish a task before others can proceed. Instead of developing
sequentially, you develop concurrently because its safe and easy to do so.
Timelines become more predictable when you don't have to wait for sequential
development. You get to market faster.
Terminologies Used in SCM1)Revision management
This is the core function of SCM and the foundation upon which other
functions build. Revision management is the storage of multiple images of
the development files in an application, which can be shared by multiple
developers. With revision management, you can get an image a snapshot in
time of the development process and can re-create any file to the way it was
at any point in time.2)Version management
While revision management shows development files in progress, a version is a
particular instance of an entire development project. A version is usually
thought of as all the functions, features and complete builds you can use right
now. Files managed, version-labeled and promoted by the revision
management system are used to build the version.3)Workflow and process management
As software or web content is developed, it is said to go through a lifecycle. I
Whether formal or informal, there are usually milestones in this lifecycle, such
as DEVELOPMENT-TEST-ALPHA-BETA-RELEASE for applications,
TEST and PRODUCTION for packaged applications or, for websites, staging servers, review checkpoints and approvals before content is posted. A good
SCM solution must manage the progress of code and content through the
lifecycle. This is many levels above the simple source code protection built
into some development platforms.4)Build management
When the code files, compilers, development tools and other components
needed to create an application are ready, developers make an application
build. I Build management imposes automated, repeatable procedures that
speed the build process, improve build accuracy and make it easier to create
and maintain multiple versions of an application. An SCM toolset can become
a vital integrative resource for building an application across multiple
platforms. A strong cross-platform build management capability also
eliminates the need to redefine the build process (the script) for each platform
you are targeting.5)Change requests
The days of creating software, shrink-wrapping it, selling it and walking away
are long gone. Todays software undergoes a constant process of revision.
Development teams can be overwhelmed with the many software change
requests (SCRs) and web change requests (WCRs) they receive, everything
from users wish lists, to new business requirements that must be
accommodated, to bona fide bug reports.
SCM enables teams to streamline the SCR/WCR process by automatically
tracking updates, change requests, problems and issues; assigning ownership
and hand-offs within the development team; and communicating the process
through to resolution.6)Code and project auditing
Cross-platform development introduces special problems because the data to
be audited may reside on multiple platforms. The best SCM systems provide a
single point of access for auditing all development information. They also
work across all kinds of development platforms, operating systems, network
protocols and hardware platforms, and provide tailored clients within the
developers preferred development interface.7)Security
In a mainframe or UNIX-only environment, it is possible to define an
executable as having a user ID. You then create permissions on shared
development directories to limit user access. On Windows/PC platforms, this
security is absent. The SCM system itself must provide the ability to control
access, including secure, protected access via the Web.