I’m Darek, a leader and senior RoR developer at Netguru. I joined Netguru when it had 30 members, now we’ve grown to more than 210! Recently, I’ve had a very interesting problem to solve. We wanted to have better knowledge about what skills our people have, what they want to get better at and, last but not least, improve how we assign people to projects. That’s why we introduced “Skills”, a feature in “People”, one of our open-source projects. You can try it out yourself if you want. Let me walk you through the new features!
What, why and how we do it
Some time ago, we created an open-source project called “People”, which helped us keep track of who was working on what. Because our company was rapidly growing and the number of projects we worked on was increasing, we needed to assess and track skills of our developers better in order to be able to assign them to projects based not only on their knowledge and experience but also on their interests. After discussing the issue with leaders, senior developers and talent managers, we decided to add new features to “People”. We added many facilities for tracking knowledge and people’s professional development at Netguru. Now it’s working, and it’s awesome! Thanks to this solution, we are 100% sure that we assign the right talent for our clients’ needs. Take a look at the new features below.
We’ve broken down the features by different user’s perspectives. You can explore features from different modules:
This is what Developer’s main page looks like:
This page lets users view skills grouped by categories, rate their skills, mark as favourite and add notes.
Now, developers can see clearly which skills are important for the company in different sections. They can inform other folks in what they want to get better at, leave notes, etc. It is much easier to track progress and assign people to projects.
We have improved the skill rating mechanism. Now, we have two types of ratings:
The first type applies to smaller skills, such as CoffeeScript. The ratings here are binary:
0 - I do not know the tool / methodology / language / pattern.
1 - I know the tool / methodology / language / pattern.
The other type is for more sophisticated skills, such as the proficiency in React.js. This time, the scale is from 0 to 3.
0 - I have never used it before. I don't have any experience with the tool / methodology / language / pattern. I don't feel confident enough to use it on a project.
1 - I have used it once before. I know a little bit about it. I don't feel confident enough to use it on a project. I would need to re-read the documentation.
2 - I have used it several times. I feel that my knowledge is sufficient to use it on a project (using the documentation occasionally). I understand the concept.
3 - I have worked with the tool / methodology / language / pattern many times. I'm feeling confident I can use it on a project. I would very rarely need to check something in the documentation, if at all.
We have added the option to mark a skill as favourite, which means that person who marks a given skill as favourite wants to get better at it.
From time to time, you want to add more context about what you did with respect to a skill.
For example: I was working with background jobs, but mostly with Sidekiq, DelayedJob and Cron.
Skills divided by categories
We grouped skills in categories which represent different sections at Netguru. We wanted to make it clear what we expect from members of different departments. On top of that, now everyone can check what else they can learn. Of course, it doesn’t mean that they should always stick with their main category, by no means, they can – or even should – browse through other categories to find inspirations on which new skills to develop and let other people know what more cool stuff they know.
Leaders at Netguru focus on people education, improving their skills and knowledge, and so on. Once a quarter, every employee has a face-to-face meeting where they discuss the progress they have made with a leader. Now, leaders are able to check what skills have changed for a selected member of their team within a chosen timeframe. The main page for leaders looks as follows:
Skill rating history
Skill changes are also grouped by categories. You are able to select a period for which you want to how skill ratings changed. The graph displays only things which have changed. If there have been no changes in the selected period, the graph will be empty.
Specific skill ratings
Leaders can only see the skill levels of their team’s members. Talent managers, on the other hand, have access to the skill ratings of all people in the company.
Talent manager view
Talent managers can search for users by their skills. The main page for talent managers looks identically to that of a leader (take a look at Specific skill ratings):
Users selected by skills: React Native, Ruby and Marionette.js
Other cool stuff we’ve added
Revamped system of creating new skills and editing the existing ones
We wanted to prevent the situation in which anyone could add and edit skills. We’ve introduced a new way of creating new skills and editing the existing ones. Admins, leaders and talent managers can create a request for creating a new skill or editing one that already exists. They need to leave a short explanation why they would like a skill to be changed or added. Another admin, leader or talent manager will review the request and decide whether the change should be accepted or rejected. Of course, they also need to explain why they made the decision.
Editing an existing skill
Reviewing change requests
We track all changes in skill descriptions, ratings and categories on a separate page.
You might be wondering whether we inform other people about changes. The answer is YES – we have created a system for notifying people about changes. There are two different types of notifications:
When a new skill is created: we send notifications to all users.
When an existing skill is edited: we send notifications to all users who the change will affect.
A notification that a new skill has been created
When you click on the notification, you will be redirected to a page where you will be able to see the changes and update your ratings.
Improved user profiles: displaying skills
Do you want to see all skills of a person? No problem, have a look at their profile, at the skills section. There, you will find all skills and ratings, and the information which skills they want to develop.
We’ve added one more feature, but you will not be able to see it. Whenever you need to use the skill rating information in a different application, you can fetch data from a ready-to-use API endpoint. Just specify whose skills you want to have by email or set the scope to all.
All in all, we’re proud of what we have achieved with the new changes. Now, “People” not only enables us to keep all the scheduling data in one place but also ensures that our developers do what they really want to do, which translates into even more commitment to their daily tasks.