Qodana logo

Qodana

The code quality platform for teams

Articles Best Practices Insights Interviews JetBrains Opinion Tips & Tricks

Code Quality: Leadership Strategies for Finding and Supporting Quality-Focused Developers

Today we’re joined by Educator, Entrepreneur, and European Team Lead (Orange Cyber Defence NL) Herman Du Preez, who offers insights into finding and supporting quality-focused developers. In this first installment of our new Qodana Leadership Series, we deep dive into the nuances of sourcing and nurturing developer talent in your team, especially if code quality is one of your main drivers. Let’s get started! 

Why is prioritizing code quality so important?

Building successful software products starts with getting the right team on board, but as any technical recruiter or team lead will tell you, this is often easier said than done. One of the greatest challenges leaders face is balancing culture, competency, and potential in order to grow teams that prioritize code and product quality as daily mantra – from the bottom up. 

Code quality standards are vital in business, as they enhance reliability and reduce errors and crashes for a better user experience. They facilitate easier updates and maintenance, improving team efficiency. This also allows for scaling business growth and, despite the upfront time investment, proves cost-efficient in the long run by reducing post-deployment hiccups. 

Well-structured code promotes better team collaboration. Therefore, maintaining code quality is a key strategy impacting product stability, team productivity, and overall business success.

In fact, the cost of poor code quality can be measured. According to Forbes, “poor software” cost the U.S. economy $2.08 trillion in 2020 alone. So how do we find quality focused developers?

Putting the right team together

A person who is underperforming or not a fit is a failure on my part. I chose them, I interviewed them, and I hired them. And in a worst case scenario, firing an underperformer can take a lot of time and effort” says Herman Du Preez, when asked about what he looks for in new team candidates. 

“So when I’m recruiting for my team, I’m looking for that fire. The people you want at your side need to share a passion for the thing you’re trying to do, whether they’re trying to configure a new tool, learn a new (coding) language, or brute force a bank’s VPN endpoint.

“The reality of IT is that you can’t compete against the person who’s been up at night working on what they’re interested in, who lives and breathes solving problems, or who finds creative executions. I look for the people who are constantly thinking about the problems they couldn’t solve.” 

Du Preez’s sentiment seems to be echoed in results from the 2022 Stack Overflow Developer Survey, which show that more than 63% of employed developers and managers spend over 30 minutes a day searching for answers and solutions to problems.

But aside from “fire”, more specifically defined as drive, interest, and obsession, what other qualities can indicate compatibility with a quality-focused team? Attention to detail, a desire for continuous improvement, motivation, and familiarity with quality assurance frameworks could all suggest a candidate is a good fit.  

From 2022 Stack Overflow Developer Survey

Creating a culture of quality

While attracting quality-focused developers is an important factor in itself, leaders can also foster a culture of quality in the team. Building this culture is a strategic move that can accelerate project completion and improve the end product. But what does this look like in practice?

1. Setting clear quality standards: Leaders can establish clear, easy-to-understand standards for code quality that align with both the team’s capacity and the project’s goals. This can include detailing expected methods, defining naming conventions, emphasizing comment etiquette, and much more. It can also be a democratic process, taking into account the opinions and desires of the team. 

2. Leading by example: Leaders should embody the qualities they want to see. They can do this by diving into code reviews themselves, giving thorough feedback, and “walking the talk”. As renowned business educator Marshall Goldsmith once famously said: “One of the most important things a leader can do is to lead by example. If you want everyone else to be passionate, committed, motivated, and dedicated – you go first.”  

3. Encouraging peer reviews: Implementing and encouraging code review as a regular part of the development process enhances its importance in the team’s mind. This can lead to better knowledge sharing and a collaborative environment while improving overall code quality.

“​​In a group of 11 programs developed by the same group of people, the first 5 were developed without reviews. The remaining 6 were developed with reviews. After all the programs were released to production, the first 5 had an average of 4.5 errors per 100 lines of code. The 6 that had been inspected had an average of only 0.82 errors per 100. Reviews cut the errors by over 80 percent.” – Steve McConall, CodeComplete

4. Empowering education: High-quality training and resources can enhance your team’s knowledge of good programming habits and refactoring techniques, and the effective use of testing frameworks can support a team mentality that prioritizes quality. This training could be in the form of workshops, online courses, or knowledge-sharing sessions. 

