标签: 软件开发 2026-02-06 次
随着人工智能兴起,科技行业格局正在变化,software developer和架构师的技能要求也随之改变。协作、韧性和同理心等soft skills,对就业和职业发展的作用正变得与技术技能同等重要——尤其是在当今混合办公模式普及、行业竞争日益激烈的背景下。培养这些关键能力,能帮助software developer应对不断变化的期望与标准,在充满不确定性的时期也能取得成功。
不过,与硬技能不同,soft skills很难在简历、面试或绩效评估中被量化。尽管个人成长没有明确的“终点定义”,但以具体实用的方法培养soft skills,既能提升软件项目中的表现,也能为职业生涯保驾护航。

早期程序员通常只用一种编程语言(比如COBOL或Fortran),且整个职业生涯只效力一家雇主。就在几年前,程序员还普遍以自己的首选语言自居。
如今,程序员更可能需要频繁切换编程语言,甚至更快地更新代码库,以适应现代软件架构的需求。就像他们开发的应用程序一样,程序员也需要灵活性——既能驾驭多种语言和系统组件,又能满足业务需求。
灵活的developer就是有resilience in software development的developer。花时间学习新技术、紧跟行业趋势,能帮你为未来做好准备(那时职位期望可能变化,工作机会也可能变少)。一套动态更新的技能组合,能帮你减轻这些压力。
虽然在快节奏、高要求的环境中很难挤出时间,但别让眼前事务的牵绊影响了你的长远规划。以下是一些保持信息灵通的方法:
•每周投入两个半小时学习新技术。若觉得时间太多,可拆成小块任务,比如每天读一两篇文章。
•订阅行业通讯,或为与你日常职责和未来职业抱负相关的特定主题、工具或职位列表设置谷歌提醒。有没有你非常敬重的软件工程师、思想领袖或公司?把他们加入通知列表。
•条件允许的话,考虑线上或线下参加网络研讨会和行业会议。这些活动是发现新想法、技术和方法的好途径,还能让你与同行建立联系。
职业生涯初期,我曾和直属经理、一位高管开会,当时我坚信一个项目至少要三个月。结果走出来时,我却承诺一个月完成,完全不知道协议是怎么达成的。
在软件开发中,最大、最持久的谈判领域往往涉及时间安排。其他谈判领域可能包括使用哪种编程语言、支持的平台和版本号、工作时长以及远程工作比例。然而,太常见的情况是:技术人员以为自己在做时间估算,实际上却是在进行时间谈判。
程序员向来以说不准事情要多久而出名,但组织需要根据预测来制定计划。把工作拆成小块,衡量特定时间段内完成的内容,就能预测功能何时能做完。
清晰诚实的effective communication in software development对富有成效的谈判至关重要,这需要聚焦解决方案的倾听——理解对方的期望,以及这些期望如何融入整体业务目标。预测则需要团队对能否兑现这些期望保持透明。
多写作能提升沟通能力。清晰表达、完善并有序组织想法的能力,能让反复协商更有效。把每次互动都当作强化沟通能力的机会。以下是几个入门建议:
•在邮件或非正式的Teams、Slack消息中,练习直接明了的表达。
•做好详细的记录和书面文档。这些文件能当有用的预测工具,还能用实际数据支撑谈判。
•为个人博客或公司通讯撰稿。
•主动提出帮同事评审工作。
•在领英分享想法和评论,这可能带来更多与同行、招聘者建立联系的机会。
我曾在一个压力巨大的IT部门工作过。部门主管要求我们少花钱多办事,还要想办法缩短项目周期。职场可能是压力大的地方,但与同事建立情谊能缓解压力,同时促进团队参与和对项目成果的投入。
可以说,同理心是维系团队的粘合剂,能增进成员间的感情。在软件行业,践行同理心最简单的方法是:提要求或给建议前,先理解同事或客户的视角。这个策略对打造有同理心的平台也有用——通过设想和预判用户需求,做出更有吸引力的产品。
想要培养同事关系,重要的是平衡线下、远程和混合办公的现实情况。团队可以发挥创意建立联系,营造更协作的氛围,比如采用以下策略:
•安排每周线上或线下的固定办公时间,让大家随时过来提问、讨论手头工作。
•举办季度团建活动,交替进行提供专题建议或工作技巧的分享会,以及团队问答、编程马拉松等轻松活动。
•设立专用的MicrosoftTeams或Slack频道,用来庆祝成功,也能当绩效评估的有用日志。
•主动承担小组项目,或指导职业生涯初期的开发者。
•加入甚至发起员工资源小组(ERG),结识其他团队同事,探讨可持续发展和多元公平包容(DEI)等重要议题和倡议。
真诚尝试理解不同视角,能促进协作、激发创新。建立以同理心为基础的关系,还有个额外好处:当你项目卡壳或换工作需要推荐信时,有人可求助。
大多数开发者都熟悉脑筋急转弯,比如电灯开关谜题或狼、羊、白菜过河问题。这些曾是常见的程序员面试题,因为它们要么迫使人们建立有“正确答案”的数学模型,要么激发“顿悟”时刻。但很多软件问题(比如如何实现高可用性,或“多高的可用性才算够”),关键不在于找正确答案或灵光一现,而在于做有效的权衡。
软件开发的核心就是权衡。开发者和架构师通常用不同方法和工具,也能达成相似结果。要培养解决问题的能力,试试以下方法:
•就项目征求建设性反馈。
•和团队成员讨论想法,征求他们处理类似情况的意见。
•记住:失败是宝贵经验——从过去错误中学习,能为未来努力提供借鉴。
创造性解决问题需要多种技能结合:韧性、好奇心(continuous learning for developers)、沟通、谈判和协作。创新常来自即兴发挥。很多架构决策需要当场决断,但学会共同工作、解决问题、取得成功的团队,能做出更好的选择。