Adopting new systems or software engineering tools and practices on a large scale is a significant technological and organizational challenge that requires an appropriate level of coordination, collaboration, and governance to be successful.
This article outlines a best-practice organizational model to ensure successful adoption, based on establishing a software engineering process center of excellence (COE).
The following is a good working definition of a center of excellence from Strickler, J. (2008):
“The Center of Excellence should, at a most basic level consist of: A team of people that promote collaboration and using best practices around a specific focus area to drive business results. This team could be staffed with full- or part-time members.
The Center of Excellence should serve five basic needs:
Where software or systems engineering is being performed on a large-scale, organizations that take a systematic approach to addressing those needs gain greater return-on-investment from their investment in the practices and tools, and are able to reap the benefits much earlier.
This article uses the term center of excellence to refer to any similar entity with the same purpose and goals. The goals of a center of excellence are to mentor project staff, provide internal training, assess innovative software engineering solutions and manage adoption and continuous improvement. Other similar concepts and terms are Center of Competency (COC) and Community of Practice (COP), and these might encompass organizational types from Software Engineering Process Groups (SEPGs), project management offices (PMOs), quality groups, architecture teams, subject matter expert (SME) groups, and deployment organizations.
The center of excellence (COE) is a centrally coordinated team consisting of a pool of skilled resources with expert knowledge around the software or systems engineering ecosystem; tool installation and configuration; usage models; practices and methods; and enablement and adoption.
The center of excellence is often organized into four main groups, as shown in Figure One:
Each group is described in detail later in this article.
Figure One: center of excellence: an operating model for successful improvement
The Executive Steering Committee (ESC) is the decision-making body and escalation route for the center of excellence. Members of the steering committee typically include: a chairperson, one or more Tools Solution Architects, representation from the Software Engineering Process Group, and representation from the user and stakeholder community.
The executive steering committee is ultimately accountable for the success of the center of excellence and is responsible for ensuring that the software engineering solutions supported by the center of excellence deliver the expected benefits to the organization as a whole.
The key responsibilities of the executive steering committee are typically to provide overall direction for the initiative and to ensure that the expected benefits are achieved; to communicate the goals and status of the change initiative to sponsors and key stakeholders; to establish and maintain appropriate governance and to act as an escalation point for decisions that cannot be made locally.
The Program Management group is responsible for the operational aspects of the center of excellence, such as:
The Common Services Group (CSG) is a team responsible for the "cross-cutting" activities undertaken within the center of excellence, such as tool support and maintenance; method and process development and improvement; and enablement planning and delivery.
Figure Two: Common Services Group Structure
The Common Services Group is often staffed by a relatively small number of dedicated resources and is supplemented by external consultants and volunteer resources from the user community, as necessary, during specific initiatives. The group is typically accountable for providing these types of services:
Tools strategy
Tools environment administration
Process improvement
Process and tool enablement
Process and tool mentoring
Within your organization, you might have dedicated teams that are responsible for the delivery of some of these services; for example, training delivery or infrastructure and tool support. In that case, the role of the CSG is to ensure that the services provided meet the needs of the solution and its practitioners and to coordinate any interaction with these teams.
Where there is a large-scale adoption effort requiring support from the center of excellence, a common pattern is to establish a series of local working groups, formed of nominated representatives from the end-user community based on their role or expertise, together with key stakeholders. They influence and manage the way the solution is adopted locally for their area and to coordinate with the other working groups.
Working groups are responsible for ensuring adoption and optimization of the solution within their area of responsibility and for coordination with other working groups around interdependent activities. The working group is accountable for these tasks:
Supporting solution design
Capability deployment and improvement
Measurement and reporting
The number of working groups is specific to your organization and depends on factors such as the structure of the organization, the number of discipline areas, the availability of resources and expertise, and the expected rate of adoption.
To illustrate this, Figure Three shows an example working group structure to support an adoption effort covering three disciplines across two business units. In this example, Business Unit Two is geo-dispersed and so has formed subgroups within each geographic location.
Figure Three: Example Working Group Structure
The two business units are both adopting the same tools and practices, but there will naturally be differences in the way the tools are used within each. Each might require different tool configurations and have different enablement and mentoring requirements. In addition, the priorities for adoption by the practitioners, the availability of champions and mentors, and the level of support and mentoring provided might also differ. The relevant local working groups are responsible for taking these factors into account and making the appropriate local decisions.
This working group structure aims to provide a scalable and manageable framework for empowerment, flexibility, visibility, and sharing of assets and best practices, while ensuring a consistent and coordinated approach across the adoption program as a whole.
Figure Four below illustrates a potential operating model for each working group.
Figure Four: Working Group Operating Model
Managing and tracking working group activities
Each working group is expected to manage their own backlog of work. However, in order to maximize reuse and minimize duplication of effort, this backlog must be visible to the other working groups. For example, it should be possible to see all Requirements Working Group activities, and all Working Group activities at a business unit level.
The staffing profile of the overall center of excellence is typically divided into two key categories: Transitional and Permanent resources.
These are resources that are temporarily assigned to the initiative in order to perform the planning and mobilization, the solution development, and the initial enablement and adoption activities. Typically, these resources are assigned specifically to an initiative design to drive the implementation of the solution, or are resources from third-parties, such as tool vendors or external consultants.
As the solution transitions into a steady state, it is expected that the number of transitional resources will reduce as resources are either no longer required or move into a business-as-usual role.
As the solution moves into a steady state, resources are required to support and maintain the solution over time. The majority of these resources are in the Common Services Group and provide a combination of support and maintenance activities and continuous improvement activities. Often, the funding for these resources transfers from a "change-the-business" initiative model to a "run-the-business" model.
A Community of Practice (CoP) is a community of individuals who share a common interest in learning from each other and sharing knowledge around a given capability area. Members of the CoP generally discuss relevant topics and issues, identify reusable assets, share best practice, define guidelines, and help each other in order to be productive in their daily activities. Communities of practice are typically formed around a given discipline or capability area or role-set.
If you do not already have a CoP, consider creating one during adoption to give further impetus to the deployment and provide opportunity for the community to share experiences and best practices.
Think about appropriate ways to establish CoPs and how to encourage participation from within the practitioner community.
This article has discussed the need for a center of excellence to support the adoption of a new tooling solution. The article outlined the key organizational elements that are typically found within a center of excellence, along with their roles and responsibilities.
Status icon key: