Posted in

代码质量:支持开发者的领导力策略_AI阅读总结 — 包阅AI

包阅导读总结

1. 关键词:领导力、代码质量、开发者、团队文化、绩效挑战

2. 总结:本文探讨了支持注重质量的开发者的领导策略,包括代码质量的重要性、组建合适团队的方法、创建质量文化的策略、定义和识别绩效挑战,以及平衡业务需求与软技能和开发者体验,强调持续学习和改进对团队的积极作用。

3. 主要内容:

– 代码质量的重要性

– 影响产品可靠性、用户体验、团队效率和业务成本

– 组建合适的团队

– 寻找有热情、驱动力和解决问题思维的开发者

– 关注细节、追求进步等特质的人员更适配

– 创建质量文化

– 设定明确质量标准

– 领导以身作则

– 鼓励同行评审

– 提供教育培训

– 利用质量保证工具

– 奖励高质量成果

– 纳入日常讨论

– 营造安全环境

– 平衡质量与速度

– 定义和识别绩效挑战

– 分析代码库以发现问题

– 利用工具提供解决方案

– 借助详细报告跟踪进展

– 平衡业务需求与软技能和开发者体验

– 注重沟通、解决问题和情商等能力

– 鼓励和指导开发者

思维导图:

文章地址:https://blog.jetbrains.com/qodana/2024/07/leadership-code-quality/

文章来源:blog.jetbrains.com

作者:Kerry Beetge

发布时间:2024/7/31 13:25

语言:英文

总字数:1782字

预计阅读时间:8分钟

评分:91分

标签:代码质量,领导力策略,开发者体验,团队文化,质量保证工具


以下为原文内容

本内容来源于用户推荐转载,旨在分享知识与观点,如有侵权请联系删除 联系邮箱 media@ilingban.com

ArticlesBest PracticesInsightsInterviewsJetBrainsOpinionTips & 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.

Subscribe to Qodana Blog updates