Software Process
Improvement -A Successful
Journey
By Deepty Chauhan
Background:
For many organizations like
ours, the interim target of
achieving ISO 9001 or CMM
levels is a daunting task.
Discipline is no fun
—Organizations readily
acknowledge that striving to
address projects according
to ISO 9001 or CMM
guidelines requires the
creation of new procedures.
It is vital to the success
of improvement efforts to
realize that process change
entails cultural change and
its human nature to resist
change. Numerous social and
technical barriers must be
overcome to effect lasting
improvement.
My organization aimed for
ISO 9001 certification and
then CMM level 2 and Level 3
assessment approximately one
and half year back and knew
that it would be grilled
thoroughly by the ISO
auditors and CMM assessors.
For Software Process
Improvement first we need to
know your strengths and
weaknesses so that the
management can scope the
improvement effort. Only
with this knowledge can we
customize an infrastructure
for process improvement. We
have had success with plans
tailored according to the
Software Engineering
Institute’s CMM model. This
includes formation of
Software Process Engineering
Group, who know their roles,
responsibilities, charters,
and action plans, which
helps you develop a charter
and vision and to establish
a clear match to
organizational goals and
objectives. They will be
much more effective if they
receive the right formal and
informal training. One
pivotal decision was "not to
reinvent the wheel", but
seriously consider Industry
Best Practices.
Later we saw that, Process
improvement always pays
dividends for those with the
discipline to do it right.
Process Improvement
Project
The Strategic Plan
A clear vision is essential
to the success of process
improvement project. Senior
management in our case had
the vision that Process is
Product and was committed to
sponsor and support
improvement efforts. We were
responsible for mobilizing
people and resources to try
and make it happen, but
process improvement was a
new endeavor for my group
and everyone was unsure how
to get started and get
organized My organization
went for strategic planning
using Total Quality
Management's
Plan-Do-Check-Act cycle.
We developed a vision to use
the best practices of
software development teams
and the eleven best
practices were identified:
* Develop iteratively
(incremental development
life cycle) * Use
component-based architecture
* visually model the product
using the Unified Modeling
Language (UML) * Formal Risk
Management * Agreement on
Interfaces * Formal
Inspections * Metric-based
Scheduling and Management *
Program-wide Visibility of
Progress Vs Plan * Defect
Tracking against Quality
Targets * Configuration
Management * People-aware
Management Accountability
In the planning model we
tried to analyze the current
projects keeping the insight
of ISO/CMM through rigorous
reviews. Next, we conducted
organizational Gap Analysis
between its current state
and the vision we were
seeking. The ISO 9001 status
feedback itself became the
catalyst for develop
tactical plans by providing
the team leaders with the
required control mechanism
for project tracking and
oversight.
Our organization tried to
Treat Software Process
Improvement also like a
development project! Senior
management sponsored to
recruit a corresponding
project team (Software
Quality Assurance team or
the Software Process
Engineering Group), selected
a project leader, and
established a repository to
store process documentation
and other process artifacts.
We followed the plan as:
Start by discovering and
understanding current
practice throughout the
group. Find existing process
documentation and talk to
practitioners to understand
how tasks are performed.
Reconcile any differences
between actual and espoused
processes. Document and review
the newly characterized
process. Then
iteratively and
incrementally improve
the process and ensure
that the documentation
is updated
appropriately. Project
Planning, Software
Configuration
Management, and Software
Quality Assurance,
project tracking,
Software Tools usage
were the key areas where
our organization
concentrated more for
process improvement. We
tried to customize
Rational Unified Process
for our working
environment and
automated tools in
process was also taken
up.
We also ensured that the
visibility of the project to
upper management and the
rest of the organization
were comparable to that of
other important projects.
Culture and Resistance
Process improvement affects
more than just the processes
used by practitioners to
perform their work. Process
change means culture change,
replete with all the
difficulties inherent in
changing the perceptions,
values, and normative
behaviors of a community.
Some of the forces that make
such improvement efforts
difficult are: