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!