Chakib Jaber
Chief Technology Officer
SpinSys

Ramesh Ramaraj
Director of Engineering
SpinSys

Introduction

Spin Systems, Inc. (SpinSys) has seen significant growth over the years and recently decided to focus on taking the quality of our services to the next level. The main goal for 2017 was to establish a process that is both defined and repeatable. As part of this journey, we decided to implement both CMMI and ISO 9001. CMMI would allow us to focus on ensuring our engineering processes follow and maintain specific industry standards while ISO 9001 would focus on the quality and delivery from an organizational level. After pursuing this goal for a number of years, SpinSys recently obtained both the CMMI-DEV Level 3 and ISO 9001: 2015 certifications. As our company and customers have seen the benefits of our focus on quality and processes, we wanted to share some of our lessons learned and success factors for implementation.

Implementing any level CMMI program can be a particularly daunting task for organizations and individuals who are not familiar with the extensive practices needed to support it. CMMI is full of practices, however, these are not processes. Practices are activities that improve the processes wherever, whenever, and however they may appear in the organization. Many people look at process improvement like they do diet and exercise. Everyone wants to be fit, but few want to put in the necessary effort to get there. All process improvement  activities should be examined and understood in context to determine how they relate to the cultural system of the organization in which they will be implemented.

As a result of first traveling down the wrong path of implementation and then down the right one, we learned some key lessons and identified various success factors which we will apply as we continue on our journey of process improvement. We have summarized the 10 most important success factors from our experience below.

1. Leadership commitment and sponsorship: As SpinSys continued to grow, the leadership team recognized the key to success is to embed process improvement into our corporate culture. Creating a structured and repeatable process with continuous improvement would enable the company to provide excellent products and services to its customers. While process improvement is not feasible without investing time, money, and effort, the leadership team identified process improvement as a strategic objective for the organization and began implementation as if it were it’s own project. Timesheet codes were created to track all the activities related to the project. Process improvement requires modifications of day-to-day habits for both management and staff and changing habits often causes resistance of individuals or groups. The necessary investment of time and money and the need to overcome staff resistance are potential impediments to software process improvement initiatives. These obstacles cannot be overcome without management support. The right culture and leadership will cause the organization’s behaviors to align well with CMMI goals.

2. Staff Involvement and commitment: Changing practices is one thing but changing minds can be a bigger challenge.  Staff participation is essential to improvement activities since employees must adopt process innovations in their day-to-day activities. If staff members do not commit to the proposed changes the improvement initiative will inevitably fail to succeed. Ideally, improvement activities should be promoted from within the team as activities promoted by a group external to those involved in the process are usually not well accepted. Staff members must be involved in the improvement initiative as they have detailed knowledge and first hand experience of strengths and weaknesses of the current processes. It’s paramount that staff members understand process improvement efforts enhance and support their daily work and should not be viewed as a separate activity.  To facilitate this, we formed a engineering process team consisting of senior staff members who were passionate about the success of the organization and have the deepest engineering knowledge.


A poor choice of consultants can be very costly


3. Right consultants: A poor choice of consultants can be very costly, have long term effects on the viability of the program and adversely affect the credibility of the leadership in the organization. In selecting a consultant, understand that experience is perhaps the single most important characteristic. Look for someone who understands the work your organization does or understands the business, someone who balances process improvement and model compliance and someone who will provide guidelines on how to evaluate your process effectively. Past performance and experience in multiple contexts can help increase your confidence that a consultant can assist in implementing an effective solution for your situation. A consultant who understands the organizational context can provide guidance in areas where the organization doesn’t have expertise and can help the program stay on track. Choose a consultant who will coach rather than prescribe.

4. Technology: Any discussion on process improvement would invariably emphasize on the importance of addressing the people, process and technology. Continuous process improvement is about making changes to business process not necessarily technology. Technology changes is just an enabler to that allows the process improvement to occur but it is not a prerequisite. The last time when we failed, we built a product in-house to enable the process improvements but it added tremendous overhead to maintain the process improvement changes. The process is the way that work is actually being performed on today’s projects. It is nothing more or less than the day-to-day activities carried out by the developers, testers, project managers and so on as they do their jobs. The process documentation is the infrastructure being provided to the projects to help them perform their work in a consistent manner.     The organization should not abandon everything that they are currently doing to implement some goofy model just because they are achieve some Maturity model. Rather they should determine how best to integrate some of the models’ more value-added practices into their existing processes and process documentation to enhance project performance. Use simple tools like Word, Excel to enable the process change quickly in the organization’s projects and it is less costly when there is a need for process change. Leverage existing infrastructure and tools to kick start the process. Remember CMMI specifies the “What” and not on “How to do it”

