How to measure and evaluate developer productivity

Hello, Habrovsk citizens! On this extraordinary day off of the weekend, we want to share with you an interesting article that was translated on the eve of the start of the course Team Lead 2.0.


Developers need feedback so that they can improve their skills and gain new knowledge. According to the editor of Inc. Magazine, by Jeff Hayden, traditional metrics can be deceiving because they do not always reflect a clear picture. Earlier, evaluating staff performance was a daunting task, which is why Git Analytics tools such as Waydev appeared. This tool offers a data-driven development approach to help you bring out the best in your people.

It is very important to measure the right indicators and do it correctly. In turn, the choice of indicators depends on the specifics of your business and the job responsibilities of each software engineer.

We will tell you about an algorithm that will help evaluate the effectiveness of programmers:

Goal setting

Setting organizational goals and regularly checking that all team members follow them is a top priority from the very beginning of the project. Even if your organization has outsourced software development, the development team will not be an independent organization whose sole function is to write code and test it. Integrating technical goals with common business goals is an important step on your way. The conceptualization of tasks in the early stages is the basis for evaluating the effectiveness of work in the later stages.

Each goal should fit into the main idea of ​​the business, both at the team level and at the individual level of each employee.

Foundation laying

Performance measurement comes down to two main questions – “what” and “how”. The question “what” refers to the real tasks that the team faces. It implies a certain fact and expectation. By answering the question “what” can be meant, for example, timely writing and testing of code. Here, “timeliness” is a clear fact, and the excellent quality of the code is an implicit expectation.

The question of “how” is related to the process, that is, how well the programmer worked in the team, how innovative his approach to the task was, and so on.

Assessing the fundamental “what” and “how” will give you an understanding of not only what tasks the team is working on, but also how well they perform them. Waydev provides a bird’s eye view of your workers using Work Log. It allows you to see every commit or pull request that the developer at your company made per unit of time.

Focus on the long run

When developing software, you should never focus on the quantitative component of the product being developed. Extra lines of code will make the software cumbersome and more difficult to maintain. Conversely, minimizing the number of lines of code is not a panacea: such software will be difficult to understand and scale.

The long-term result-oriented approach implies that instead of quantifying the effectiveness of the product, the product is evaluated based on the results of the team. To evaluate development processes and releases, it is necessary to analyze the stability, frequency of delivery and frequency of updates of the final product.

To assess the effectiveness of a particular team, you need to understand whether it has achieved the desired results. By focusing on this, you will not only increase the productivity of developers, but also achieve organizational goals, which means you will receive more benefits in the long run. In Waydev you can use the function Project timelineto see how the focus of work and volume change over time. Find out what developers are focused on. Is it about writing new code, refactoring old ones, or helping colleagues? See what events have affected the performance of your team so that when making subsequent decisions, you can focus on the data received.

Assessment preparation

In order for the assessment to be based on, you need to have a certain standard that you can follow when you receive it. Such a standard can serve as a job description or a proposed work plan.

Check out existing job descriptions, documents, records, emails and any other data that will allow you to make a conclusion about the effectiveness of the employee.

If you are in the team recently, talk with the team leader of the developer, his colleagues and, if possible, with the regular customers with whom he worked.

Success or failure depends not only on the person, but also on working conditions:

  • Were there any force majeure circumstances? For example, the underestimated complexity of a task or a change of priorities? Perhaps this is precisely what prevented the developer from achieving his goal and finding application for his abilities.
  • What success has the company achieved and what is the contribution of a particular software engineer? Did he use his key skills correctly?

Using Project Timeline in Waydev, you can identify the most relevant data points in your team’s workflow and have a productive discussion of what knowledge you can apply to your next sprint. Project Timeline helps you and your team quickly respond to process locks that affect the health status of your development during conversations and retrospective evaluations.

Analysis of goals and key skills

Compare current performance with desired or defined in the job description. If there are visible results, make sure that they are reflected in specific examples and determine their value:

  • Have the desired performance been achieved / exceeded?
  • Did unfavorable working conditions hinder the achievement of goals?
  • Have these goals been achieved due to the employee working overtime?
  • Was the result of the work so good that this employee should be encouraged?
  • Did this developer play a key role in achieving the goals of the entire team?

If there are no visible results, ask the following questions:

  • Did the success of the task depend on this person?
  • Was the problem caused by such reasons as the lack of necessary equipment, too large a volume of tasks, a fuzzy statement of the problem, or the absence of other necessary resources?
  • Can a more competent person solve these problems?
  • What are the consequences of not completing a task?

Determine how regularly and effectively the employee applies his key skills in his work:

  • Does the employee use these skills daily?
  • Did he use all his abilities, or only some of them? What kind?
  • How does applying skills help a developer solve work tasks? How does this affect the workflow and success of the team?
  • Was it difficult for the developer to complete the task? If so, how did this affect your goals and workflow?

If it’s hard for the developer to complete work tasks, and the goals set are not achieved, then you should think about organizing additional training or continuing education courses.

Discussion

