Este livro oferece orientações práticas e úteis, modelos e técnicas para melhorar o processo e os produtos de software para pequenas e médias empresas, utilizando como ferramentas efetivas os casos de estudo e lições aprendidas para fornecer aos estudantes, professores e profissionais uma valiosa fonte de pesquisa.
Software Process Improvement for Small and Medium Enterprises: Techniques and Case Studies
Por Hanna Oktaba, Mario Piattini
Publicado por Idea Group Inc (IGI), 2008
Este livro está disponível no Google Books.
Texto completo do prefácio (em inglês):
From the very beginning of the 1990s onward, the software engineering community (industry and researchers) has expressed special interest in software process improvement (SPI). This is evidenced by the growing number of books, articles, and conferences that deal with the topic of SPI and the great number of international initiatives related to SPI such as CMM®, CMMI®, ISO/IEC 12207, 15504, and ISO 90003, among others.
Nevertheless, these standards and models are conceived for big organizations like USA DoD, NASA, multinational software factories, and so forth. In fact, there is a widespread tendency to emphasize that the success of SPI is only possible for large companies that have enough resources to tackle these types of practices. This perception is based on the fact that SPI programs are just not viable for small and medium enterprises (SMEs) because of their organizational structure and the high costs that are involved. However, the software industry in most countries is made up mainly of SMEs which favor the growth of national economies. Most software development organizations (nearly 90%) are SMEs which contribute to very valuable and widespread products.
Almost all the experts agree that the special characteristics of SMEs mean that process improvement programs must be applied in a way that is particular to them and visibly different from how this is done in the large organizations. This is not as simple as just regarding these programs as scaled down versions of those applied in big companies. In fact, the assessments conformant to the international standards are expensive and time consuming, difficult to perform in small companies, their process model structure is too complex, and the return of investment undertaken has to be seen from a long-term perspective.
The first International Research Workshop for Process Improvement in Small Settings organized by the Software Engineering Institute (October 2005), the new ISO/IEC JTC1 SC7 Working Group 24, which was created (2006) to develop the “Software Life Cycle Profiles and Guidelines for use in Very Small Enterprises (VSE),” and several other initiatives have demonstrated the increasing interest for new proposals and experiences in software improvement for SMEs. SMEs have become concerned about how to improve the capability of their software processes, as a fundamental element to increase product quality, addressing two main concerns: the first one has to do with their image, which is a key factor in order to be able to export software and hence enter the global marketplace; and the other concern is related to the efficiency and effectiveness of software process management.
Also, different countries like Mexico, Spain, Australia, Brazil, Colombia, and so on have developed local programs to promote the improvement of their software industry, especially focused on SMEs. As a result, several maturity and improvement models have been developed and successful experiences have been carried out. Therefore, in this context, we present this book, the main objective of which is to provide practical and useful guidelines, models, and techniques for improving software processes in SMEs and collecting real case studies and lessons learned, as successful examples of experiences in improving software process capability.
The book consists of 18 chapters. The chapters seek to provide a critical survey of the fundamental themes, problems, arguments, theories, and methodologies in the field of software process improvement in SMEs. Each chapter has been planned as a self-standing introduction to its subject.
Therefore, in Chapter I, “Organizational Analysis of Small Software Organizations: Framework and Case Study,” Jesús Zavala Ruiz realizes an overview on the complexity of a software organization focusing on software engineering and project management as disciplines in crisis and their underlying management paradigm. He considers opening it to those related disciplines and presents a framework to support this change of paradigm.
Claude Y. Laporte, Alain Renault, and Simon Alexandre, in Chapter II, “The Application of International Software Engineering Standards in Very Small Enterprises,” present the new ISO project proposed to facilitate access to, and utilization of, its standards in SMEs by means of developing profiles and providing guidance for compliance with ISO software engineering standards.
In Chapter III, “Practical Experience in Customization for a Software Development Process for Small Companies Based on RUP Process and MSF,” Valerio Fernandes del Maschi, Mauro de Mesquita Spinola, Ivanir Costa Alexandre de Lima Esteves, Luciano S. Souza, Wilson Vendramel, and Jorge Pirola, show the methodology, strategy, main phases, and procedures to the implantation of a customized software engineering process in a SME.
Chapter IV, “The Impact of Software Testing in Small and Medium Settings,” by Luis Vinicio León-Carrillo, shows some foundations of the discipline of software testing and fragments of some successful test process defined using a proprietary process definition language. He presents two case studies realized in Mexican SMEs that show the economic impact of the testing process.
Sarah Kohan, Marcelo Schneck de Paula Pessôa, and Mauro de Mesquita Spinola present “QuickLocus: A Software Development Process Evaluation Method for Small-Sized Organizations” (Chapter V). This is a low-cost process evaluation method especially designed for SMEs that has been successfully apply in several organizations which provide ways to be more competitive.
In Chapter VI, Deepti Mishra and Alok Mishra present “A Study of Software Process Improvement in Small and Medium Organizations,” in which some process assessment and software process improvement methods for SMEs are compared. This will lead towards development of a standardized software process improvement model for small and medium sized software development organizations in the future.
“CMM Fast-Track: Experience and Lessons Learned,” Chapter VII, by Hareton Leung and Yvette Lui, presents the CMM Fast-track Toolkit (CMMFT). This program aims to provide a faster and cheaper method of obtaining CMMI capability for SMEs, increasing the quality of their software products and gaining competitive advantage.
Chapter VIII, written by Hanna Oktaba and Ana Vázquez, presents “MoProSoft: A Software Process Model for Small Enterprises.” This chapter resumes the process model and its assessment method (EvalProSoft) and shows their most important features. It also includes the results of their application in four small Mexican enterprises.
Julio A. Hurtado, Francisco J. Pino, Juan C. Vidal, César Pardo, and Luis Eduardo Fernández present “Agile SPI: Software Process Agile Improvement: A Colombian Approach to Software Process Improvement in Small Software Organizations” in Chapter IX. This framework (Agile SPI), designed to motivate SMEs towards improving and certifying their software development processes, is based on the integration of software processes in small and medium organization contexts and cultures. Knowledge regarding the organization and its main features let processes generate profits and increase the intellectual capital of the organization.
In Chapter X, John Gómez and Alejandro Núñez present “Agile Practices in Project Management.” In this chapter, both authors present common agile practices as the way to address the daily problems that may appear in a process improvement initiative. They explain how these practices can reduce the efforts and cost, and contribute to realize benefits sooner, in a motivational way.
A framework for improving software process in Latin-American SMEs is being developed by the COMPETISOFT project. This framework is composed by a reference process model, an assessment model, and an improvement model, and it is based on other previously solutions, especially in the MoProSoft project. COMPETISOFT is shown in Chapter XI, “COMPETISOFT: An Improvement Strategy for Small Latin-American Software Organizations,” written by Hanna Oktaba, Mario Piattini, Félix García, Francisco J. Pino, Claudia Alquicira, Francisco Ruiz, and Tomás Martínez.
Chapter XII, “SPI Long-Term Benefits: Case Studies of Five Small Firms,” written by Aileen Cater-Steel and Terry Rout, presents a study of assessment-based improvement in more than 20 SMEs during five years. The results show how improving frameworks can affect the organization and its business.
Oswaldo Terán, Johanna Alvarez, Blanca Abraham, and Jose Aguilar show in Chapter XIII, titled “An Incremental Functionality-Oriented Free Software Development Methodology,” the validated methodology used in a factory oriented at free software development. This incremental methodology is based on a prioritization of functionalities development according to needs and has features of both cathedral and bazaar developing styles.
“How to Align Software Projects with Business Strategy” (Chapter XIV) by Gustavo Ricardo Parés Arce, proposes a methodological framework to promote strategic alignment, improve execution through better communication, and understand IT projects. It will help to make better IT decisions for offering a competitive edge to companies based on a better management of the strategic IT portfolio.
Chapter XV, “A Model to Classify Knowledge Assets of a Process-Oriented Development,” written by Raquel Anaya, Alejandra Cechich, and Mónica Henao, identifies a model to characterize knowledgeable assets and their relationships in a software organization, and it sets the basis for defining a transversal process of knowledge management at the organization.
Alicia Mon, Marcelo Estayno, and Patricia Scalzone describe a framework implementation experience in an accounting office in Chapter XVI, titled “Practical Application of a Software Development Framework in an Accountant Office” They show how their process definition allows progressively putting a work model into practice for implementing a process model with continuous improvement.
Chapter XVII, “Estimate of Effort in Software Implementation Projects” by María Julia Orozco Mendoza, Evaristo Fernández Perea, and Claudia Alquicira Esquivel, contains a proposal for project estimation of software used in a Mexican SME. This is based on Karner’s use case point estimation method. Two methods are compared to provide conclusions.
In “Improving Resource Management: Lessons from a Case Study in a Middle-Range Governmental Organization,” Chapter XVIII, Juan M. Luzuriaga, Rodolfo Martínez, and Alejandra Cechich present how resources have been managed according to recommendations of the MoProSoft reference model in a governmental organization. They present some lessons learned from this case study.
In summary, these chapters constitute evidence of the importance of software process improvement in SMEs. These are intended to be useful to a wide audience, including CEOs, CIOs, software engineers, software process engineers, quality specialists, consultants, and software students.
We hope that the practical vision and experience presented in this book will provide the reader with useful guidelines, models, and techniques for improving software processes in SMEs. In this sense, we wish to contribute to increase the quality of the processes and products of SMEs.