Implementing an Organizational Software Process Improvement Program

advertisement
Implementing an Organizational
Software Process Improvement
Program
By: Beth Layman
EEL6883 – Software Engineering II
Dr. Turgut – University of Central Florida
Presented By: Adam Radwan
5 April 2007
What is Process Improvement?
• Key activities involved to implement a set
of processes for software engineering
• Focus of this article is on “meta-process”
descriptions
– Create, use, and improve on set processes
– Referred to as a “program”
– Steps outlined here similar to ISO/IEEE
standards, IDEAL model, and “PDCA”
Planning for Process Improvement
• Programs commonly initiated due to
quality issues with software development
• Routes must be planned as to how to
begin modifying the software process
• These may be modeled by software such
as Capability Maturity Model for Software
(CMM) from Carnegie-Mellon University
Capability Maturity Model Integration
• CMMI came about as the successor to
SW-CMM; more comprehensive model
• Various levels in which an organization
may decide to implement
• Each subsequent level increases the
number of required standards that must be
worked into current processes
Assessment
• Helps to build a baseline indicator, assess
strengths and weaknesses
• Two methods recognized
– CMM-Based Appraisal for Internal Process
Improvement (CBA IPI)
– Standard CMMI Appraisal Methods for
Process Improvement (SCAMPI)
• Assessment director not affiliated with the
organization usually selected
CMM Levels
• CMM Level 1 – Two options given:
– Improvement approach focuses on building
process capability at the project level
– Standardized process modeled for all projects
to follow
• CMM Level 2
– Evolved model criteria with higher standards
that Level 1 organizations can strive to meet
PI Infrastructure
• Various roles are allocated for program
and established as part of start-up process
• Organizations may opt to use preexisting
teams or working groups to cover roles
• Usually three to four levels of
infrastructure elements which are
recommended for implementation
Executive Leadership Group (ELG)
• “Serves as the sponsoring team for the
program; responsible for reviewing and
approving SPI plans, budgets, and for
periodically reviewing SPI progress and
results. The ELG may be subsumed into
the MSG in smaller organizations.”
Management Steering Group (MSG)
• “Typically made up of a cross-functional
set of influential and well-respected middle
managers. This group sets the pace and
tone for the program and has primary
accountability for its success. Regularly
presents plan details, progress, and status
reports to the ELG.”
Software Engineering Process Group
• (SEPG) “Typically composed of senior
software engineering professionals from
across disciplines: analysts, architects,
developers, testers, configuration
management specialists, and so on.
Members often serve on a rotating basis
and may be part-time only. May be led by
full-time manager who also sits on MSG.”
Process Action Teams (PAT)
• “Formed as needed to undertake some
process development or improvement task
(e.g., develop and pilot a standard process
for conducting code inspections). Often
led by a manager of the SEPG and made
up of part-time subject matter experts.
Teams are dissolved once their task has
been completed.”
Defining Processes
• A set of processes is chosen that will meet
the organization’s unique needs
• Process definition may be the bulk of the
work, especially for lower-maturity
organizations
• Processes must be relevant, correct,
consistent, useful, flexible, extensible, and
adaptable.
Process Description
• Policy – A statement of the organizational
expectations for the process, when and under
what conditions the process is to be followed,
and why it is needed
• Process – Used to name the “what” level of
process description. Outlines what the process
accomplishes, activities, roles, deliverables, and
portraying component interconnections
Process Description
• Procedure – defines “how” each component part
of the process is conducted; a step-by-step
description is made that identifies specific
techniques, methods, and tools to be used.
• Role – a defined set of role titles and
descriptions should be used consistently; roles
may be responsible for, accountable for,
consulted with, or informed of an event
Process Description
• Activity – “Work that is performed to carry out a
process. This generic term is used to refer to a
breakdown into phases, steps, tasks, and so on,
and sometimes organized into a hierarchy of
work detail into a process description.”
• Work Products – “The tangible items consulted
while performing an activity or produces as a
result of performing the activity. Synonyms are
‘deliverable’ and ‘artifact’.”
Process Assets
• Process assets are any helpful items used
when executing a process, and include:
– Templates
– Automated Tools
– Guidelines
– Standards
– Checklists
– Examples / Lessons Learned
– Training Material
Process-Related Measures
• Capture mechanisms within a process to
gather measurements is not always
automatic
• For example, 80 hours is allotted to
complete a task, however it took 100
hours to complete the task
• Figures updated in project management
system to update overall status of project
Process Definition Challenges
• Sometimes the choice is difficult whether
to have one or many process sets
• This may be dependent on requirements
such as business units, locations,
departments, and clients
• Risk of remaining too long in process
definition mode without actually improving
• Developing processes not “fit for use”
Process Implementation / Roll-out
• Process fidelity, or faithfulness in which
the process is followed, ensuring:
– Processes are usable
– Users understand the processes
– Users can access the processes and assets
– Users follow the process consistently and
correctly
Walkthroughs and Pilots
• Walkthroughs are a good way to get early
feedback from target community of
process users
• Piloting goes further than walkthroughs to
verify that the processes will work in actual
practice.
• Example of television sitcoms
– “Seinfeld” and the Pilot, “Jerry”
Roll-out
• After successful pilot, all feedback is
compiled and modifications are made
• Roll-out procedures usually involve user
training of new processes needed
• Distribution of new product takes place
internally and is complemented by a
“project launch workshop”
Continuous Process Improvement
• Process Improvement is an ongoing
program, evaluations and adjustments to
the program should be performed annually
• Possible sources of input for future work
– User feedback
– SQA and model-based assessment findings
– Measurement data
Questions?
• Any questions?
• Thanks for your time!
Download