Adopting new software or systems 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 in order 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, our experience is that organizations that take a systematic approach to addressing these needs gain greater return-on-investment from their investment in the practices & 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 may 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 & methods and enablement & 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 would typically include: a chairperson, the Tools Solution Architect(s), representation from the Software Engineering Process Group, and representation from the user/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 can’t 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 & maintenance, method & 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 would typically be accountable for providing the types of service listed below:
Tools Strategy
Tools Environment Administration
Process Improvement
Process & Tool Enablement
Process & Tool Mentoring
Within your organization you may have dedicated teams that are responsible for the delivery of some of these services (for example training delivery, or infrastructure and tool support). In this case the role of the CSG would be to ensure that the services provided meet the needs of the solution and its practitioners and co-ordinate 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. Their brief would be to influence and manage the way the solution is adopted locally for their area and to co-ordinate 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 inter-dependent activities. The working group would be accountable for the following:
Supporting solution design
Capability deployment & improvement
Measurement & reporting
The number of working groups will likely be specific to your organization and will depend 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 sub-groups 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 may require different tool configuration, and may have different enablement & mentoring requirements. In addition the priorities for adoption by the practitioners, the availability of champions/mentors, and the level of support and mentoring provided may also differ. The relevant local working groups would be responsible for taking these factors into account and making the appropriate local decisions.
This working group structure aims to provide a scalable & manageable framework for empowerment, flexibility, visibility, and sharing of assets and best practices, whilst 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 would be expected to manage their own backlog of work. However, in order to maximize reuse and minimize duplication of effort, this backlog should also 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 & mobilization, solution development, and initial enablement & 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 will be required to support and maintain the solution over time. The majority of these resources would be in the Common Services Group and would be providing a combination of support & maintenance and continuous improvement activities. Often the funding for these resources transfers from a ‘change-the-business’ initiative model into 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 would 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/capability area or role-set.
If you do not already have established Communities of practice, it is recommended that thought be given to their potential creation during the adoption to give further impetus to the deployment and provide opportunity for the community to share experiences and best practices.
Thought should be given to appropriate ways to establish the communities of practice 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, and outlined key organizational elements typically found within the Center of Excellence, along with their roles and responsibilities.
Status icon key: