为什么每个初级开发人员都需要一名高级开发人员
了解什么是可维护的
帮助管理期望
了解什么是糟糕的项目
结论
高级开发人员指导初级开发人员的理念通常被认为对初级开发人员有益。然而,将高级开发人员与初级开发人员配对不仅对初级开发人员有益。实际上,对于有意将两位工程师配对的公司来说,这非常有利。
参与过多个项目的高级开发人员对如何开发可维护的系统和代码有着更深入的理解。他们能够清晰地判断哪些项目值得做,并能够帮助管理利益相关者的期望。所有这些归根结底在于,他们能够洞察全局,防止初级工程师构建过于复杂的软件,避免从事那些对公司几乎没有影响的工作。
这一切都会影响公司的底线。然而,似乎并非每家公司都这样做。我还记得我的第一份工作,当时我是团队里唯一的技术人员,却要支持五名分析师。说实话,我怀疑我开发的任何产品现在是否还能维护,因为我经常只是为了满足某些功能需求而开发,而当时没有人能提供设计、可维护性等方面的意见。(幸运的是,这种情况在我下一份工作中发生了改变。)
话虽如此,我想列举三个理由,说明初级开发人员与高级开发人员配对的重要性。再次强调,这不仅仅是为了让初级开发人员能够成长;这是为了确保正在构建的软件具有可持续性,并具备对公司有利的正确功能。
了解什么是可维护的
https://www.monkeyuser.com/2018/workaround/
您是否曾在计算机上构建过自动化流程、网站或框架?现在,您是否曾将同一个新系统部署到一个可能拥有数千甚至数百万用户的大型系统中?然后……您是否需要维护它好几年?
如果你有过这样的经历,你就会知道开发一个可持续的系统要困难得多。你必须不断做出有利有弊的设计决策。有时,由于时间或技术限制,你可能需要规避某些限制。这可能会导致你走技术捷径,并承担一些技术债务。所有这些你可能走的小捷径和你没有经过深思熟虑的糟糕设计决策,很快就会给你带来麻烦(就像 切尔诺贝利那样)。
即使做一些小事,比如将整数列更改为浮点数,也可能需要一周的时间才能找到所有字段引用、更新它们,然后运行测试。
编写可维护且可持续的代码,一切都始于良好的设计。然而,许多初级开发人员要么开始编码,要么忘记设计中的重要细节。这时,高级开发人员可以介入,帮助指导初级开发人员进行设计评审和结对编程。
资深开发人员的指导能够帮助初级开发人员洞察设计中可能存在的陷阱。他们无法发现所有问题,但可以帮助他们思考初级开发人员遗漏的极端情况。反过来,这也能帮助初级开发人员了解未来需要思考的问题。
帮助管理期望
我们很多人在大学里开发了第一个程序,通常几周就能搞定网站、应用程序和 业余项目 。然而,一旦进入行业,感觉以前几天或几周就能完成的事情突然变成了几个月。突然之间,项目管理的概念变得非常重要。
简单的变更或更新请求远不止更新代码这么简单。通常需要进行全面分析,才能了解变更可能对下游模块产生的影响。突然之间,原本快速简单的代码变更可能会耗费更长的时间,因为它可能涉及多个下游依赖项。
能够管理这些预期有助于确保开发团队不会过度承诺时间表。我记得有些项目承诺的时间表只需要几周,而实际上需要几个月。
问题是,您会遇到诸如人们去度假、妨碍的操作任务、会议和其他正常的日常功能等问题,这些问题会使看似快速的任务随着时间的推移而大大延长。
高级开发人员更习惯于这些干扰,并且能够提出更切合实际的期望。别误会,管理层可能仍然会把时间表缩短一半。但至少你尝试过了!
了解什么是糟糕的项目
https://marketoonist.com/2018/05/being-agile.html
辨别哪些项目可能不太好是一项很难掌握的技能。正因如此,当初级开发人员被要求做一些对公司影响不大甚至毫无影响的项目,或者项目规模太大而无法独自承担时,他们往往意识不到。
糟糕的项目通常并不明显。它们可能一开始只是一次性的举措,新主管觉得即使与公司当前目标不符,也能改善公司。也可能是一个炒作项目,某个销售人员去参加会议,听说了某个新的人工智能功能,就要求工程团队将其添加到他们的产品中。
无论来源如何,这些项目都会带来不必要的压力,而且通常功能对最终用户来说毫无价值。聘请一位能够识别不良项目特征并向他们解释项目为何未能有效利用时间的高级开发人员,将有助于提升公司的盈利能力。
结论
总的来说,将初级和高级开发人员配对在一起还有很多其他很好的理由。但是,作为一个曾经担任过初级开发人员,却没有高级开发人员作为指导的人,这不仅不利于我的成长,也影响了我对公司的贡献。你很难判断自己是否做出了错误的决定,因为你从未经历过这种情况。工程师需要进行大量的假设和决策,如果没有经验的指导,你很快就会陷入困境。同样,这不仅会损害初级开发人员的利益,也会损害公司的利益。
想要阅读有关编程、数据科学和机器学习的更多信息:
使用 BigQuery 分析医疗保健数据
软件工程学习指南
数据科学家的统计评论
学习数据科学:我们排名前 25 的数据科学课程
您需要观看的最佳且唯一的 Python 教程
数据科学家必须具备的 4 项技能
什么是数据科学家