For more than 6 years, EPAM has developed its own Java Competence Center. Initially, it started in Minsk, where the main group of experts was located. Over time, the headquarters moved to Kharkov, and the Java Competency Center scaled to the entire company. And he became at the same time a kind of virtual "fire" team.
Roman Shramkov, Director of Technology and the head of Java CC will tell you how the structure of the Center was shaped, its difficulties and achievements. It also explains why companies and IT specialists need such internal projects at all, and how to start building them.

How does it line up
The appointment of the Competence Center stems from its name - it helps to strengthen those points of the company where there is a specific need for technological expertise. For example, in certain stages of the project or a complex presale with the customer. Or if the developer took on self-upgrade and is looking for where to get the most relevant knowledge of Java. Ideally, the Center should concentrate all the best practices in its segment.
')
Java CC has been working in EPAM since 2012, and I headed it in 2014. Then we went through an organizational fork, and there was a great temptation to take such educations from tech giants as a model. In IBM and Oracle, these are certain dedicated structures that concentrate experience in a specific subject and advise clients. But information on such centers is extremely small. True, I laid some of the results of the “excavations” in the foundation. For example, these are the models of the Lightbend, Red Hat and Apache Ignite services. They accumulate practical experience and provide paid expert services.
At the same time, we tried to understand what our colleagues in the market are about. The guys from the Ukrainian IT-companies said that they have similar centers - these are mainly internal educational areas or skill matrices.
We needed to attach the project to the educational part. In particular, to gather experts who can be involved in negotiations with the client to discuss the technical part. Plus, Java covers a wide stratum with us - you cannot close it with trainings alone.
As a result, we refused from some kind of hard, and even more so tied to the location of the format. Indeed, in every point of the company's presence there are their own tasks. Therefore, in search of the desired formula, we rely on
two principles.- constantly closely communicate with other centers of competence within the company - to share valuable information and ideas on the organization;
- all the time, we are monitoring the issues of the Java direction - we are doing the sessions, discussing the challenges and looking for solutions.
We aim to concentrate outside-the-box thinking specialists around the Java Competency Center. So you have to experiment.
What it looks like
The backbone of the Center is about 30 people. These are people who are closely involved in his work. Besides them, there are 1500+ engineers who are actively involved in the technical community, and 5000+ people in general are in Java competence.
The main “nodes” of Java CC are.
- Community organization structure : community managers from HR business partners and community drivers from Java.
- Team of architects. She is attracted to customer engagement, presale and SWOT cases (projects where there is a risk of losing money or a client where you need enhanced engineering support). This part is very flexible. But inside it is a core group, 5-6 architects with a high level of expertise. We work with them all the time. The team of necessity and under the task involved architects or developers with production. And the architect from the core group becomes technical manager and supervisor for them.
- Educational group. Its members create training and mentoring programs on Java. The group is very scattered and managed by the Competence Center to a minimum. After all, training programs are formed exclusively for the tasks of a separate location. Moreover, they often allocate resources for this too. From us there is help in this, but never imposing.
If in general, then the Competence Center is a distributed group of specialists that solves complex issues in different locations. And we are not limited to any country, let alone a separate business unit.
How is work counted
One of the most difficult moments for the Center: we cannot take the best engineers completely to work with “red” cases or just for training, removing the rest of the workload from them. This will complicate control and partially tear them away from reality.
The requirement for any of our experts: about 80% of the time he must deal with real projects. Advantage - no looping on theory. The obvious disadvantage is that with such loads it is difficult to ensure an effective structure of the Competence Center. And the team, I remind you, and so distributed.
Therefore, for the time being we are building Java CC as a virtual group. People work in production, pumping expertise. We attract them to share knowledge and best practices in projects similar to those with which they have already encountered. They also help us in consulting clients, and we form recycling out of this billable. The main thing is that the entry of an expert into the case should be appropriate.
There are several models of interaction with the center of competence:
- Help at the start. The expert of the Center ensures that the new project is launched correctly, and the team quickly collected knowledge. After the processes have been settled and the team has proceeded to the smooth execution of tasks, the expert leaves the project.
- Help with advice . The expert advises the team only on certain emerging issues.
- Help on a specific task. The expert is involved in the project tightly, but only for a certain period. Separately set the criteria for exit from the project.
The motivation of contributors is an important point. Yes, it's cool to work in complex projects and additionally pump yourself. But we need material incentives. This is a cash bonus from a company for those who contribute to the Competence Center. There is a separate motivation from the Center: we give gifts to the best contributors from Java CC. And for those who help us constantly, involved in consulting, presale, “red” cases, also provides a bonus for the project and, potentially, an annual bonus from the Competence Center.
What we had and what we plan
Achievements of the Center can be divided into two types. External is, of course, a list of complex projects received, solved or extended with the participation of experts from the Center. On each case, you can write a separate story. What is important: Java CC has helped a large distributed company to form a circle of experts interested in Java competence. And without such a concentration of specialists, even if “cloudy”, nothing would have happened. These are internal positive effects.
Within the Center, several accelerators were created that help attract customers, simplify launch or ongoing development. For example, in two years our team of experts made two successful accelerators: the EPAM Delivery Platform and the EPAM Microservices Accelerator.
In addition, projects for employee training are being born: training initiatives, newsletters about Java technologies, and an update discussion group have been launched. There is a constant stream of useful information for engineers.
Continuous learning is another big task for the Center. This is the field where we are trying to aim at the future, and therefore we
constantly ask ourselves:
- How to determine what knowledge will be useful to specialists?
- What developer skills will be required by the customer?
- What tutorials need to be prepared to outpace the demand for new technologies?
- How to connect all this with the working business of the customer?
For reference, we use the skill-matrix. In it we put down the skills that we believe should be from the developer from Junior to Chief. The matrix is ​​definitely not the ultimate truth, but rather a support for developers. To the guys developing in Java, it helps to orient oneself, on learning of which it is better to focus their efforts at each level.
Based on the skill matrix, we want to establish continuous learning. The algorithm is as follows: we investigate new technologies -> they fall into the cells of the matrix -> according to the matrix an educational program is formed -> according to the program, employees study -> employees enter the project, already being guided in new technologies.
As we see the future
Although our structure is now distributed, in the future I would like to build groups of competences in different locations. But for now we are strengthening the current structure.
Java CC moves along two main vectors.
1. Development of recommendations and methodologies.So we started microservice accelerator, which I mentioned above. We predicted that microservices will become a popular topic in the next 3-5 years. We made an emphasis on this: we developed a reference architecture for large customers, studied a number of frameworks, singled out from them those that are most in demand in large enterprises with which we cooperate. And they did not lose - soon micro-service projects really took off in demand. Thanks to the accelerator, we went to meetings with large customers well-prepared and immediately with demo projects.
2. Teaching technologies that will be in demand in the near future.As an example, on the basis of the R & D laboratory, we purposefully trained a team of student interns in the microservice stack. On the project, where they were sent, the guys worked more productively than their colleagues - more experienced, but not trained in microservices.
Now we are focusing on PaaS solutions - in particular, Docker, Kubernetes, Open Shift, Cloud Foundry and the like. We think that the demand for them will soon grow. We study, we try to integrate expertise in live tasks in stages - we are preparing for the following projects of our clients.
What can we recommend
If you decide to create a center of competence, then, as at the start of anything, it is important to determine the problems and cases of the company that you entrust to it. And also to understand / think / calculate the value it can bring to you.
Let's say a group of people with a certain expertise works in your company. How can they potentially improve your business? What will this resource give you in comparison with competitors? And, of course, how much are you willing to invest in this structure: time, money, intangible rewards?
Answers to these questions will give you the basis for the first steps. And then - just act, experiment and be alert.