“In a previous role in a small company, we would hire people only to find they had learned bad habits and didn’t follow methodologies properly. So we hired fresh out of university and trained them ourselves over 4 to 6 months to get them started,” says Du Preez. 

Code quality focused teams

5. Utilizing quality assurance tools: Encourage the use of static analysis tools, linters, or advanced integrated development environments (IDEs) that spot and highlight issues in the code. Coupled with continuous integration tools, these can flag potential issues quickly. For example, in an empirical study on the effectiveness of static C code analyzers for vulnerability detection, 77% of open-source projects (from a sample of 168,214) used code analyzers to detect vulnerabilities, which makes sense given that C and C++ are among the languages that are at the root of most vulnerabilities.  

6. Rewarding quality: Incorporate recognition or incentives for creating high-quality code. This could be in team meetings, via emails, or in performance reviews. By highlighting success stories within the team, others may be motivated to follow suit.

7. Making quality a part of regular discussions: Regularly emphasize the importance of quality in meetings, reviews, and team check-ins. Also, constructively address issues or bottlenecks challenging the team’s ability to produce high-quality code. 

8. Promoting a psychologically safe environment: Encourage an environment where it’s safe to admit mistakes and learn from them. This can help you catch and rectify code issues earlier, and it reinforces a quality-first mindset.

Du Preez’s take on this? “You’re allowed to make every mistake once. In fact, I encourage you to get out there and speed that process up. My career is a stack of failures propping up some successes and it’s working. Sometimes we are so focused on the impact of the mistake that we lose the opportunity.” 

When asked about practical ways to create safety, he added that “anonymous questions should be in place for learning, etc. It’s easy to implement with forms, and participants should be able to check the source code and see that it’s really anonymous.”

9. Balancing quality and speed: Make sure that while striving for high-quality code, developers aren’t burdened with unrealistic expectations around speed. Overworking can lead to more errors in code, which defeats the purpose of a quality-first approach.

By incorporating these strategies, team leaders can foster a robust code quality culture, leading to better products and a more cohesive, empowered team. But what happens when this doesn’t work out?

Defining and identifying performance challenges

Robust analysis of your codebase can help you identify potential problems like code smells, security vulnerabilities, duplications, and discrepancies with coding standards. By reviewing these insights, you can pinpoint areas where your developers might be struggling. 

You can also use tools to suggest solutions for the issues it identifies, allowing “underperforming” or inexperienced developers to learn and improve over time. This creates a learning opportunity that doesn’t require you to be actively involved at every step. You can focus on other leadership tasks like relationship building. 

Over and above this, detailed objective reports can help you track progress over time. By evaluating these reports, you can identify worrying patterns or failures to adhere to coding standards. This can help you spot underperformance or organizational challenges early.

Remember, it’s important to use the insights from tools like Qodana as a basis for supportive discussions with your developers about opportunities for improvement and growth, rather than as a punitive measure. A feel of continuous learning and improvement can greatly boost a team’s performance.

Balancing business needs with soft skills and the developer experience

It’s no secret that strong communication skills, the ability to problem solve, and a good level of emotional intelligence will take you far as a leader. But the will to delegate, resolve conflict, and mentor effectively are equally as important. 

“Don’t forget encouragement,” says Du Preez.It’s a simple thing but I’ve seen people take ideas they never would have tried and run with them because they were encouraged to do so. Now its conference talks and new service lines as a result. What the average person often needs is someone to look at their work and encourage them to take action.”

Final words

One of the ways we can define a quality focused leader is by their flexibility and desire to navigate change. According to Du Preez, “it’s okay to try new things, and if it fails, fall back. But a bad leader gets locked into the rigidity of what a service looks like so they’re killing ideas.” 

You don’t have to do it alone – Meet Qodana for code quality

Find advocates in your team who want to support the goal of increasing product quality and code excellence. Get business buy-in by communicating the importance of product quality. Use tools that fit your business use case to help reduce errors, establish quality gates, and support learning. 

Qodana can be integrated into your team’s CI/CD pipeline so that code quality checks become a routine part of your development process. This ongoing oversight can help you catch performance issues in real time, improve education, and cultivate a culture of code quality within your team. 

Try Qodana

If you’d like to contact him, you can get in touch on LinkedIn or leave a comment below.

image description