我们假设未来编程人员在学习几年后就能真正达到中级工程师的水平。这不仅指开发新的基础应用,更是指真正理解多个代码库、避免代码混乱、编写可维护的代码等等能力。
即使发生这种情况,我仍相信仍然会需要开发人员来管理这些人工智能代理,制定指导方针,并在事件发生时处理它们。
而实际情况是,编写代码从来都不是我们的工作中最困难的部分:
软件工程组织的成果不仅仅是“可运行的代码”,最重要的是为客户解决问题。
而这正是我们在大学校园里从未学过的东西:
一位医生曾经告诉我,医学院没有教的最重要的东西就是医学和当医生之间的区别:
医学是一门生物科学,而成为一名医生通常是一项管理期望、了解保险制度、有效沟通等社交技能。
---引自畅销书《一如既往:永恒不变的指南》
软件开发世界也是如此。
大多数软件工程师都接受过“计算机科学”方面的培训,但成为一名优秀的工程师通常需要具备理解业务方面、设计架构、管理人们的期望以及定义正确的技术解决方案的技能。
在担任工程经理期间,我在以下三个方面都取得了很大的进步:
我们来解释项目延误的原因。
我们传达重要活动和事件。
我们了解营销和销售所关注的内容。
我们参与和客户的对话。
我们帮助制定研发路线图。
为了做好以上这些点,我们必须更好地理解业务。包括我们如何赚钱?客户关心什么?我们的产品如何营销?
这些对话在涉及任何编码之前就要发生。
一开始,你通常会从一些小而具体的任务开始。你会给他们提供大量关于系统的背景信息,慢慢地,他们就会熟悉系统,并逐渐过渡到更复杂、更模糊的工作。
我记得,每次我都想让他们做一件事,但结果却大相径庭。如果你有机会指导过一位完全新晋的工程师,你就会明白我的意思。
即使你管理中级和高级工程师,你也常常需要定义技术解决方案,或者至少帮助正确地定义它们。包括如下:
我们愿意承担哪些风险?
我们将用什么来精准测量?
我们准备达到什么规模?
我们将如何监控它?
我们应该支持哪些极端情况?
当你使用 LLM 工具编码时,这种经验将非常地宝贵。
那些主动与同事进行一对一会面,坦诚分享反馈意见并试图解决问题的工程师只占少数(至少在我的经验中是这样)。大多数人只是置之不理(这是最糟糕的情况),或者请经理处理(稍微好一点的情况)。
我们没有这种奢侈的事情。每个项目经理或工程经理都记得自己经历过一些艰难的沟通,以及不得不给出的极严厉的反馈。我们曾与难缠的利益相关者、咄咄逼人的项目经理和固执的软件工程师打过交道。
在即将到来的“代理”世界里,人际交往能力将变得更加重要。人工智能代理不会帮你解决公司的所有问题——公司永远是由一群人组成的。
而掌握这方面的能力,也就是说,成为一个能够处理好复杂人际关系、并且乐于与人共事的人,将会是你一个巨大的优势。
我给你的建议是:确保你有时间去构建产品。如果你能运用作为工程师学到的所有技能,并结合最新的编程技能,你将会炙手可热。
编译:场长
作者:安东·扎伊德斯
原文:
https://newsletter.manager.dev/p/the-best-time-to-be-an-engineering?ref=21CTO
本篇文章为 @ 场长 创作并授权 21CTO 发布,未经许可,请勿转载。
内容授权事宜请您联系 webmaster@21cto.com或关注 21CTO 公众号。
该文观点仅代表作者本人,21CTO 平台仅提供信息存储空间服务。