Software firms are playing very important roles in economies all over the world, and majority of these firms are Small and Medium Enterprises (SMEs). It is important to introduce Software Process Improvement (SPI) in Small and Medium Enterprises (SMEs) to improve their development processes and activities in order to produce software with high quality and to be competitive in the software industry. A framework based on critical success factors of SPI will be proposed by consulting the professionals from software companies. This will help the implementation of SPI in SMEs.
According to Watts Humphrey (1993) definition “Software process is the Set of Activities, Methods, and Practices that guide People in the Production of Software” 1. Software process can also be defined as “The set of activities, methods and transformation that people use to develop and maintain software and the associated products” 2. A well-defined software process can help organizations to improve their capability and maturity level throughout the business system.
Karl E. Wiegers explains process improvement as simply: “consistently apply the practices that give you good results, and change the practices that cause problems” 3. The motivation behind SPI is to achieve business goals and develop quality products through a mature process and practices. The objectives of software process improvement are 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 4. It’s important that organization should analyze the organizational structure and process and identify the main reasons behind their failed and successful projects and take measures to make improvements wherever needed.
Software development has become a complex job in recent decade due to increasing number of projects, competitive environment and the complex development tasks. The competitive market has challenged software companies to complete the projects and develop quality products in desired time and allocated budget. Managing and handling the quality of projects and products is not easy especially when technology changes rapidly. In order to address these issues, it is essential for companies to focus and improve their organizational practices, and processes. The more capable and mature an organizational process the better and quickly they will achieve business results.
SMEs are seen as the main actors for enhancing innovation, competitiveness, entrepreneurship and the establishment of an effective innovation system for of both national and regional development in many countries. Small and medium organization have become popular in the world especially since 1960s. SMEs provide the strength of element of balance income spectrum. This balance gains importance in terms of both social and economic sides. These enterprises are the sources of new ideas and discoveries. They contribute to the industries for providing required elasticity. They have the opportunity to make a decision more quickly. Because they work with less expense of management and general operating, they have faster and cheaper production. SMEs play an important role in creating private initiatives. Also they enjoy large shares in employment and training. They constitute an effective way to expand the manufacturing and industrialization to the whole country. They may be effective in increasing quality of life providing some opportunities for small investments to use labor force, raw material and financial sources that cannot be used because of social and political reasons. SMEs possess a significant role to fulfill the function to reflect small savings and family savings directly to the investments. SMEs constitute the basic source of materials, ideas, process and service that large enterprises cannot do or do not want to do. In this regard the small firm is too important, too dominant and too much about creating the future business generation for marketing practitioners 5.
Existing software engineering and organization development literature acknowledges that there are fundamental operational differences between small and large organizations. Small organizations seem more concerned about practice, while large organizations seem more concerned about formal process. Russ and McGregor observed that software development process can be just as critical to a small project’s success as it is to that of a large one due to the number of external dependencies per team member. They further argued that its goal is to produce high quality and timely results for today’s market without imposing a large overhead on a small project. Paquin identifies assessments, project focus, documentation, required functions and maturity characteristics as process issues for small organization. Abbott identifies six keys to software process improvement in small organizations:
• Senior management support
• Adequate staffing
• Applying project management principles to process improvement
• Integration with ISO 9001
• Assistance from process improvement consultants
• Focus on providing value to projects and to the business
Johnson and Brodman identify seven small organization/small project challenges:
• Handling requirements
• Generating Documentation
• Managing Projects
• Allocating Resources
• Measuring Progress
• Conducting Reviews
• Providing training
Larsen and Kautz also viewed that these organizations are afraid of the initial expenses which they assume are large both with regard to direct costs for process assessment, training and tools, but also due to indirect costs for personal and time resources when implementing improvement actions. Kuvaja et al. further supports that it is quite difficult for any SME to choose an improvement approach, and to apply it in their organization without the help of external consultants or substantial investment in the time of their software managers. Cultural issues like resistance to change from the employees or the management areas, who regard the extra work required for quality assurance as a useless and complicated burden put on the developing team. According to Biro et al. national culture also affects the process improvement methods. Kuvaja et al. mentioned that the main problem of the small companies is that they cannot afford to maintain substantial expertise of software process improvement within their companies, but they have to buy it from external sources. A further problem related to the lack of expertise is to find how to start the improvement and which experts to use. Due to budget constraints, the services of a consultant organization to improve the software quality are not possible. Still the need for a good quality assurance program is becoming more evident, and managers are striving to achieve international quality standards that, in the long run, result in lower production costs. According to Kautz, the software process improvement is rewarding and advantageous also for small organizations if it takes into account the peculiarities of such organizations. Dyba also found empirically that small organizations implemented SPI as effectively as large organizations, and in turn, achieved high organizational performance. According to his study, the main lesson to be learned is that to implement SPI at least as effectively as their larger counterparts, small software organizations should capitalize on their relative strengths in employee participation and exploration of new knowledge. There are various approaches, languages and tools for process definition. However, are rarely applied in practice specifically with small organizations. Furthermore, only few studies in the context of small software companies have been performed. In order to get an edge in an ever-growing highly competitive software development world, it is significant for an organization to regularly monitor the software process. It is important for an organization to continuously improve its software process on the basis of feedback from various stakeholders. It is also supported by Mintzberg that for smaller organization’ where much of the work is coordinated through direct supervision and mutual adjustment, it is important to find a balance between these mechanisms and formal, defined and highly detailed documented procedures to facilitate organizational learning. Despite the fact that even in the US most software producing units are comparably small and state a need for improvement, little is known about software process improvement in this kind of organization. Kautz further supported the view that even small organizations with little more than two developers can profit from some basic formal routines. According to his research project conclusion if procedures are defined, concisely described and tested, feedback from these tests can be used as feedback to improve the procedures and routines. According to Kuvaja, it is common knowledge amongst the SMEs that full-scale assessment methods are only useful in large organizations and do not serve the SMEs appropriately. Nevertheless, small software development teams can improve their software processes beneficially as well as large organizations. To summarize, most of the previous reported research is focused on SPI models, assessment methods and case studies/projects applicable in SMEs.
Any software process improvement plan requires a qualified statement about the current status of software development in the companies and a description of strengths and weaknesses identifying areas for improvement. On the basis of a literature survey, following six SPI methodologies which have been implemented in SMEs.