Let’s say you need the most energy efficient refrigerator. You go to an electronics store. You explore the brands recommended by your friends and the brands rated high in various customer reviews. Still at the back of your mind you know there’s one thing you need to look for that will certify the energy efficiency of the product – the Energy Star rating.
You know that the Energy Star rating is an international standard for energy efficient consumer products, and it guarantees the performance it promises to deliver.
Similarly, in software product development, businesses should look for service providers who integrate international standards and quality management practices, like CMMI and ISO, into their software development process.
Compliance to these standards, while developing a software product, ensures that the final product will meet the high standards set by the respective certifying bodies.
Need for Standards and Processes in Software Development
While we step ahead in the digital age, we realize that software, computers, smartphones, and apps have taken control of our key everyday activities that have become crucial part of our lives. In fact, if we say that we are getting increasingly dependent on technology, it won’t be an overstatement.
As a consequence, consumer expectations have increased manifold, pushing technology vendors to develop highly innovative and practical applications. Also, businesses are having a hard time finding a right outsourcing partner who can meet their business goals and develop high quality software products, within allocated budget and timelines.
Resultantly, software development processes are getting more complex and challenging, and the key development issues such as poor quality, budget overruns, functionality gaps, and abandoned projects are getting increasingly difficult to cope with.
Now, the two big questions that need to be answered are:
- How can businesses make sure that their outsourcing partner is highly capable of meeting their business and functional requirements? and
- How can solution providers ensure that they meet the high quality standards expected in a typical outsourcing engagement model?
Of course there are the usual word of mouth recommendations, but many IT projects now are so complex that businesses need to be assured that their service provider is more than capable of delivering the desired results, and are able to work effectively as per your guidelines and deadlines.
The solution lies in the understanding that the quality of any software product is closely linked to the overall software development process, and that successful quality management must be ingrained in the entire process, rather than in the final product alone.
However, it’s not possible to create an all-embracing quality management system (QMS) without following a universally acceptable standard or model. Hence, the key to insure software quality is to adopt Software Process Improvement models that focus on improving the overall software processes.
ISO 9000 and CMMI – The International Standards in Quality and Process Management
ISO 9000 series of standards, developed by the International Organization for Standardization (ISO), and CMMI, developed by the Software Engineering Institute (SEI), address the common concerns of quality and process management.
Although both these standards are driven by similar issues and are intuitively correlated, they differ in their underlying philosophies:
- ISO 9001 identifies the minimal requirements for a QMS, while
- CMMI underlines the need for continual process improvement
ISO 9000 family is a set of internationally recognized standards on quality management. The standards are intended “to provide a generic core of quality system standards applicable to broad range of industry and economic sectors”. The foremost objective of quality management is “to improve the systems and processes so that continual improvement of quality can be achieved”.
The following diagram illustrates the process oriented framework of ISO 9001 QMS:
So basically, ISO 9000 is majorly focused on:
- Customer orientation
- Empowerment of employees
- Participative management
- Data-based decisions
- Continual improvement
- “Process” orientation
- Quantitative tools for process improvement
Capability Maturity Model Integration (CMMI)
CMMI provides a framework that describes the key elements of an effective software process, which support the measurement of the software process. It describes a process maturity framework of five maturity levels (initial, managed, defined, quantitatively and optimizing level). These levels are defined in the following illustration:
- Initial: The software process is characterized as ad hoc, and occasionally even chaotic. Few processes are defined, and success depends on individual effort and heroics.
- Repeatable: Basic project management processes are established to track cost, schedule, and functionality. The necessary process discipline is in place to repeat earlier successes on projects with similar applications.
- Defined: The software process for both management and engineering activities is documented, standardized, and integrated into a standard software process for the organization. All projects use an approved, tailored version of the organization’s standard software process for developing and maintaining software.
- Managed: Detailed measures of the software process and product quality are collected. Both the software process and products are quantitatively understood and controlled.
- Optimized: Continuous process improvement is enabled by quantitative feedback from the process and from piloting innovative ideas and technologies.
The SEI continues to encourage the adoption of CMMI models as the best process improvement models available for service and product development and maintenance.
How Software Process Improvement Models Add Value to Offshore Software Development
The globalization of IT has fueled offshore software development growth. The primary driving force behind offshore development is cost. However, increased competition, shrinking IT budgets, and high quality benchmarks have shifted the focus on the overall quality of software development process.
As the software development industry has evolved, so has the processes and quality improvement models and methodologies. Let’s see how these process improvement models enhance offshore software development, and help businesses derive desired results from software outsourcing.
The software and quality process improvement models like CMMI and ISO 9000 add following value to a typical software development process:
- Assessment of software processes of an organization
- Identification of key practices required to increase the maturity of software development processes
- Documentation of requirements to lead to greater understanding and consistency
- Documentation of “How” code is written for software to deliver an understanding of value
- Stress on the understanding of business models and project management
- Describe good management and engineering practices as structured by the maturity framework
- Support organizations to improve their processes
In addition, these process improvement models provide:
- A formal methodology with a roadmap toward the development of high quality software products
- Receptiveness of fundamental and innovative alternatives
- Conceptualization and creation of software tools that are harmonized with the methodology
- A flexible support environment
- Widely acceptable, extensive training and knowledge sharing opportunities in software development to generate a pool of highly skilled software engineers
Therefore, when you choose to entrust your IT requirements, development and software to an offshore development agency, looking for adherence to these standards should be high on your list of requirements.
The Takeaway – A Successful Software Product that benefits Businesses, Customers, and Service Providers
A company’s adherence to industry quality standards, such as the ISO 9001 and Capability Maturity Model Integration (CMMI), are not just ticks in all the right boxes, they impart real application and knowledge that is designed to bring value. CMMI and ISO 9001 are different yet highly complementary to one another, so having both qualifications ensures a seamless delivery.
For some, ISO 9001, CMMI and other such qualifications that are focused on processes slow down the delivery of the results yet if you are cutting corners you can waste far more time than you actually save.
Technology follows certain formulas to reach pre-conceived outcomes. ISO 9001 and CMMI are set standards that require a company to follow these best practices that avoid wasted time and resources and speed up the rate of return on investment.
If you connect these best practices around a common approach (governance in action) and allow strategic alignment between IT and business, software development projects go smoothly and become more cost effective.
The bottom line is that these software process improvement models enhance software process capabilities and quality, which form the basic ingredient to develop a successful software product.