Software Process Model and Metrics Adoption for Small Software Organizations
PDF Available here.
Software Process Model and Metrics Adoption for Small Software Organizations
This paper discusses reasons why small organizations often do not adopt software process models and metrics that are more prevalent and expected in larger organizations and which models they may adopt or alter in order to obtain manageability that a full-scale software process models and metrics solution offers. It addresses why smaller software organizations may be apprehensive to adopt the models, why many existing models do not work, what models may be applied and how, why they should adopt a model, and ultimately successes found after software process model adoption.
Large organizations greatly benefit financially and organizationally from the adoption and adherence of software process models and metrics (SPMM). The models and metrics are useful in laying out a groundwork for the software development process, for determining allocation of resources, determining a cost and time analysis, providing the customer with overall satisfaction, and ultimately generating good rapport. Large organizations prosper upon SPMM adoption and their success ought to be a model of inspiration for small organizations. However, its often the case that the smaller business choose not to adopt SPMM because of the general idea that SPMM adoption costs much money, manpower, and feeling that the models do not scale down. Large software organizations do have the benefit of being able to adopt nearly any one of the many well-known SPMM because the model are typically written with large organizations in mind. Ultimately, SPMM adoption from small software companies, while challenging, is very rewarding and beneficial. SPMM are now creating models that are more scalable in that although they scale to companies with tens of thousands of employees, the model may also be adopted in smaller organizations that may perhaps employ a handful of individuals. This paper intends to address each of these issues, specifically why many small organizations feel they cannot adopt industry standard SPMM, why the small organizations should adopt the models, how they can implement the chosen model, and how it proves to be a successful venture.
For the purposes of this paper, it is necessary to define the use of the terms “large organization” and “small organization”.
It is difficult to draw a clear line on what is considered a large organization. For the purpose of definition in this paper it has been determined that the large software organization is to be for organizations with 200 or more employees. This is not a general definition of a large organization but rather a definition limited to the scope of this paper.
Small organizations, by definition of the opposite of the large organizations have fewer than 200 employees although it should be noted that many of the companies studied have 30 or fewer employees. This is noted because businesses with employees greater than an arbitrary number, say 100, may be considered by organizations with fewer employees to be large and sufficient enough in man-power to provide the resources typically associated with needs required by industry accepted SPMM.
2. SOFTWARE PROCESS MODEL AND METRICS OVERVIEW
Before delving into SPMM for small businesses, it is important to understand exactly what software process model and metrics are and why the are so important to an organization's success.
Defining Software Process Model and Metrics
Put simply software process models are structures which provide a guideline for the development of consistent and high-quality software. The models can range from one one end of the spectrum being prescriptive where an structured path is followed from inception to completion to the other end being agile methods that provide a more dynamic environment that focuses more on individuals, working software, collaboration, and response to change.
Software metrics are the quantitative measurement tools that software project managers utilize in order to learn more about how well the process model will work and areas in which they may need improve the process. When the data is compiled and checked against previous results the organization can determine how efficient and costly the new process is in addition to identifying potential problem areas before the project enters its first phases.
Importance of Software Process Model and Metrics
SPMM help remove software development chaos by allowing the organizations to stabilize, organize, and control customer communication, planning, analysis, development, and delivery of the end product. Organizations without metrics can find it difficult to evaluate their processes and compare old results against anticipated outcomes; these organizations will not be able to spot the good or bad trends and determine software process model improvement. It is vital that organizations embrace SPMM in order to avoid repeating the same (potentially very costly) mistakes and then use these results to self-evaluate and move the organization more efficiently towards a model of success.
3. REASONS FOR SMALL ORGANIZATION APPREHENSION TO ADOPT SOFTWARE PROCESS MODELS
Small software organizations may be apprehensive to adopt SPMM because of fear of the models being too costly to implement in money and manpower. It is also a general concern that the models simply aren't meant to be implemented in an organization of their size – that the models simply don't scale down. Below are common reasons why small organizations often choose to adopt non-SPMM methods.
Small organizations may first balk at the seemingly prohibitive cost of adopting SPMM. One study suggests that the cost to implement the Capability Maturity Model is between $490 and $2,004 per person with the median being $1,475 and that achieving the next level of the Capability Maturity Model can cost upward of $1,000,000. In addition, software product assessment can take between $45,000 and $100,000. Meeting the goals of some key processes can be financially taxing and it may be necessary to tailor the SPMM's key process areas.
The perception is that SPMM requires vast amounts of people who each have their own specific role in carrying out individual model component requirements. Small organizations see the adoption of SPMM as a luxury that requires many employees in order to effectively achieve the desired results and may be more inclined to hire a single professional experience in SPMM rather than train the employees from the ground up due to cost associated with training the employees and with production cycle time loss resultant in training. Training staff versus hiring new employees may seem more cost prohibitive and in either case it may not seem economically feasible.
SPMM often (or seemingly ) do not scale from the large organizations for which they were intended to small organizations who may also benefit from them. The models may require separate entities such as configuration management and software quality assurance both of which are expensive to organizations with limited resources. Small organizations simply do not have the assets necessary to fulfill such a large scale requirement.
With limited staff, small organizations feel that their time will be better served working through the projects and trying to learn from their mistakes rather than wasting valuable time with employees in training. Extraordinary amounts of time will likely need to be devoted to SPMM adoption. The initial time for training and adoption of the IDEAL model can be 2,100 person-hours and $50,000. Software process improvement is a slow course of action and just transitioning from the first level of the Capability Maturity Model to the second is shown to take between 21 and 37 months (with slight time improvement shown in transition between higher levels of the model).
Many small organizations adopt the concept of “customer rules”. They believe that adhering to a set standard lends them to being to rigid or inflexible to changing customer demand and in turn the organization may adopt the customer's own process. Some organizations even fear that SPMM adoption injects too much bureaucracy into the system. Customer satisfaction is every businesses goal and small organizations often feel that they can provide that satisfaction by providing a product modeled around the customer's own rules rather than using what they perceive to be a rigid, impersonal, and red tape laden system.
4. WHY SMALL ORGANIZATIONS SHOULD ADOPT SOFTWARE PROCESS MODELS
Despite there being the fundamental size differences between large and small organizations, it is possible for small organizations to overcome the hurdles that SPMM presents. It has been found that with proper application and adoption of a SPMM, small organizations can achieve results similar to larger organizations - as well as even surpassing the larger organization's results. Small organizations can implement software process improvement at least as well as large organizations. In fact, small organizations posses certain qualities which make them even more readily able to adopt the SPMM.
Inherent Adaptability of Small Organizations
Ease of SPMM adoption is made possible by the inherent flexibility of small organizations. A small organization may be better suited to adopt SPMM because of the relative lack of red tape and politics which is prevalent in much larger organizations. Because of the decreased obstacles and the tendency for smaller organization's rapid change adaptability, SPMM adoption is a generally easy leap to make as compared to larger organizations.
Ability to Manipulate the Models
Software startups must rapidly enter the market and while immediately adopting a mature SPMM may not be possible it's vital to adhere to some standards as soon as possible. For small organizations, formal methods should be mixed with informal practices for best results. Maturity requires repeatability and resources – some characteristics start-ups typically don't have. Being a small organization, it may be necessary to manipulate the SPMM to fit the environment and when possible it is prudent to fully adopt a mature process model. Although at first it is beneficial to simply begin with adopting a process, remaining flexible throughout the process adoption, and properly defining the process should be the ultimate goal. In addition, generalizing the development aspects, tools, protocols, etc. that may be used and determining the reuse from those experiences will help towards gaining full SPMM adoption.
Adherence to SPMM is a means of structuring a software project and clearly defining desired goals. Formalized software design and development goals allow thoroughness of action and follow-through by structuring the intentions. They are created in a manner by which the software developers can generate the necessary components efficiently as well as lessening the burden inherent in guessing. The organization is also able to keep valuable resources from having to determine the scope and intent of the project after the development phase has begun.
More Readily Predict Issues
Greatly enhanced levels of predictability can be achieved by SPMM adoption. One of the most significant benefits of adopting the SPMM is being able to gather data about the past and current projects and using that data to apply a set of metrics which allows the organization to measure weaknesses, ultimately being more readily able to predict where failures may occur. Predictability alone is an incredible asset from which a small organization can tremendously benefit.
The use of SPMM increases productivity and workflow by providing a standard by which the organization can abide. SPMM are the assembly line of the software industry – they provide the team of developers a structure by which they may efficiently and effectively deliver products. A structured environment is extremely beneficial is helping to prevent unnecessary deviation found in organizations who adhere to no SPMM.
Achieve Better Marketability and Competitiveness
Successful implementation of SPMM include relationships with larger companies with greater process maturity and also becoming a member of an organization that helps with software process improvement. Small organizations that adopt SPMM are more marketable and, from that, more competitive. Growing organizations require the operational efficiency that SPMM provides and that efficiency is seen by the market as maturity and capability. SPMM adherence is expected by other or larger entities. Organizations who place bids on contracts are given preference if they show adherence to SPMM. Adopting and adhering to a model is a way of telling potential customers that the resulting product is one worthy of emerging from the crowded marketplace.
Improve Customer Satisfaction
Of course, the penultimate goal of an organization is to remain in business, whether it be for money or altruistic purposes. The way to achieve that is through customer satisfaction and small organizations can significantly increase the level of customer satisfaction by adopting SPMM. SPMM adherence shows the customer that the organization in serious in its venture and assures the customer that the product meets quality assurance standards – all this can lead to improved customer satisfaction before they even have the final product.
5. ADOPTING THE CMMI
For large and small organizations, the Capability Maturity Model Integration (CMMI) provides a formal SPMM structure. Its use can greatly benefit the company in aforementioned aspects and improve organization software process methodology. Application of CMMI to small organizations is ideal for future success.
CMMI is a software process improvement model developed by the Carnegie Mellon Software Engineering Institute (SEI), government agencies, and a consortium of IT professionals in order to provide an adaptable SPMM. It defines different levels of structure that the adopting organization can strive to achieve. Each level defines a level of proficiency in the organization. The first level is Ad Hoc (or Chaotic) and is defined as and organizational level in which the processes are in a state of flux and maintains an unstable environment. Subsequent levels of the CMMI build upon the previous by showing that the organization is capable of delivering repeatable, defined, managed, and finally optimized products where there are deliberate and explicit methods in place for software optimization and improvement. The CMMI is adaptable to any organization regardless of size and the latest CMMI is even ambiguous enough to apply to industries outside of software. CMMI is relevant to and highly adoptable by small organizations.
Relevance to Small Organizations
SEI is constantly working on forging and improving the CMMI and have provided an end product which can be applied to any organization. This is of special benefit to small organizations due to many models being structure to meet the demands of large-scale business. It provides a means of determining project scope, scale, and manageability. CMMI for small business is a set of best practices and the organizations can use it to focus on improvements that can significantly impact revenue and other goals.
SPMM adoption may be viewed by small organizations as cost-prohibitive but the benefits outweigh the cost and generates a sleeker, more skillful, and well organized company that is able to meet challenges due to SPMM adherence that gives structure and predictability. Small organizations can get the same results as large organizations if they take advantage of their strengths: employee participation and new knowledge exploration (big organizations see more business orientation and concern for measurement).
6. ANALYSIS OF SMALL ORGANIZATION SOFTWARE PROCESS MODEL ADOPTION AND EXECUTION
Small organizations have adopted CMMI with great success despite initial perceived negative. They see organization success after applying the model and can expect to grow their business because of SPMM adoption. CMMI improves the quality of product and perception both within and from outside the organization, helping to give them essential skills and structure necessary to produce better software.
Adopting the Model
Small organizations often believe they can't afford expensive models because of perceived implementation cost while still being able to bid low on competitive contracts. They also feel that they simply do not have the manpower and resources necessary to be able to adopt SPMM but it is of utmost importance for the small organization to establish a continuous improvement activity. Re-organization, education, and new hires are all potential necessities when trying to comply with CMMI while establishing configuration and requirement procedures are priority. It seemingly is initially easy to identify technical area improvements and hard to analyze organizational improvements. Tthe organization may need to perform organizational improvements before being able to apply CMMI to software operations.
Small organization SPMM implementation strategy has higher employee involvement and flexibility that large organizations; the main difference between small and large organizations is that smaller organizations adapt to change or instability through exploration. It has been shown that small organizations can improve business by implementing SPMM elements and that size does not affect SPMM benefits. Small organization size also allows for all employees to be trained, leading to better cohesion and understanding of why the process was adopted and how it applies to software development - versus larger organization where time and money may inhibit that as well as less cohesive groups.
CMMI is a framework that other projects can adapt to, not just a one-off model, and it is enterprise-wide. Adaption of CMMI for small organizations can begin with few written policies. Moving to adopt some other models then fully adopting CMMI while achieving the target capability level within one year of beginning the model is a strategy employed by some fledgling business first entering SPMM maturity. Small organization adoption objectives can include fitting in with their current system, having little overhead, not interfering with projects and having measurable pay-offs and benefits. CMMI ultimately helps small organizations by enhancing the current system, improving communication, reducing training time, helping ensure one-time projects, and leading the company to the next-level. In order to help small organizations, individuals helping to implement CMMI need to understand that the organization typically wants a quick pay-off, there isn't much functional organization in a small business, they need to work with small business “customer” rules, the organization requires quick training, and there is a great need to eliminate intimidation.
The high cost for smaller organizations may be resolved by using less expensive pre-appraisal methods and getting volunteers within the organization to assume roles. Deployment challenges can be re-evaluating the customer rules and wanting to break away from corporate rules. Among the best reasons to deploy CMMI is to adhere to your own set of standard rules and show competency. CMMI helps company by setting strategies like responding with cost and effort analysis to customer in timely manner, requiring less software rework, and providing national recognition.
Small software organizations are in need of SPMM in order to compete with larger organizations but there is a perception in the industry that few or no models exist that a small organizations. These small organizations also fear that adoption of a model will cost them money, manpower, and time - all while interfering with their customer rules and generally believing that the SPMM is simply out of the scope of the organization's ability. They should recognize the benefit of SPMM and understand that its adoption can result in greater notoriety and revenue.
CMMI is a model that is organizational size agnostic and provides a structured framework by which the adopting organization can achieve great success in little time. SPMM adoption helps the organization by providing understanding of the overall requirements and injecting predictability into the process and they can better measure and evaluate their success and head off problems before they arise. The end result is that the organization emerges as a sleeker and far more capable organization ready to face challenges and thrust them into the global market.
I find that while many SPMM are geared towards large organizations, models – very capable and industry accepted models – do exist that small organizations may adopt with great success. It seems that the focus of many SPMM studies are based on large organizations and the resulting data is useful to only that subset of organizations in general. CMMI shows that a robust model and its end results are equally applicable to small organizations and in some cases small organizations are even more capable of adopting SPMM because of the inherent flexibility that exists due to size and the desire to grow. It is necessary for small organizations to adopt SPMM in order to be competitive in the global marketplace and because of that, it is necessary for them to be aware that adopting SPMM provides them a significant competitive edge. Initial adoption cost is relatively high, costing upwards of one million dollars to achieve each level of the CMMI, but the flexible nature of the CMMI and the vast benefits of its adoption trump fear and helps ease the cost of initial adoption. Knowledge itself of the existence of a process model that is applicable to all organizational sizes is a great step towards achieving tremendous results in this fast-paced, twenty-first century society. Further questions to be answered are how small software organizations can best adopt SPMM at a relatively low cost without neglecting critical process steps in industry accepted process models and how the software industry can wage a grassroots campaign aimed at informing small organizations of the incredible benefits of SPMM.
1.Brodman, Judith G. & Johnson, Donna L. (1994). What small business and small organizations say about the CMM: experience report. Proceedings of the 16th international conference on Software engineering, 331-340. Sorrento, Italy.
2.Cattaneo, Fabiano; Fuggetta, Alfonso; & Lavazza, Luigi. (1995). An experience in process assessment. Proceedings of the 17th international conference on Software engineering. 115-121. Seattle, Washington.
3.Dyba, Tore. (2003). Factors of software process improvement success in small and large organizations: an empirical study in the Scandinavian context. ACM SIGSOFT Software Engineering Notes. 28(5).
4.Emam, Khaled El & Birk, Andreas . (2000). Validating the ISO/IEC 15504 Measure of Software Requirements Analysis Process Capability. IEEE Transactions on Software Engineering. 26(6). 541-566.
5.Garcia, SuZ; Cepeda, Sandra; Staley, Mary Jo; & Miluk, Gene. (2005). Lessons Learned from Adopting CMMI for Small Organizations. Retrieved October 9th, 2008 from the World Wide Web: www.sei.cmu.edu/cmmi/presentations/sepg05.presentations/garcia-cepeda.pdf.
6.Garcia, SuZ. (2005). Thoughts on Applying CMMI in Small Settings. Retrieved October 9th, 2008 from the World Wide Web: www.sei.cmu.edu/cmmi/adoption/pdf/garcia-thoughts.pdf
7.Guerrero, Felipe & Eterovic, Yadran. (2004). Adopting the SW-CMM in a Small IT Organization. IEEE Software. 21(4) 29-35.
8.Herbsleb, James; Zubrow, David; Goldenson, Dennis; Hayes, Will; & Paulk, Mark. (1997). Software Quality and the Capability Maturity Model. Communications of the ACM. 40(6). 30-40.
9.Kautz, Karlheinz; Hansen, Henrik Westergaard; & Thaysen, Kim. (2000). Applying and adjusting a software process improvement model in practice: the use of the IDEAL model in a small software enterprise. Proceedings of the 22nd international conference on Software engineering. 626-633. Limerick, Ireland.
10.Pino, Francisco J.; García, Felix; & Piattini, Mario. (2008). Software process improvement in small and medium software enterprises: a systematic review. Software Quality Control. 16(2). 237-261.
11.Pressman, Roger S. (2005). Software engineering: a practitioner's approach. New York: McGraw-Hill.
12.Saiedian, Hossein & Carr, Natsu. (1997). Characterizing a software process maturity model for small organizations. ACM SIGICE Bulletin. 23(1). 2-11.
13.Software Engineering Institute. (2008). CMMI for Development. Retrieved October 10, 2008 from the World Wide Web: http://www.sei.cmu.edu/publications/documents/06.reports/06tr008.html.
14.Software Engineering Institute. (2008). The IDEAL Model. Retrieved October 10, 2008 from the World Wide Web: http://www.sei.cmu.edu/ideal/.
15.Staples, Mark; Niazi, Mahmood; Jeffery, Ross; Abrahams, Alan; Byatt, Paul; & Murphy, Russell. (2007). An exploratory study of why organizations do not adopt CMMI. Journal of Systems and Software. 80(6). 883-895.
16.Sutton, Stanley M. (2000). The Role of Process in a Software Start-up. IEEE Software. 17(4). 33-39.