Agile SPI: Software Process Agile Improvement, A Colombia Approach to Software Process Improvement in Small Software OrganizationsAbstract This chapter presents Agile SPI, A Framework wh
Trang 1Agile SPI: Software Process Agile Improvement, A Colombia Approach to Software Process Improvement in Small Software Organizations
Julio A Hurtado, Francisco J Pino, Juan C Vidal, Cesar Pardo, Luís Eduardo Fernandez
IDIS Research Group
Electronic and Telecommunications Engineering Faculty
University of the Cauca
Street 5 # 4 - 70 Popayán, Colombia.
{ahurtado, fjpino, jcvidal, cpardo, lefernandez}@unicauca.edu.co
Trang 2Agile SPI: Software Process Agile Improvement, A Colombia Approach to Software Process Improvement in Small Software Organizations
Abstract
This chapter presents Agile SPI, A Framework whose main goal is to motivate small and medium size enterprises –SME- towards improving and certifying their software development processes This Framework was born in the SIMEP-SW project where was building a Software Process Improvement Model for supporting process improvement in the Colombian software industry context We presents Agile SPI: its origin, building, principles, architecture, main components and the initial experiences.
Keywords: Management Software process models, Process Improvement, IS Maturity, Software Evaluation, Software Quality, IS Models, SMEs
INTRODUCTION
Nowadays, the software industry represents an important economical activity; it offersdifferent possibilities for business and it aims to be a great opportunity for developingcountries In Latin American countries, the software industry is usually immature,companies face an undisciplined process and that means that quality is unpredictable(Mayer&Bunge, 2004) Not only will it be impossible to plan and manage qualitywithout a mature environment, but also when we achieve it we will not know why and
we could not repeat it (Hurtado et al., 2006) The Latin American software industry hasgrown smoothly, so the generation of strategies for achieving software processimprovement –SPI– environment that would allow to the organizations takes advantage
of effective software process Software quality assurance through software processimprovement is one of the strategies software companies could engage with two goals:the first one is to improve the quality process, so that they can get new market; and thesecond one, the need to become their process like administrative units more efficientand effective (Pino et al., 2006)
One of the characteristics of Latin American software industry is that it is mainly formed bysmall and medium size enterprises - SMEs Most of these companies didn't havedefined a Software Process Improvement - SPI project basically due to the great initialinvestment required, and the disadvantage of their personnel competitiveness on thesoftware process areas The special characteristics of small companies cause thatprocesses improvement programmes must be applied of a way particular and visiblydifferent from the typical way the great organizations do it, this is not as simple as thefact to consider these programmes as versions to minor scale of great organizations
Trang 3(Richardson, 2001; Storey, 1982).
Agile SPI (Hurtado et al., 2006) (Agile Software Process Improvement) is a framework SPIbased on a strategy for institutionalization the software process in the smallorganizations context For the process to be sustained, process behaviour needs to beintegrated into the organization's culture A process is institutionalized when it isfollowed consistently and performed naturally by everyone involved in performing theprocess activities This will happen when the SME has in place a framework forsoftware process improvement appropriate, for that reason Agile SPI is composed bythree components:
• Two light models, a light reference model and an evaluation model, with a set ofprocesses which are typically used by the Colombian small softwareorganizations
• Agile process for supporting a project SPI A process SPI model for guiding aSPI program of way agile A process definition model for supporting theimplementations of improvements
In the context of the SIMEP_SW1 project, a pilot experience was carried out in order tovalidate the theoretical results of this research Some programs SPI in a Colombiansoftware development companies was implemented according to the guidelinessuggested by Agile SPI The results were analyzed for validating our model andimprove it
In section 2 is presented the background Section 3 presents the Agile SPI origins including
a description of the SIMEP-SW project and its developing Agile SPI, its principles,architecture and main components are presented in section 4 The study cases arepresented in section 5 Finally the section 6 presents the main conclusions and describesperspectives
BACKGROUND
The software industry is characterized for a fast product innovation but no by the processrefinement Software process improvements are required increase the productivity ofsoftware companies Generally, it is the aim to increase the quality of the producedsoftware and to keep budget and time Quality models for software processimprovements were developed in context of large organisations and multi-nationalcompanies In Latin American software industry there are many problems in a SPIefforts because they are based on models created for others contexts (geographical,human, sizes of organizations, technologies used, process users and others factors) Insome countries like Colombia, the most of organizations are small, with undisciplinedbehaviour, ad hoc process and absence of process focus The same situation is presented
in the most of countries of the world, even in development countries exists a great
Trang 4capacity in small enterprises The models and technologies associated to the processmust be adapted to the organizations needs The quality models usually do not considerthe factors of success for the companies, such as profitability, competitiveness, strategy
of market and satisfaction of users (Conradi et al., 2002)
The traditional frameworks focuses the efforts for the discipline and the risk reduction.Nowadays, the software products looks for the competitiveness: faster, better andcheaper Inside the focus of SPI models, Conradi in (Conradi et al., 2002) presents threedifferences: process assessment, process refinement and process innovation Modelslike CMMI contributes to assessment and refinement focus, however QIP – QualityImprovement Paradigm contributes to innovation focus through the reuse concept.Printtzel in (Printzell et al., 2001) presented a taxonomy in order to compare de SPIframeworks based on some causal relations between process quality and processquality They compare CMMI, ISO, ISO/IEC 15504, QIP, EF – Experience Factory,GQM- Gode Question Metric and SPIQ – Software Process Improvement for betterQuality This strategy was important for defining the causal relations for Agile SPI.Latin American countries have been concerned in recent years about software quality anddevelopment processes in their own industry, becoming as a main feature in increasingproduct quality (Bedini et al., 2005) For example, the “MoProSoft” model fromMexico and the “MR.MPS” from Brazil, amongst others that could be mentioned
In Mexico, the MoProSoft model has been developed - “Modelo de Procesos para la dustria de Software” (Oktaba, 2005) (Processes Model for the Software Industry) Thismodel is based on ISO 9001:2000, ISO/IEC 15504-2:1998 y CMM MoProSoft aims toprovide the software industry in Mexico with a model based on the best internationalpractices This model is at the same time easy to understand, simple to apply andeconomical to adopt It seeks to assist organizations in standardizing their practices, inthe assessment of their effectiveness and in the integration of ongoing improvement.MoProSoft defines three process categories: Organizational, Management andOperation It specifies three parts for each process categories: a general definition,practices and a guide for adjustments A tenet of its improvement strategy is that theorganization should establish its own strategy for the setting up of the processes defined
In-by the model The processes should evolve in alignment with the suggestions forimprovement The organization’s strategic plan will be reached with increasinglyambitious goals being set all the time In this way the organization can reach maturityprogressively, by this ongoing and continual improvement in its processes
In Brazil, the MPS.BR project (Weber et al., 2005) has been developed Its basis lie inISO/IEC 12207:2002, CMMI e ISO/IEC 15504:2003 The MPS.BR project has twomodels: a Reference Model for the software improvement process– MR_MPS alongwith a Business Model for the software improvement process– MN_MPS MN_MPS
Trang 5defines the elements and interactions involved in the certification of the organization byimplementing MR_MPS in two ways: first one for an organization and second one for agroup of organizations together (thus managing to make it more affordable for SMEs).MR_MPS is made up of maturity levels, along with an assessment model The maturitylevel is organized in two dimensions: capability and process The process maturity isclassified into seven levels: Optimized, Managed Quantitatively, Defined, AlmostCompletely Defined, Partially Defined, Managed and Partially Managed Process areasare attributed to each maturity level based on the levels of CMMI This is so as toensure a gradual and fully appropriate implementation in Brazilian SMEs Theimplementation level of the practices, associated with each process area, is evaluated bymeans of indicators.
In the previous models have been set out explicitly no improvement strategy for guiding animprovement process Agile SPI improvement strategy is based on providing theorganization with an agile process which supports the basis for addressing a SPIProgram
In (Blowers et al., 2006; Garcia et al., 2006; Scott et al., 2001; Wangenheim et al., 2006),among others, are observed others related efforts to software process improvement insmall software organizations
Agile SPI was developed inside to SIMEP-SW project (An Integrated System for theImprovement of Software Development Processes), between the 2004 to 2006 years,supported by the University of Cauca, Colciencias and some Small enterprise of SouthColombian
Agile SPI - Process is an agile process of software processes improvement, which can beused as guide for the implementing of a software process improvement program inSMEs Agile SPI - Process takes as premise the precepts of the Agile Manifesto and therequirements for a light SPI, which have been adapted to the necessities of a softwareprocesses improvement program for small software enterprises These are:
1. The highest priority is to satisfy the client's necessity through the early andcontinuous delivery of significant improvements to the development processbecause of Agile SPI - Process provides a light and agile process of softwareprocesses improvement
2. There are not stable requirements of improvement For this reason, the diagnosis is
a key phase Even so, requirements of improvement that arise will be prioritized andwelcomed as it is feasible to carry out them
3. To give frequently improvements of the software process
4. An improvement program with Agile SPI - Process should be based on the effectivecollaboration among the consultants, the improvement group, the top management,
Trang 6the development group, the SQA group, marketing and other dependences relatedwith the SPI project
5. To build projects around motivated individuals toward the improvement ofindividual, group and organizational processes To give them the opportunity andthe support that they need and to offer to them trust so that they carry out the tasks
6. The most efficient and effective form of communicating round trip informationinside an improvement team is through face to face conversation
7. The maturity of process, as the average performance of the projects, should be themain measure of the progress improvement The base measurements to measure theperformance are the productivity and the quality
8. Agile SPI - Process promotes the sustained development The work must becontinuous and indefinite
9. Agile SPI - Process promotes a technical and management infrastructure,appropriate to support the process improvement
10. Agile SPI - Process promotes the conformation of a dynamic organizationalinfrastructure, based on objectives, not in control strategies
11. Agile SPI - Process promotes the continuous learning as a key discipline Theobjective of this discipline is to allow knowing the work, to meditate about this and
to adjust the work through short and concise iterations
12. Agile SPI - Process promotes the effective conformation of the teams proposed byits infrastructure, it worries about the quality of the human work to carry out Agile SPI aims to support process improvement for the Colombian software industry Itsmain goal was to motivate small and medium size companies towards improving andcertifying their development processes The framework must include practicalrecommendations for process implementation, in order to facilitate their internalization
by a person when following the process and institutionalitation by organizations wheneveryone follows the common process and the process discipline is enforced, and also itshould consider a tool for process definition In the context of the SIMEP-SW project, apilot experience was carried out in order to apply the theoretical results of this research.Inside these project researchers of University of Cauca and some small enterpriseworked for to analyze, design and proof the different models and strategies for improvethe local industry in the Popayán and Cali cities Some strategies was adopted inaddition to the Agile Model, requirements for a company to achieve a maturity levelCMMI using: agile practices, adoption of reuse strategies like software product line andadoption of agile methods for implementing some practices and a collaborative focusfor improve the humans process The most important contribution of SIMEP-SWproject was its participation in the project Competisoft Project2 This new projectsupported by CYTED aims “To increase the competitiveness level of the LatinAmerican Software SMEs by means of the creation and diffusion a methodologicframework
Trang 7FRAMEWORK AGILE SPI FOR SOFTWARE PROCESS IMPROVEMENT
Agile SPI is a framework based on models lightweight, international standards, agileimprovement and agile practices Agile SPI promotes an improvement with lacking ofagility, promotes the agility with quality and recognizes in the innovation the mostpromissory source for the improvement of all the aspects that involves a process:people, methods, techniques and tools The SMEs will be able to create its processes, ifthese do not exist, following its principles and needs, or will be able to follow the cyclesand the models, if it is supporting a process previously defined and wants to improve it.The improvement focuses in the quality of the product and the productivity of theorganization, from which to organize by disciplines it aims towards the securing of thequality of the product and that to maintain the process agile and to innovate in theircomponents is the principles that move the productivity The discipline give reliability
in the process, a mature process offers to certain degree of reliability on theaccomplishment of a project in the organization as far as the reach of its goals of qualityand costs The agility and the innovation are present to support the feature in which thetraditionally mature processes never will consider, under this approach the process must
be agile with the purpose of being able to be reconciled to a SME with its time andresource restrictions And of course, the process must be defined and institutionalized,and prudentially controlled
Agile SPI Architecture
Agile SPI is an integral model for the Software Process Improvement that exhibits thefollowing characteristic: the main focus is SME In this kind of organizations there are agreat interest in innovating as far as products or services, but not as far as theorganization processes The processes are ad-hoc, light or chaotic, there is not greatmotivation in improving this aspect Agile SPI was created like a framework forsupporintg improvement in software SME Usually, the quality assurance is morefocused to the test than to have a complete program of quality control In the best of thecases the quality assurance is focused to control processes instead of facilitating itsimprovement The academy is looking for new forms of development, nevertheless ismore focused in the technologies than in the processes or methodologies Theimprovement of process is considered a remote work, reaching for a great companies Itisn’t known that the improvement is possible from teams and its members up toenterprise level The universities that distribute the work related to the improvementshow the models of quality, their interpretation and all the required infrastructure to do
it, this can motivate to work to improve the state-of-the-art, but it don’t to change thestate of the practice
The Agile SPI architecture has been influenced by the structure of models defined by SEIand ISO, but considering others quality models of processes well-known internationally
Trang 8Agile SPI structure has a main components of an improvement program: animprovement guide and models for supporting, Agile SPI - Light Quality Model andAgile SPI - Light Metrics Model There are two dynamic elements of the staticstructure: the conceptual model Framework SPD (Software Process Definition) andthe improvement process The figure 1 depicted the Agile SPI architecture.
Figure 1 – Agile SPI Architecture.
Due to the context SME, Agile SPI is a complete Framework (it is not a model that sayswhat makes lack, but like complementing the process) It is functional, its applicationfacilitate the complete operation of an improvement program It search beunderstandable, to guarantee his learning and application: therefore it is simple andclear It aims to be usable, that implies that the strategy must be clear, intuitive, flexibleand adjustable to the needs It aims to motivate, that implies that the improvementsmust be visible in short periods, it is necessary the sufficient motivation to guaranteethat the improvement project has continuity It aims to implement a model for applying
in the SME, that is to say, to apply the model must be viable (economically) andfeasible (attainable) The flexibility of Agile SPI is based on its models independence.Agile SPI can be used in different contexts with several models
The framework Agile SPI presents the following components:
• A guide for a improvement program called Agile SPI Process It is a process that guidesthe efforts of a SME towards the adjustment of a software process adequate to itsnecessities This process is the framework of reference for the management of theimprovement projects, the framework includes a method, models, infrastructure,techniques and the tools of support
• A light quality model for Agile SPI Agile SPI Light Quality Model integrated processand product, and that guides the organization of the people and the teams, the disciplinesand the areas of work associated to the definition, application and improvement of theprocess towards a defined maturity level Defining a set of processes which are typically
Trang 9used by the Colombian SME's It allows to identify and diagnose problems of theindustry as far as the process and that allows to planning the improves according to aprocess reference model.
• A light measurement model for Agile SPI Agile SPI Light Measurement Model allows
to measure: the performance of the process in the projects in which it is applied, toimprove the estimations of the projects through the measurement of the effort, thematurity of the this and improvement of the process within the framework of a programSPI
• A conceptual and technological frame for the definition, visualization and application ofprocesses, Agile SPI - Conceptual Framework This conceptual frame is based onmetamodel SPEM - Software Process Engineering Metamodel, this frame is theconceptual base on which SPI and the tools of support are supported to all the models ofAgile SPI This conceptual framework allows to relate elements of process, with theelements of the quality model, with the model of evaluation, the measurement model.For example, the disciplines concept is a separating element of areas of the process andthe structure of Agile SPI are defined based on this concept
Agile SPI focused on disciplines and process components
Agile SPI allows to organize an improvement project, very integrated with the developmentprojects, and each organizational and technical change is to handle through anexperience with the purpose of visualizing in an isolated way, if the improvement reallyhas been done The improvement project follows a process of defined by Agile SPI -Agile Process, this is organized by small iterations, in which the different disciplinesparticipates in a greater or smaller degree of intensity Agile SPI is based on the concept
of discipline like representative areas of process like approach of assurances In theapproach of refinement of the process Agile SPI defines the concept of capacity, whichusually measures the quality degree of a discipline with respect to a quality model orprocess model See figure 2
Trang 10Figure 2 – Example of discipline in Agile SPI Framework.
Agile SPI define three dimensions for improvement: capability, innovation and agility withthe following causal relationship:
11 F1 (Discipline)F2 (Capacity)Quality(Process) Quality (Product)
11 F1' (Component Process)F2'(Innovation in Component)Quality (Process) Quality (Product)
Discipline)Performance(Process)Productivity (Project)
11 F1'''(Component Process)F2''' (Learning in component)Quality (Process) &&Performance (Process)Quality (Product) && Productivity (Project)
Therefore F1 + F1’+ F1’’+ F1’’’ Quality(Product) && Productivity (Project)
The process components are created, evolved and replaced according to the results of theevaluation and the priorities of each organization The improvement is visualized bydisciplines and components of process The improvements are organized by iterationsthat lean in the technology of processes to manage the configuration of process
THE AGILE SPI – PROCESS LIFECYCLE
Agile SPI – Process is an agile and light process of software processes improvement, whichcan be used as guide for the execution of a software processes improvement program insmall and medium enterprises (SMEs) Light because enterprises like the SMEs whichpossess certain characteristics as: low resources, light processes, small human resource,
Trang 11limited economic availability, etc, need a model that supports an improvement programthat consider the real characteristics of their industry, besides offering quick results intheir improvement programs
Agile SPI – Process is an iterative and incremental process is based on improvement cases,which has the feature of throwing quick results of improvement because it allows tocreate mini improvement programs that include improvement cases inside a globalimprovement program The improvement cases are atomic units of improvement in theprocesses areas that have been selected to be improved either because the enterprisefollows a certification or because for it its priority is to improve a specific process Obtaining quick improvement results will allow in consequence to the improvements to bevisible from the early phases of the improvement project, more agile and quicker as themini improvement programs finish depending on the prioritize criteria that theenterprise has defined previously This seeks to maintain the personnel’s motivationtoward the improvement program, through permanent improvement results, removingthe risks of the project in the first phases, to focus the major effort in the areas that theenterprise considers more important for its business The lifecycle is highly influenced
by the iterative and incremental lifecycle models present in many developmentprocesses such as RUP, XP, Scrum, among others; since the improvement projects coverextensive requirements and they impact the whole organizational structure of anyenterprise, some characteristics of these models have been adapted to create a complete,agile, and less bureaucratic improvement process and sensitive to the related activitieswith the management (meetings, documents, infrastructure, etc)
Agile SPI – Process allows the parallelism between iterations or improvement programs,being very advantageous because improvements can be developed in processes areaswhere an evident independence exists In the certification processes, the appraisalbefore the beginning of an improvement program is very important, since this allowsestimating which processes areas the enterprise has and which is their maturity level.Currently many tools exist with which the process areas of an enterprise can beappraised according to a particular quality model, for example: CMMI (SEI, 2002) inits continuous or staged version, ISO/IEC 15504 (ISO_15504-2, 2004; ISO_15504-5,2006), ISO 9001-2000 (ISO_9001, 2000), and others In this aspect Agile SPI – Processcan be used independently of the quality model and evaluation method, for example this
it can be used if a continuous or staggered CMMI has been selected or if the choice isISO 15504
Agile SPI – Process also includes, documents, and explains a set of disciplines to anyimprovement process that can be applied in smaller or bigger measure in each one ofthe phases in which several iterations can be developed, for this we were based on theSoftware Development Unified Process When we identify in Agile SPI – Process the