Center of Competence Pattern

In the center of competence pattern, a team of experts is charged with defining patterns, establishing best practices, developing support tools, and providing education for a subset of the architecture. The center of competence (CoC) is not expected to build and deliver this part of the system but rather help other teams excel in their day-to-day development work. CoC teams can be organized around technologies, use cases, patterns, and high-risk areas.

Creating a CoC will make it easier for development teams to implement patterns and technologies we want in the architecture. Since the CoC is a support group, its primary goal is to increase development speed and improve the overall quality of the software system.

Category

Allocation

Elements

CoC Team—group of developers and architects.

Responsibility Area—subset of the architecture. Can be a pattern, technology, or use case.

Relations

Responsible for—connects a CoC team with their responsibility areas.

Rules for Use

Typically a CoC is responsible for only one type of technology or use case.

Strengths

Promotes reusability and scalability of experts. Greater access to experts and reusable assets can positively influence many quality attributes, including security, scalability, performance, reliability, and maintainability.

Weaknesses

Centers of competence create pockets of expert knowledge, which can be easily disrupted by turnover. Weak CoCs can create confusion and slow down development.

Here is an example of how one company, consisting of a few hundred developers, organized center of competence teams.

CoC Team

Responsibility Area

Job Scheduling Use Case

Develop a framework for the job scheduling use case and create tools so teams can instantiate the framework on clusters themselves.

Performance

Consult with teams about load and performance testing, provide tools for testing and data collection, collect and organize data sets and other testing assets.

Database Technologies

Consult with teams to select supported database technologies appropriate to use case, maintain tools for provisioning databases, create or distribute training materials.

Core Platform

Maintain common container management system, provide supported Docker base images, create tools for day-to-day tasks such as log aggregation and health checks.

..................Content has been hidden....................

You can't read the all page of ebook, please click here login for view all page.
Reset
3.148.105.87