All the conclusions that you managed to make during the analysis should be discussed with the employee himself. Focus on his successes. To convey your understanding of the situation as accurately as possible, use specific examples. Start with the positive aspects, but be sure to pay attention to the difficulties encountered. If the goal was not achieved due to a cause independent of the developer, he should in no case think that he is to blame for everything.

Be sure to ask questions and listen carefully to the answers. This will help to identify problems and understand how a person relates to them: whether he wants to solve them, what he sees out of the situation and what he would like to change.

Recommendations

Based on the information that you received during the conversation with the employee, his manager and colleagues, make a list of suggestions that could improve the productivity of the developer.

How to write comments and recommendations

For feedback, comments on the work done are needed. Based on the comments received, the engineer will be able to assess his strengths and weaknesses and direct efforts in the right direction. Remember that the comments can be judged not only about the employee, but also about the person who wrote them. They must be composed professionally and objectively.

Comments should reflect the following points:

  • To what extent has the developer completed his task?
  • How often did he demonstrate professionalism and key skills?
  • What has improved over the evaluation period?
  • What needs to be improved?

Comments should have the following properties:

  • Objectivity;
  • Completeness;
  • Truthfulness;
  • Domain specificity
  • The positive conclusion.

Aspects to Consider

Attendance

First of all, you need to understand whether the developer appears at work in general. Consider the time of arrival, departure and absence. If someone from the team comes to work late, leaves the workplace for a long time, leaves earlier than necessary, or takes sick leave without a good reason, he certainly does not seek to give all his best. Remember that poor attendance can be caused not only by commonplace laziness, but also by more serious reasons, for example, lack of motivation, health problems or emotional burnout.

Avoiding their duties at work can be a bad example for the whole team. Because of this, other developers have to take on additional responsibilities in order to somehow compensate for the absence of a colleague in the workplace. The situation is aggravated if your organization has a shortage of developers and the problem stagnates. Start practicing it as quickly as possible, because ignoring it can lead to problems in the personal life and health of your developers.

Giving help

We are all focused on helping customers, but teamwork is also very important. Konowe & Associates believes this item is one of the key performance indicators for developers: “We ask who in your department (or the company as a whole) was the most responsive and helped you more than others over the past six months? And so it turns out that this anonymous motivation of the developers allows us to identify the true fans of their field, and not just the favorites of the leadership. ”

Willingness to help others is an essential element of teamwork. Collaboration on complex tasks is much more effective than trying to turn mountains alone. Function Review collaboration allows you to understand who shares their knowledge with others. It also provides you with quantitative indicators that will help you evaluate the state of the workflow of the code review.

Planning skills

All team members must complete the work on time. They must be able to properly manage time and resources and correctly prioritize in order to carry out their work as efficiently as possible.

Pay attention to the deadlines and the quality of work that could suffer due to rush in order to meet the deadline: this will help to understand how efficiently the employee works. It is also very important to consider the amount of time spent on work: if a person is constantly processing, then it is worth talking to him about planning time.

Initiative

It’s good when colleagues are interested in whether they can help you with something. It is even better if they see the goals and take all the necessary actions to achieve them. Initiative is an indicator of involvement in work. Identifying the most active developers is important for growing companies, where new jobs are constantly appearing and human resources are quickly redistributed. For the most effective work of the new department, it will be best to equip it with the most initiative personnel. They will be able to quickly adapt to new conditions and work ahead of the curve.

To identify the most active members of your team, check the box each time a developer takes the lead in the team.

Quality

Quality of work is the most important, but at the same time, the most complex measure of effectiveness that can be measured. Engineers who work with quality and sincerely involved in the work process are likely to show better results. Such involvement can be a quality criterion.

The productivity of developers is not measured only in the quantitative characteristics of the product being developed, so the problem is not solved. Developers writing extra lines of code simply add to the complexity of the software, making it harder to maintain. You must understand what your developers are working on: quality or quantity?

Experts from the HR World website offer to evaluate the quality of the final result by the number of functions that were rejected or returned for revision. You can use this technique or choose another, more suitable for the specifics of your company.

Conclusion

Of course, evaluating performance in specific numbers is important, but Cheryl Stein, a Monster.com business trainer, advises you not to limit yourself to numbers. After all, team members are living people, not just resources. Stein notes that some qualities, for example, the ability to find an approach to any person, are now worth its weight in gold, and such skills should not be overlooked. Stein also writes about how important it is to pay attention to changes in labor productivity, as it can be a symptom of more global changes in the company.

“A decline in labor productivity may indicate market changes or unsustainable marketing strategies, ideas and values.”

When measuring effectiveness, it is important to openly engage in dialogue with the team. People need to know how you evaluate and draw conclusions. So each developer will understand their position in the team. With Waydev, you can view information about specific team members, see their progress, help them solve problems, thereby providing better vertical communication within the organization.


What are the risks of the remote work of IT departments? What approaches are needed for the team to work efficiently without the need for tracking them? Why does udalenka also need a schedule? The answers to these questions can be found in our free webinar, which will be held on May 13. Sign up for a webinar.

Similar Posts

Leave a Reply

Your email address will not be published. Required fields are marked *