如何有效地提升开发团队的技能

软件项目的成败取决于背后团队的质量。优秀的开发人员很难找到。那么,你如何让初级开发人员提升技能呢?仅仅教授如何使用框架或技术栈是不够的。好的开发人员可以遵循一种模式。优秀的开发人员知道为什么需要建立这些模式,以及如何随着项目的增长来改进项目。

许多开发者都可以从辅导中获益。是的,刚从大学或短期培训项目毕业的开发者可能需要帮助来适应实际工作中的要求,但任何加入项目但工作经验不足几年的开发者都应该考虑给予额外的支持。最适合接受辅导的开发者是那些经常需要帮助但又渴望学习的人。拥有大量初级开发者的成熟项目也应该考虑实施更广泛的培训计划,以维护项目的健康,并投资于团队的生产力。


教授技术,更要教授人生
 

虽然每个开发者和技术栈都需要进行个性化的培训,但软件工程的很大一部分依赖于更广泛的技能。理解代码在做什么对于理解技术决策背后的原因至关重要。支持这些技术技能的是团队流程和文化,这些流程和文化有助于促进良好的决策。


代码阅读
 

我们通常认为开发人员总是在不停地敲击代码。但阅读是一项基本技能。首先确保初级开发人员对团队使用的编程语言有基本的了解。包括团队常用的语法或API。例如,JavaScript语法中的解构或async await是方便的快捷方式,但可能会让人犯错。我们经常在阅读代码时做出假设,以便更快地前进,初级开发人员也是如此,但准确性较低。通过设定基本的了解,初级开发人员可以避免简单的错误并做出更好的决策。

除了语言级别的特性外,还要教授团队使用的常用API。因为如果没有实际操作练习,全面的培训实际上是没有意义的。最终,每个开发者都需要学会如何自学,因此要演示如何查找和理解文档。如果初级开发者问到你不知道的问题,要向他们展示你是如何查找答案的。培养他们对应用程序如何工作的好奇心,这将随着时间的推移带来成熟和更好的项目成果。

打破规则
 

软件开发中有很多规则。“不要重复自己”和“不要测试私有方法”之类的短语是直接的建议,有助于避免维护噩梦。初级开发人员需要学习这些建议及其存在的原因。尽管这些规则听起来黑白分明,但它们却忽视了重要的权衡取舍。两段相似的代码可能比匆忙抽象出的更难使用的代码更好,但明确这些边界很重要。

向初级开发者解释决策背后的原因以及我们所接受的权衡取舍是让他们能够在工作中发挥领导作用的关键。讨论相互竞争的考虑因素如何相互作用将帮助开发者了解如何在未来应用这种教学方法。灵活运用这种思维方式可以带来真正的创新。高级开发者可能已经形成了一些内化的模式,但由于平台级别的变化,这些模式不再适用。


流程问题
 

许多与编程无关的技能对项目的成功有着巨大的影响。诸如敏捷方法论和代码提交(PR)审查限制等结构应该支持诸如迭代想法和执行检查等目标。但是,如果对这些过程的理解不够深入,它们就会成为阻碍。如果使用得当,PR就是一个价值很高的过程。它们为直接反馈代码规范和架构决策提供了机会。PR也是一个学习其他开发人员(无论是资深还是初级)的机会,可以询问一些关于某段令人困惑的代码的功能。PR审查往往被当作一种形式主义,而实际上它们可以成为重要的沟通工具。

像Scrum回顾这样的实践活动是让初级开发人员了解和学习流程的好地方。但是,更刻意的团队期望审查将为开发人员参与其中提供更顺畅的途径。最终,拥有反馈文化是让每个人都能不断进步的关键。这还包括与设计师、业务利益相关者和其他工程团队的沟通。否则,初级开发人员将不断被障碍所阻碍。通过在入职培训中提供流程信息,其他团队成员将赋能团队而不是成为团队的负担。


辅导计划
 

运作良好的团队会有很多分享知识的接触点。但不妨有意识地增加一些更结构化的时间。如果团队没有现有的辅导计划,初级开发人员甚至可以主动发起这些会议。


大师班
 

为了建立一致的技能和期望,让所有人都在同一个房间里是很有帮助的。会议时间可能很昂贵,但每周花一小时讨论一个重要话题可以为您的初级开发人员和团队士气带来巨大的回报。这些会议可以像专家的讲座一样进行结构化,也可以开放为讨论。以下是一些建议的话题:1. 代码审查:安排一位经验丰富的开发人员进行代码审查,并讨论如何改进代码质量。2. 技术分享:让团队成员分享他们最喜欢的技术或工具,并讨论如何在项目中应用它们。3. 团队建设:讨论如何增强团队凝聚力,提高团队士气。4. 项目回顾:回顾过去一周或一个月的项目进展,讨论遇到的问题和解决方案。5. 职业发展:讨论如何提高个人技能,为职业生涯做准备。6. 行业趋势:讨论当前的行业趋势和新技术,以及如何将其应用于项目。

  • 应用程序架构

  • 可维护性代码实践

  • 提交请求的期望

  • 深入编程语言

  • 深入依赖库

  • 自动化测试方法

  • 信息安全与安全编码实践

  • 性能与可扩展性考虑

只要对话是有趣且与团队的工作相关的,就可以带来益处。这种方法中最好的一点是,它对整个团队都有帮助,而且是可选的。此外,记录讨论的内容也很有帮助,比如会议录音或与相关文档的链接,这样开发人员可以在需要时回顾这些内容。


结对编程


敏捷方法学,如极限编程,包括实践“结对编程”是有原因的。它可以实现实时反馈,提高代码质量,并有助于提升初级开发人员的水平。即使每周只进行几次、每次两小时的练习,也会产生显著的影响。现在,屏幕共享工具随处可见,因此开始通话并一起完成任务比以往任何时候都更容易。

在结对编程时,两位开发者应该轮流主持会议。这可以让资深开发者展示他们的方法,让初级开发者在练习的同时获得反馈。在整个过程中,开发者应该讨论他们的想法,包括他们正在做什么、为什么这样做以及任何潜在的问题或决策。以非评判性的方式探究其他开发者决策背后的逻辑。这是探索假设和分享经验的绝佳机会。只要初级开发者花时间解释原因,就让他们自己做决定。有时,让初级开发者对自己的工作感到有主人翁意识是有意义的,即使有时需要砍掉一条死胡同。

开发者也是人
 

必须承认,作为新手可能会令人感到害怕。对不够优秀的恐惧让许多人止步不前,这也是许多开发者在几年后退出这一领域的原因之一。寻求帮助是一项重要的技能,但也令人害怕。为了帮助初级开发者发挥潜力,我们需要对他们友善和尊重。提供你认为有用的建议,但不要居高临下,不要以为他们什么都不懂。要让人觉得容易接近,承认你过去也有过同样的恐惧。如果某人愿意学习和挑战自己,允许他们犯一些小错误可能会改变他们的发展轨迹。


结论
 

大多数软件团队都未能充分利用其最优秀的成员。成长需要时间,但对基础知识和实践培训进行一些投资,就可以让初级开发人员成为团队中非常高效的成员。不要把人扔进复杂的项目中,看他们是沉还是浮,而是要给他们工具,让他们对代码产生好奇心,理解决策背后的原因,并获得定期反馈,以便他们能够成长。知识分享可以在提交的代码(PR)、团队讨论和一对一的编程搭档练习中进行。如果以同理心和尊重的态度进行,你可能会惊讶地发现,明年是谁在提升你的团队水平。

   欢迎关注公众号:清晰编程,获取更多精彩内容

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值