{"id":496512,"date":"2024-07-31T14:25:35","date_gmt":"2024-07-31T13:25:35","guid":{"rendered":"https:\/\/blog.jetbrains.com\/?post_type=qodana&#038;p=496512"},"modified":"2025-10-28T15:33:12","modified_gmt":"2025-10-28T14:33:12","slug":"leadership-code-quality","status":"publish","type":"qodana","link":"https:\/\/blog.jetbrains.com\/ru\/qodana\/2024\/07\/leadership-code-quality","title":{"rendered":"Code Quality: Leadership Strategies for Finding and Supporting Quality-Focused Developers"},"content":{"rendered":"\n<figure class=\"wp-block-image size-full\"><img decoding=\"async\" loading=\"lazy\" width=\"1200\" height=\"630\" src=\"https:\/\/blog.jetbrains.com\/wp-content\/uploads\/2024\/07\/qd-social-facebook_1200x630_en.png\" alt=\"\" class=\"wp-image-497892\"\/><\/figure>\n\n\n\n<div class=\"wp-block-rank-math-toc-block\" id=\"rank-math-toc\"><h2>Table of Contents<\/h2><nav><ul><li class=\"\"><a href=\"#why-is-prioritizing-code-quality-so-important\">Why is prioritizing code quality so important?<\/a><ul><li class=\"\"><a href=\"#putting-the-right-team-together\">Putting the right team together<\/a><\/li><li class=\"\"><a href=\"#creating-a-culture-of-quality\">Creating a culture of quality<\/a><\/li><li class=\"\"><a href=\"#defining-and-identifying-performance-challenges\">Defining and identifying performance challenges<\/a><\/li><li class=\"\"><a href=\"#balancing-business-needs-with-soft-skills-and-the-developer-experience\">Balancing business needs with soft skills and the developer experience<\/a><\/li><li class=\"\"><a href=\"#final-words\">Final words<\/a><\/li><\/ul><\/li><li class=\"\"><a href=\"#you-dont-have-to-do-it-alone-meet-qodana-for-code-quality\">You don\u2019t have to do it alone &#8211; Meet Qodana for code quality<\/a><\/li><li class=\"\"><a href=\"#liked-what-you-read\">Liked what you read? <\/a><\/li><\/ul><\/nav><\/div>\n\n\n\n<p>Today we\u2019re joined by Educator, Entrepreneur, and European Team Lead (<a href=\"https:\/\/www.orangecyberdefense.com\/nl\/\" target=\"_blank\" rel=\"noopener\">Orange Cyber Defence NL<\/a>) <a href=\"https:\/\/www.linkedin.com\/in\/herman-du-preez-4260b865\/\" target=\"_blank\" rel=\"noopener\">Herman Du Preez<\/a>, 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\u2019s get started!&nbsp;<\/p>\n\n\n\n<h2 class=\"wp-block-heading\" id=\"why-is-prioritizing-code-quality-so-important\"><strong>Why is prioritizing code quality so important?<\/strong><\/h2>\n\n\n\n<p>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 \u2013 from the bottom up.&nbsp;<\/p>\n\n\n\n<p><a href=\"https:\/\/www.jetbrains.com\/qodana\/features\/\" target=\"_blank\" rel=\"noopener\">Code quality standards<\/a> 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.&nbsp;<\/p>\n\n\n\n<p>Well-structured code promotes better team collaboration. Therefore, maintaining code quality is a key strategy impacting product stability, team productivity, and overall business success.<\/p>\n\n\n\n<p>In fact, the cost of poor code quality can be measured. According to <a href=\"https:\/\/www.forbes.com\/sites\/forbestechcouncil\/2023\/12\/26\/costly-code-the-price-of-software-errors\/#:~:text=The%20Costs%20Of%20Bugs,make%20to%20fix%20the%20bugs.\" target=\"_blank\" rel=\"noopener\">Forbes<\/a>, \u201cpoor software\u201d cost the U.S. economy $2.08 trillion in 2020 alone. So how do we find quality focused developers?<\/p>\n\n\n\n<p align=\"center\"><a class=\"jb-download-button\" title=\"Try Qodana\" href=\"https:\/\/www.jetbrains.com\/pages\/qodana-use-cases\/static-code-analysis-for-teams\/\" data-mce-selected=\"inline-boundary\" target=\"_blank\" rel=\"noopener\"><i class=\"download-icon\"><\/i>Qodana For Teams<\/a><\/p>\n\n\n\n<!--more-->\n\n\n\n<h3 class=\"wp-block-heading\" id=\"putting-the-right-team-together\"><strong>Putting the right team together<\/strong><\/h3>\n\n\n\n<p><strong>\u201c<\/strong>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\u201d says Herman Du Preez, when asked about what he looks for in new team candidates.&nbsp;<\/p>\n\n\n\n<p>\u201cSo when I\u2019m recruiting for my team, I\u2019m looking for that fire. The people you want at your side need to share a passion for the thing you\u2019re trying to do, whether they&#8217;re trying to configure a new tool, learn a new (coding) language, or brute force a bank\u2019s VPN endpoint.<\/p>\n\n\n\n<figure class=\"wp-block-image size-full\"><img decoding=\"async\" loading=\"lazy\" width=\"6016\" height=\"4016\" src=\"https:\/\/blog.jetbrains.com\/wp-content\/uploads\/2024\/07\/dsc_3565_52344580551_o.jpg\" alt=\"\" class=\"wp-image-496831\"\/><\/figure>\n\n\n\n<p>\u201cThe reality of IT is that you can\u2019t compete against the person who\u2019s been up at night working on what they\u2019re 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\u2019t solve.\u201d&nbsp;<\/p>\n\n\n\n<p>Du Preez\u2019s sentiment seems to be echoed in results from the 2022 Stack Overflow <a href=\"https:\/\/stackoverflow.blog\/2022\/06\/22\/asked-and-answered-the-results-for-the-2022-developer-survey-are-here\/\" target=\"_blank\" rel=\"noopener\">Developer Survey<\/a>, which show that more than 63% of employed developers and managers spend over 30 minutes a day searching for answers and solutions to problems. <\/p>\n\n\n\n<p>But aside from \u201cfire\u201d, 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.&nbsp;&nbsp;<\/p>\n\n\n\n<figure class=\"wp-block-image size-full\"><img decoding=\"async\" loading=\"lazy\" width=\"1200\" height=\"539\" src=\"https:\/\/blog.jetbrains.com\/wp-content\/uploads\/2024\/07\/solutions.webp\" alt=\"\" class=\"wp-image-496921\"\/><figcaption class=\"wp-element-caption\">From 2022 Stack Overflow Developer Survey<\/figcaption><\/figure>\n\n\n\n<h3 class=\"wp-block-heading\" id=\"creating-a-culture-of-quality\"><strong>Creating a culture of quality<\/strong><\/h3>\n\n\n\n<p>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?<\/p>\n\n\n\n<p><strong>1. Setting clear quality standards: <\/strong>Leaders can establish clear, easy-to-understand standards for code quality that align with both the team&#8217;s capacity and the project&#8217;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.&nbsp;<\/p>\n\n\n\n<p><strong>2. Leading by example: <\/strong>Leaders should embody the qualities they want to see. They can do this by diving into code reviews themselves, giving thorough feedback, and \u201cwalking the talk\u201d. As renowned business educator Marshall Goldsmith once famously said: \u201cOne 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 \u2013 you go first.\u201d <strong>&nbsp;<\/strong><\/p>\n\n\n\n<p><strong>3.<\/strong><strong> Encouraging peer reviews: <\/strong>Implementing and encouraging code review as a regular part of the development process enhances its importance in the team&#8217;s mind. This can lead to better knowledge sharing and a collaborative environment while improving overall code quality.<\/p>\n\n\n\n<p>\u201c\u200b\u200bIn 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.\u201d \u2013 Steve McConall, <a href=\"https:\/\/www.amazon.com\/exec\/obidos\/ASIN\/0735619670\/codihorr-20\" target=\"_blank\" rel=\"noopener\"><em>CodeComplete<\/em><\/a><\/p>\n\n\n\n<p><strong>4. Empowering education: <\/strong>High-quality training and resources can enhance your team&#8217;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.&nbsp;<\/p>\n\n\n\n<p>\u201cIn a previous role in a small company, we would hire people only to find they had learned bad habits and didn\u2019t follow methodologies properly. So we hired fresh out of university and trained them ourselves over 4 to 6 months to get them started,\u201d says Du Preez.&nbsp;<\/p>\n\n\n\n<figure class=\"wp-block-image size-full\"><img decoding=\"async\" loading=\"lazy\" width=\"3936\" height=\"2624\" src=\"https:\/\/blog.jetbrains.com\/wp-content\/uploads\/2024\/07\/dsc_3589_52343623377_o.jpg\" alt=\"Code quality focused teams\" class=\"wp-image-496853\"\/><\/figure>\n\n\n\n<p><strong>5. Utilizing quality assurance tools:<\/strong> 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 <a href=\"https:\/\/mediatum.ub.tum.de\/doc\/1659728\/1659728.pdf\" target=\"_blank\" rel=\"noopener\">the effectiveness of static C code analyzers for vulnerability detection<\/a>, 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.&nbsp;&nbsp;<\/p>\n\n\n\n<p><strong>6. Rewarding quality: <\/strong>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.<\/p>\n\n\n\n<p><strong>7. Making quality a part of regular discussions: <\/strong>Regularly emphasize the importance of quality in meetings, reviews, and team check-ins. Also, constructively address issues or bottlenecks challenging the team&#8217;s ability to produce high-quality code.&nbsp;<\/p>\n\n\n\n<p><strong>8. Promoting a psychologically safe environment: <\/strong>Encourage an environment where it&#8217;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.<\/p>\n\n\n\n<p>Du Preez\u2019s take on this? \u201cYou\u2019re 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\u2019s working. Sometimes we are so focused on the impact of the mistake that we lose the opportunity.\u201d&nbsp;<\/p>\n\n\n\n<p>When asked about practical ways to create safety, he added that \u201canonymous questions should be in place for learning, etc. It\u2019s easy to implement with forms, and participants should be able to check the source code and see that it&#8217;s really anonymous.&#8221;<\/p>\n\n\n\n<figure class=\"wp-block-image size-full is-resized\"><img decoding=\"async\" loading=\"lazy\" width=\"1080\" height=\"1350\" src=\"https:\/\/blog.jetbrains.com\/wp-content\/uploads\/2024\/08\/file.jpg\" alt=\"\" class=\"wp-image-499076\" style=\"aspect-ratio:0.8;width:534px;height:auto\"\/><\/figure>\n\n\n\n<p><strong>9. Balancing quality and speed: <\/strong>Make sure that while striving for high-quality code, developers aren&#8217;t burdened with unrealistic expectations around speed. Overworking can lead to more errors in code, which defeats the purpose of a quality-first approach.<\/p>\n\n\n\n<p>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\u2019t work out?<\/p>\n\n\n\n<h3 class=\"wp-block-heading\" id=\"defining-and-identifying-performance-challenges\"><strong>Defining and identifying performance challenges<\/strong><\/h3>\n\n\n\n<p>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.&nbsp;<\/p>\n\n\n\n<p>You can also use tools to suggest solutions for the issues it identifies, allowing \u201cunderperforming\u201d or inexperienced developers to learn and improve over time. This creates a learning opportunity that doesn\u2019t require you to be actively involved at every step. You can focus on other leadership tasks like relationship building.&nbsp;<\/p>\n\n\n\n<p>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.<\/p>\n\n\n\n<p>Remember, it&#8217;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&#8217;s performance.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\" id=\"balancing-business-needs-with-soft-skills-and-the-developer-experience\"><strong>Balancing business needs with soft skills and the developer experience<\/strong><\/h3>\n\n\n\n<p>It\u2019s 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.&nbsp;<\/p>\n\n\n\n<p>\u201cDon\u2019t forget encouragement,\u201d says Du Preez.<strong> \u201c<\/strong>It\u2019s a simple thing but I\u2019ve 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.\u201d<\/p>\n\n\n\n<h3 class=\"wp-block-heading\" id=\"final-words\"><strong>Final words<\/strong><\/h3>\n\n\n\n<p>One of the ways we can define a quality focused leader is by their flexibility and desire to navigate change. According to Du Preez, \u201cit\u2019s 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\u2019re killing ideas.\u201d&nbsp;<\/p>\n\n\n\n<h2 class=\"wp-block-heading\" id=\"you-dont-have-to-do-it-alone-meet-qodana-for-code-quality\"><strong>You don\u2019t have to do it alone<\/strong> &#8211; Meet Qodana for code quality<\/h2>\n\n\n\n<p>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.&nbsp;<\/p>\n\n\n\n<p><a href=\"http:\/\/www.jetbrains.com\/qodana\" target=\"_blank\" rel=\"noopener\">Qodana<\/a> can be integrated into your team&#8217;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.&nbsp;<\/p>\n\n\n\n<figure class=\"wp-block-image size-full\"><img decoding=\"async\" loading=\"lazy\" width=\"2400\" height=\"1350\" src=\"https:\/\/blog.jetbrains.com\/wp-content\/uploads\/2024\/07\/Project-sunburst-1.png\" alt=\"\" class=\"wp-image-497938\"\/><\/figure>\n\n\n\n<p align=\"center\"><a class=\"jb-download-button\" title=\"Try Qodana\" href=\"https:\/\/www.jetbrains.com\/qodana\/\" data-mce-selected=\"inline-boundary\" target=\"_blank\" rel=\"noopener\"><i class=\"download-icon\"><\/i>Try Qodana<\/a><\/p>\n\n\n\n<p>If you\u2019d like to contact him, you can <a href=\"https:\/\/www.linkedin.com\/in\/herman-du-preez-4260b865\/\" target=\"_blank\" rel=\"noopener\">get in touch on LinkedIn<\/a> or leave a comment below. <\/p>\n\n\n\n<h2 class=\"wp-block-heading\" id=\"liked-what-you-read\">Liked what you read? <\/h2>\n\n\n\n<p>Keep going and learn how Kotlin&#8217;s Nikolay and Simon handle conflict around code quality tools <a href=\"https:\/\/blog.jetbrains.com\/qodana\/2025\/02\/managing-conflict\/\">here<\/a>. <\/p>\n\n\n\n<p><\/p>\n","protected":false},"author":1438,"featured_media":497915,"comment_status":"closed","ping_status":"closed","template":"","categories":[8269,8860],"tags":[228,8828,6470,416,288],"cross-post-tag":[],"acf":[],"_links":{"self":[{"href":"https:\/\/blog.jetbrains.com\/ru\/wp-json\/wp\/v2\/qodana\/496512"}],"collection":[{"href":"https:\/\/blog.jetbrains.com\/ru\/wp-json\/wp\/v2\/qodana"}],"about":[{"href":"https:\/\/blog.jetbrains.com\/ru\/wp-json\/wp\/v2\/types\/qodana"}],"author":[{"embeddable":true,"href":"https:\/\/blog.jetbrains.com\/ru\/wp-json\/wp\/v2\/users\/1438"}],"replies":[{"embeddable":true,"href":"https:\/\/blog.jetbrains.com\/ru\/wp-json\/wp\/v2\/comments?post=496512"}],"version-history":[{"count":9,"href":"https:\/\/blog.jetbrains.com\/ru\/wp-json\/wp\/v2\/qodana\/496512\/revisions"}],"predecessor-version":[{"id":653644,"href":"https:\/\/blog.jetbrains.com\/ru\/wp-json\/wp\/v2\/qodana\/496512\/revisions\/653644"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/blog.jetbrains.com\/ru\/wp-json\/wp\/v2\/media\/497915"}],"wp:attachment":[{"href":"https:\/\/blog.jetbrains.com\/ru\/wp-json\/wp\/v2\/media?parent=496512"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/blog.jetbrains.com\/ru\/wp-json\/wp\/v2\/categories?post=496512"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/blog.jetbrains.com\/ru\/wp-json\/wp\/v2\/tags?post=496512"},{"taxonomy":"cross-post-tag","embeddable":true,"href":"https:\/\/blog.jetbrains.com\/ru\/wp-json\/wp\/v2\/cross-post-tag?post=496512"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}