VSRD International Journal of Computer Science &Information Technology, Vol. IV Issue IX September 2014 e-ISSN : 2231-2471, p-ISSN : 2319-2224 © VSRD International Journals : www.vsrdjournals.com
/ 155
RESEARCH PAPER
SOFTWARE PROCESS IMPROVEMENT 1Swati Srivastava* and 2Akash Awasthi Scholar, 2Head of Department, 1,2Department of Computer Science & Engineering Naraina Vidya Peeth Engineering & Management Institute, Kanpur, Uttar Pradesh, INDIA. *Corresponding Author:
[email protected]
1Research
ABSTRACT As many organizations wants to improve the quality of the software they develop, there is one way to do this is to improve software process. Most of the software process models describe technical approach for software process improvement. This paper identifies some activities of software process improvement and explains risk management for software process improvement. On other hand this paper proposes some strategies to manage change that address these issues. Keywords: Capability Maturity Model Integration, Optimizing, SPI (Software Process Improvement) Framework, Risk management for SPI, SPI strategies, SEI (Software Engineering Institute).
1. INTRODUCTION Software Process Improvement (SPI) is that elements of effective software process can be defined in an effective manner. SPI is a major international initiative to support the development of an International Standard for Software Process Assessment. The project has three principal goals.
2. PROCESS IMPROVEMENT MODELS The major uses of the maturity model are in process assessments and evaluation:
First is to develop a working draft for a standard for software process assessment, second is to conduct industry trials of the emerging standard; and third is to promote the technology transfer of software process assessment into the software industry worldwide.
In evaluations, acquisition agencies use the maturity model to identify qualified bidders and to monitor existing contracts.
The SPI strategy transforms the existing approach to software development into something that is more focused, more repeatable and more reliable in terms of quality of the product and the timeliness of delivery. Process Need Assessment: It's crucial to recognize that the primary drivers for process improvement are business-oriented: implementing a process for its own sake is a bad idea. Process improvement is an enabler, not an end in it. You must understand the business goals of your organization in order to implement an effective information technology (IT) process. For example, the goal of always being first to market with new functionality will require a process with a different emphasis than that of minimizing defects in a highly regulated industry. The point is that you must start by determining your business needs. [1] Karl E. Wiegers explains process improvement as simply: “consistently apply the practices that give you good results, and change the practices that cause problems” [2] The objectives of software process improvement is to set methods in order to improve the development process including project management, eliciting and managing requirements, decision making, measuring performance, planning the work, handling the risks and many more.[7]
In assessments, organizations use the maturity model to study their own operations and to identify the highest priority areas for improvement.
Six Sigma: SixSigma is a process improvement management framework to achieve bottom-line results, and customer’s loyalty. In short the objective of Six Sigma is the implementation of a measurement-based strategy that is focused on process improvement and variation reduction (Bendell 2000)[3]. TickIT Guide ISO 9001: TicketIT project started in 1991 with the purpose of stimulating software system developers to think about process quality, how to achieve the desired quality and how to manage this quality in order to perform continuous improvement. TicketIT also provides a practical framework for the management of software development quality[4] SPICE: Main purpose of SPICE framework is to analyze and assess the software process and on these assessments, provide information about process strengths, weaknesses and capability to achieve its goals. The definition of the term “process assessment” is “A disciplined evaluation of an organization's software processes against the process model or variant model described in this International Standard.” [5] Bootstrap: BOOTSTRAP was originally designed by using SEI model as starting point and extended on features from ISO 9001 guidelines [6]
Swati Srivastava and Akash Awasthi
CMMI: CMMI is a framework that provides a process improvement setup for the software engineering and product development. CMMI combined best practices and basic principles and interlinked them in order to improve the process inside an organization. .[7] At the optimizing level (level 5) the organization has the means to identify its weakest process elements and strengthen them, data are available to justify applying technology to
VSRDIJCSIT, Vol. IV (IX) September 2014 / 156
critical tasks, and evidence is available on process effectiveness. At this point, data gathering has at least been partially automated and management has redirected its focus from product repair to process analysis and improvement. The key additional activity at the optimizing level is rigorous defect cause analysis and defect prevention.
3. SPI LIFECYCLE
Fig. 1: The Software Process Improvement Life Cycle (Wiegers 1999)[1] The Figure 1 explains the process improvement activities as defined by Karl E. Wiegers. Define desire organizational business objective and goals. Evaluate the current process, problems and Project outcomes. Do proper assessment of all those processes in order to get clear insight of current process, problems and outcomes and also to explore the best software practices. Set improvement Goals in specific area or process, start from small set of appropriate practices in order to reach the goal smoothly and steadily. Identify the Projects where new process will be pilot and improvement will be created and launched make needed adjustment before implementing it. It’s very important to Plan all these new methods and practices in order to get maximum benefit from the process improvement. The most important point is to implement an action
plan in order to get successful results. Monitor the changes and make adjustments to make things clearer. Continue the process improvement program in other process as per requirement and data obtained from making various changes and do that according to the needs.
4. SEI PROCESS IMPROVEMENT CYCLE Initialize Establish Sponsorship Create vision and strategy Establish improvement structure For Each Maturity Level Characterize current practice in terms of key process areas Assessment recommendations Revise strategy (generate action plans and prioritize
Swati Srivastava and Akash Awasthi
VSRDIJCSIT, Vol. IV (IX) September 2014 / 157
key process areas) For Each key Process Area Establish process action teams Implement tactical plan, define processes, plan and
execute pilot(s), plan and execute institutionalization Document and analyze lessons Revise organizational approach
5. SPI FRAMEWORK
Fig. 2: The Software Process Improvement Framework Figure 2 explains that Software Process is examined by assessment which leads to improvement strategy and capability determination. Improvement strategy identifies changes to software process and suggests improvement approach for software process. Capability determination capability strengths and weaknesses of software process and identify maturity of software process. 6. ACTIVITIES OF SPI Assessment and Gap Analysis: Assessment examines a wide range of actions and tasks that will lead to a high quality process. o Are important activities, actions and tasks applied consistently across all software projects and by all software teams? o Are Management and technical actions performed with a level of sophistication that implies through understanding of best practice? o Acceptance: Need to check if the software process and software engineering practice is widely accepted by management and technical staff. o Commitment: Has management committed the resources required to achieve consistency, sophistication and acceptance? Gap Analysis: The difference between local application and best practice represents a gap that offers opportunities for improvement.
Education and Training: Education and Training should be conducted as generic concepts and methods (directed towards managers and practitioners and stress on both process and practice.), specific technology and tools (directed primarily towards practitioners and stresses on technologies and tools that have been adopted for local use.), business communication (directed towards all stakeholders and focus on soft topics that help enable better communication among stakeholders.) Selection and Justification: Choose the process model that best suits to your organization, its stakeholders and the software that you build. Develop a work breakdown for each activity defining the task set that would be applied for typical project. Once a choice is made, time and money must be expended to install it within an organization and these recourses expenditures should be justified. Software process redesign is concerned with identification, application and refinement of new ways to dramatically improve and transform software processes. The three different process models are considered: The existing process A traditional process The target process Evaluation: From a qualitative point of view, past
Swati Srivastava and Akash Awasthi
management and practitioner attitudes about the software process can be compared to attitudes polled after installation of process changes. 7. SPI STRATEGIES Define an Organizational Vision: To gain commitment from its employees, an organization must define a vision and simply and clearly communicate it to them.[8] Be Aware Of Your Organization’s Current Culture: One of the significant forces that affect the success of your process improvement efforts is the culture of your organization. Organizations with cultures that are positive toward process improvement are likely to want to supply a quality product with reasonable business returns, have middle managers that are willing to set and work toward targets of meeting your organization’s needs and business goals, and have senior management leadership that is willing to launch and sustain a long-term change effort. Regularly Hold Retrospectives: A retrospective is a process improvement meeting where you ask four fundamental questions: What did we do well that if we don't discuss we may forget? What did we learn? What should we do differently next time? What still puzzles us? Retrospectives can be simple 15 minute discussions or formal meetings over a day or two. The goal is to learn from your experiences. Align The Training Program With The Change Effort: By teaching employees the why of things as well as the how of things, it can build organization capacity. This approach will also lessen resistance to adapt to an even changing world.[9] Improve Your Processes in Priority Order: The reality of process improvement is that you cannot make all of the changes that you want to immediately; it is simply too great a change for your organization to absorb at once. This is why we have efforts such as the Software Engineering Institute’s (SEI’s) Capability Maturity Model Integrated (CMMI) efforts and the Software Process Improvement Capability Determination (SPICE) efforts of the International Standards Organization (ISO). Both of these organizations suggest that you prioritize the process improvements that your organization needs to make, expect that it will take several years to make the needed changes, and expect that you will experience difficulties while doing so. There are five maturity levels in the CMMI for a reason: you need to progress in order from level one to level two to level three and so on. The implication is that by knowing which aspects of a software process map to which CMM maturity levels you have a rough idea of the order in which you should introduce those processes to your staff. Experience shows that organizations that try to make immediate, large-scale process changes are likely to fail doing so. The reality is that it takes time, often several years, to permanently improve the productivity of your software development efforts. There is not a simple, quick fix to your problems. Introduce a Software Engineering Process Group
VSRDIJCSIT, Vol. IV (IX) September 2014 / 158
(SEPG) to your organization: The sole responsibility of your SEPG is to support the definition and improvement of your organization’s software process. The SEPG should be kept small – as a rule of thumb, we suggest one SEPG member for every one hundred developers in your organization. SEPG efforts are a component of the EUP's Software Process Improvement (SPI) discipline. Hold Everyone Responsible For Process Improvement: Senior management must be willing to actively support and sustain process improvement, project managers must be held responsible for ensuring that their teams follow the defined processes, and developers must be held responsible for learning and then following the processes. This is often a difficult task because senior management often demands immediate results, whereas process improvement often takes years. Project managers resent diverting scarce resources from their projects, and developers often resent being told how to do their jobs. Bring In an Expert to Advise You: Process improvement is a complex and difficult endeavor, one for which you are likely to need help to accomplish. You can increase your chance of success by bringing in a consultant who has both a process background and an OO development background – someone who has been actively involved in a process improvement program and who has worked on large-scale, mission-critical software development projects using OO technology. 8. RISK MANAGEMENT FOR SPI SPI Risk Factors: Budget and cost Content and deliverables culture Organizational management and organizational stability Process stakeholders SPI development environment and process SPI project management and staff Risk can be managed at three key points in SPI process Prior to the initiation of the SPI roadmap During the execution of SPI activities During the evaluation activities that follows the instantiation of some process characteristics. 9. CONCLUSION Software Process Improvement is a long term incremental activity. Process improvement involves process analysis, standardization, measurement and change. We do process improvement because we want to build better products (cheaper, more dependable, quicker ...), We really don’t know how to measure the product characteristics, There, measure the process under the assumption – a better process will produce a better product. The goals of SPI are to understand existing processes, Introduce process changes to improve quality, reduce costs, or accelerate schedules, Industry is demanding increased attention to quality in general, most process improvement work focuses on defect reduction and
Swati Srivastava and Akash Awasthi
VSRDIJCSIT, Vol. IV (IX) September 2014 / 159
prevention, and there are other process attributes that deserve our attention. 10.REFERENCES [1] Scott W Ambler : Enterprise Agile: Software Process Improvement (SPI) See more at: http://www.enterpriseunifiedprocess.com/essays/softwareP rocessImprovement.html#sthash.Owips7fN.dpuf [2] Wiegers Karl E. (1999); Process Improvement that Works, Software Development Magazine, 7(10), reprinted version available from http://www.processimpact.com [3] Bendell T., "What is Six Sigma", Quality World, January 2000. [4] The TickIT Guide, January 2001, Issue 5.0 http://www.tickit.org/overview.pdf [5] SPICE Documents: http://www.sqi.gu.edu.au/spice/what.html [6] BOOT S TRAP: A Software Process Assessment and Improvement Methodology by Pasi Kuvaja. [7] CMMI (2010); http://www.sei.cmu.edu/cmmi/ [8] Moitra, D., “Managing change for software process improvement initiatives: a practical exercise based approach,” Software Process: Improvement and Practical, vol. 4, no. 4, December 1998, pp. 199-207. [9] Eckes, G., Marking Six Sigma Last, Wiley, 2001. Websites: [10] David F. Rico's SPI-oriented information technology web page http://davidfrico.com [11] Integrated Product and Process Development (IPPD) https://www.goldpractices.com/practices/ippd/ [12] Q-Labs. http://www.q-labs.com/ [13] R.S. Pressman & Associates, Inc http://www.rspa.com/index.html [14] Software Engineering Institute (SEI) http://www.sei.cmu.edru/ [15] Software Process Improvement Glossary http://ieeexplore.ieee.org/xpl/ebooks/bookPdfWithBanner.j sp?fileName=5989249.pdf&bkn=5989248
Swati Srivastava and Akash Awasthi
VSRDIJCSIT, Vol. IV (IX) September 2014 / 160