Abstract-Developing quality software product is a challenging activity and yet necessary asset for most software companies especially small and medium size companies. For a Software process improvement (SPI) activity to be effective in such companies, the day to day product-focused activities needs to align with SPI activity. Different process maturity models have been developed, among them the Capability Maturity Model Integration (CMMI) is the most widely used process maturity framework. However, it is considered difficult to implement for small and medium companies due to various reasons related with its difficulty and financial requirement. On the other hand, the recent software development approach is being directed towards application of agile software development methodologies. But some difficulties have also been reported regarding agile methods limitations of long term and continues guide to process improvement. Researches findings and experience reports demonstrated that, combination of agile methods and CMMI has advantages where most of which can be considered as a solution to problems associated with implementing process maturity activities in immature companies. Index Terms-Integrated framework, CMMI and agile methods, institutionalization. The design and development of software is still the most challenging and complex process; where most products suffer from un-attained requirements and fail to maintain the expected quality. Many problems are attributed to failure of software products. Regardless of how it is explained, the set of problems that are encountered in the development of computer software is not limited to software that "doesn't function properly". The affliction encompasses problems associated with how we develop software, how we support a growing volume of existing software, and how we can expect to keep pace with a growing demand for more software [1] . The quality of a software product is considered to be the output of the software process used in the production process. Different software organizations follow varieties of process Manuscript received June 29, 2014; revised November 4, 2014. Tatek Engdashet is with Addis Ababa University Addis Ababa, Ethiopia (e-mail: mail4te@gmail.com). Ricardo J. Machado is with the Department of Information Systems University of Minho Guimarã es, Portugal (e-mail: rmac@dsi.uminho.pt). Dida Midekso is with the Department of Computer Science Addis Ababa University Addis Ababa, Ethiopia (e-mail: dida.midekso@aau.edu.et). maturity models to improve the software process to maintain and upgrade the quality of software developed Continuous improvement of the software process is considered as a means to guide software developing companies towards standard practices to have a software process with better capability. A standard capability model is created, as a result significant improvement on the quality of the software products, through the introduction of new techniques and new tools, is achieved [2] . A number of software process maturity models have been developed to determine process capability and used as a reference for improvement. Capability Maturity Model (CMM) is developed in Carnegie Mellon University and later extended to CMMI by incorporating more other capability models. The model developed by the International Organization for Standardization (ISO) brought ISO15504 maturity assessment model which is compatible with CMMI. In addition, different models have been developed with the intention of contextualizing the standard models to a certain context. This approach has brought different models such as separate models for small companies, development of national model, and so on. According to practical observations reported on the approaches, both CMMI and agile methodologies have shortcomings on some settings which can lead to failure in meeting the desired result. On the other hand some studies have shown the chance of getting the synergy in using the agile and CMMI to compensate each other and most of the shortcomings of the two approaches are found to be complementary [3] . According to [4] , CMMI can help companies in institutionalizing agile methods consistently in a structured manner to address processes by defining what to address. On the other hand, agile methods have a significant advantage in guiding implementation of CMMI requirements by answering the how question which is not successfully addressed by CMMI framework. Research findings related with combining some agile methodologies with the Key Process Areas (KPA) in the CMMI framework have demonstrated the two approaches can work together and can also be even better if they are implemented thoughtfully than they are individually. In line with this the attempts made and the results obtained have shown tangible evidence of achievements in software development and SPI through combining CMMI and agile methods. The implementation of SPI programs differs according to the priority of parameters considered for a particular context. In this research in-progress paper an integrated framework that combines agile methods with specific practices of the key process areas in CMMI framework is proposed. The framework can be an alternative guide to formal process improvement through agile methods.
The detailed description of the framework is covered in an earlier publication of the first part of the research REF .
Integrated Framework of Agile and CMMI: An Alternative Path towards Product Focused SPI for Small Companies
Lecture Notes on Software Engineering
Lecture Notes on Software Engineering
Computer Science