5. Process document repository:  No other tool has contributed more to our CMMI effort than our central online document / knowledge repository. We satisfied an amazing number of practices in several process areas simply by having a secure version and access controlled repository to store and baseline company and process assets. It would have been difficult, if not impossible, to adequately account for and audit our assets without it. We created guidelines, templates, checklists document to help and initiate process requirements to all relevant members of the organization.We made sure all the project team members can pull information from one location to know about process requirements and store objective evidence needed for CMMI practices.

6. Set Relevant, Realistic, Measurable goals: Setting relevant objectives means that the improvement efforts attempt to contribute to the success of the organization. Setting realistic objectives means that the goals may be achieved in the   foreseeable future and with a reasonable amount of resources. Setting relevant and realistic objectives contributes to the clarity of expectations, the degree to which the expected results are shared across all levels of the organization. This helps to direct the efforts towards common objectives, to focus energy, and to motivate people in the projects.

7. Communication:  Most of employees have demanding customer deliverables and all work extremely hard to add value to the company. Demanding that already busy employees drop whatever they’re doing to meet CMMI requirements they may not understand or appreciate is not necessarily the most effective or productive way to achieve buy-in.  It was important that we respect our employees’ time and effort by ensuring that each of them knew what CMMI is, why it’s important to the company, and how the effort will benefit both them and the company before asking for their buy-in.

8. Develop iteratively: Following an iterative transition process— making small changes on a continual basis— is a logical way to adopt a development process that is itself iterative. Doing so will be much more likely to result in a successful and sustainable transition.  We used a simple excel sheet to manage the prioritized list of capabilities to be developed, work to be performed, issues to be addressed within the organization as part of our process improvement effort. Tweaking the process documents should also be expected as the project team members become accustomed to the new changes and begin to suggest improvements in usability.  We created an email address to accept process improvement requests from the project teams. Improvements to the organizational processes and assets are obtained from various sources, including but not limited to:·     

  • Measurement and analysis of existing processes
  • Lessons learned
  • Results from the internal process compliance audits
  • Practitioner /Subject Matter Expert Recommendations
  • Industry standards and best practices The software engineering process team met weekly discussed the upcoming process improvements for deployment.

9. Internal Audits.:  Regular internal audits ensures process compliances across the projects. We assembled an internal quality assurance team responsible for conducting the process compliance checks for the projects. We picked candidates from developers, testers, business analysts, system administrators, project managers who has a strong interest in helping the organization meet its quality objectives.To ensure objectivity, each person is assigned to a project other than the one they work on. This team is the hub of two way communication between process and projects. They conducted internal audits using pre designed checklists at frequent intervals and provided the insights from the projects to provide improvement opportunities and also reported the process compliance rating to the senior management. Even though the project’s initial rating percent was way below, it helped the projects to learn and adjust quickly.

10. Provide coaching and Training:Our ability to be successful with CMMI started with an educational process.  We initiated our transformation by setting a goal to conduct instructor-led classes oriented at creating a willingness to try CMMI  practices and its core principles.This was important for getting everyone on the same page, for sharing the vision, and for about CMMI that needed to be addressed in order for team  to more willingly embrace the concepts of CMMI. We conducted practice-specific training at different times and increased our intensity to give a deeper sense of cmmi. We provided opportunities for the project team members to share information and problems. We conducted mock interview sessions with the practitioners to improve their understanding of CMMI terminology.

After we switched to the right track for our process improvement journey using CMMI we have had an enjoyable trip and are looking forward to traveling to the next destination. CMMI practices are for- not to define your work, but to refine it. This is a great opportunity to encourage continuous thinking in the organization.

Good luck on your CMMI journey.