想象一下,软件开发并非一名程序员在昏暗房间里独自敲击代码,而是一场宏大、高速的交响乐演奏。长期以来,人们认为最重要的事是懂得如何演奏乐器(即技术编码能力)。但本文指出,即使是最杰出的小提琴手,如果无法聆听指挥、与鼓手同步,或在乐曲中途乐谱发生变化时做出调整,也终将失败。
这项研究是对 97 项关于软件团队运作所需“软技能”(即非编码的人际能力)研究的 25 年“时间胶囊”式综述。作者审视了 2000 年至 2025 年的文献,这一时期行业正从僵化的军事式规划转向敏捷(灵活、快节奏、基于团队)方法。
以下是他们发现的简要总结:
1. 团队的“三大支柱”
如果你必须选出软件团队生存所需的三件最重要的事,本文指出它们是:
- 沟通:这是无可争议的冠军。它出现在近 90% 的研究中。它是维系团队的粘合剂,确保每个人都知道客户想要什么以及团队正在构建什么。
- 团队协作:在敏捷团队中,你不能做孤胆英雄;你必须成为队友。这是第二常见的技能。
- 领导力:但这里有个转折:领导力不仅仅属于老板。在敏捷中,人人皆领导。它关乎激励他人和做出决策,即使你不是经理。
2. “瑞士军刀”式技能
除了这三大支柱,本文还识别出 33 种不同的技能,但它们可归为两类:
- “稳定”技能:这些技能在过去 25 年中一直至关重要,且不会消失。可将它们视为房屋的基石。它们包括适应性(在市场变化时调整计划)、主动性(在被告知之前主动做事)和解决问题的能力。
- “新兴”技能:这些技能近期受到更多关注。随着世界变得更加复杂(尤其是在疫情期间),同理心(理解他人感受)、积极倾听和批判性思维等技能变得更为紧迫。
3. 谁需要什么?(角色地图)
作者不仅列出了技能,还试图厘清谁需要哪些技能。
- 开发人员(编码者):他们需要“一切”,但尤其是沟通、团队协作和适应性。他们是不断适应新需求的人。
- Scrum 主管(教练):他们是沟通枢纽。他们需要成为优秀的倾听者和调解者,以保持团队顺畅运转。
- 技术领导者:他们需要结合领导力与商业愿景,以确保代码实际上能帮助公司盈利。
- 差距:本文指出,虽然我们对开发人员和经理了解很多,但对于数据科学家或设计师等较新角色所需的特定软技能,我们知之甚少。这就像拥有一张整个城市的地图,却缺少新摩天大楼的蓝图。
4. 方法论至关重要(游戏规则)
不同的敏捷方法(团队遵循的“规则”)强调不同的技能:
- Scrum:这是最流行的方法。由于其每日会议和评审,它高度依赖沟通和社交化。
- 极限编程(XP):这种方法非常技术化(例如“结对编程”,即两人在一台电脑上编码)。它要求高水平的耐心、反馈和团队协作。
- SAFe:这是针对拥有众多团队的大型公司的方法。它侧重于知识管理(分享你所知),以确保所有人步调一致。
5. 这为何与你息息相关
本文结论指出,成为一名优秀的软件专业人士,不仅仅在于懂得如何编码,更在于成为一个能够与他人良好协作的“人”。
- 对学校而言:它们需要停止只教授代码,转而教授如何交谈、倾听以及在团队中工作。
- 对公司而言:招聘时,不要只看编码测试。要寻找那些能够适应、倾听和领导的人。
- 对研究者而言:我们需要研究如何教授这些技能,以及它们如何随着一个人在职业生涯中变得更加资深而发生变化。
简而言之:本文主张,在软件世界中,代码是引擎,但软技能是方向盘和燃料。如果没有人的因素,这辆车或许动力强劲,但无法驶向任何有用的地方。
以下是论文《超越代码,我们亦是人:敏捷开发团队中软技能 25 年文献的系统性映射》的详细技术总结。
1. 问题陈述
软件开发本质上是一项社会技术活动,其中人为因素对质量、生产力和创新具有关键影响。尽管技术精通仍然至关重要,但行业日益需要软技能(非技术能力,如沟通、适应性和团队合作)来应对持续的变化和协作需求。
尽管这些技能的重要性已得到公认,但缺乏对文献进行全面、纵向的综合分析。现有研究往往聚焦于特定情境、短期时间跨度或特定角色,未能提供自敏捷宣言问世以来 25 年间软技能如何演变的整体图景。这一空白限制了软件开发中人与技术方面的有效整合,阻碍了更优课程、招聘策略和组织实践的设计。
2. 方法论
作者遵循 Petersen 等人提出的指南,开展了一项系统性映射研究(SMS)。该研究涵盖25 年的回顾期(2000 年 1 月至 2025 年 5 月)。
- 数据来源:查询了六大主要科学数据库:ACM 数字图书馆、IEEE 数字图书馆、SBC OpenLib、ScienceDirect、Scopus 和 Springer Link。
- 搜索策略:使用PICOC(人群、干预、比较、结果、情境)框架构建搜索字符串,重点关注敏捷团队中的计算专业人员。
- 选择标准:
- 纳入:以英语、葡萄牙语或西班牙语发表的原始研究(主要研究);涉及软件开发团队/角色中的软技能;发表于 2000 年至 2025 年之间。
- 排除:次要研究(综述)、非同行评审文件、仅关注教育/学生视角的研究,以及无法获取全文的研究。
- 过程:
- 初步检索:识别出 2,083 篇文章。
- 筛选:去除重复记录(93 条)并进行标题/摘要筛选。
- 最终选择:选定 97 项主要研究进行全文分析。
- 分析:数据提取侧重于识别软技能,将其与特定角色(如开发人员、Scrum Master)关联,并映射到敏捷方法论(如 Scrum、XP)。对技能进行整合以减少冗余(例如,将相似术语归组),并按频率和时间趋势(新兴 vs. 稳定)进行分类。
3. 主要贡献
- 综合分类法:识别并分类了敏捷环境中所需的33 种不同的软技能。
- 纵向分析:提供 25 年的视角,区分稳定技能(随时间始终被引用)和新兴技能(近年来,特别是 2020 年后显示增长)。
- 特定角色映射:详细分解了哪些软技能对特定敏捷角色(如开发人员、Scrum Master、产品负责人、QA)最为关键。
- 方法论影响:分析了不同的敏捷框架(Scrum、XP、SAFe、Kanban)如何影响对特定软技能的需求。
- 实践指南:为教育工作者、行业从业者和研究人员提供了可操作的建议,以弥合技术培训与以人为本的开发之间的差距。
4. 主要结果
A. 已识别的软技能(RQ1)
对 97 项研究的分析揭示了33 种软技能。频率最高的前 22 项技能包括:
- 沟通(占研究的 89.6%):引用最多的技能,对于利益相关者对齐和需求清晰至关重要。
- 团队合作(64.9%):协作式敏捷方法的核心。
- 领导力(46.3%):通常是分布式/共享的,而非层级式的。
- 适应性(37.1%):对于应对快速的市场/技术变化至关重要。
- 主动性、动机、解决问题、组织能力、创造力、责任感、社交能力、学习意愿、信任、商业愿景、同理心、批判性思维、谈判、积极倾听、伦理、冲突管理、目标设定。
- 趋势:
- 新兴技能:沟通、适应性、解决问题、学习意愿、知识管理和批判性思维显示出持续增长,这可能由远程工作和市场波动所驱动。
- 稳定技能:团队合作、领导力、主动性和动机在整个 25 年期间一直是基本前提。
B. 按角色划分的技能(RQ2)
虽然沟通和团队合作是通用的,但特定角色具有独特的能力概况:
- 开发人员:对沟通(55 次提及)、团队合作(41 次)、领导力(26 次)和适应性(26 次)的需求很高。
- Scrum Master:高度重视沟通(28 次)、团队合作(25 次)和领导力(6 次)。
- 技术领导者:重点关注沟通(22 次)、团队合作(16 次)和领导力(16 次)。
- QA/测试分析师:高度需要解决问题(15 次)、适应性(15 次)和责任感(11 次)。
- 差距:文献很少根据资历级别(初级 vs. 高级)区分技能,大多数研究将角色视为通用类别。
C. 敏捷方法论的影响(RQ3)
- Scrum:研究最多的方法论(55 次提及)。由于其结构化的仪式(每日 Scrum、回顾会议),它加剧了对沟通、积极倾听和社交能力的需求。
- 极限编程(XP):由于结对编程等实践,强调团队合作、沟通和耐心。
- SAFe:侧重于知识管理和团队合作,以便在大型团队中整合专业知识。
- 观察:超过 40% 的分析研究未指明所使用的敏捷方法论,限制了比较分析。
5. 意义与启示
- 对教育工作者:研究结果表明,软技能不应是可选的选修课,而应作为基础能力整合到本科和研究生课程中。建议采用基于项目的学习(PBL)和敏捷模拟等教学策略。
- 对行业:组织可以利用特定角色的映射来完善招聘、选拔和绩效评估标准。培训计划应超越技术技能提升,纳入行为发展,特别是在适应性和冲突管理方面。
- 对研究人员:该研究突出了关键差距,包括缺乏关于资历级别、专业角色(如 DevOps、数据科学家)以及人工智能对软技能需求影响的研究。未来的工作应关注软技能与软件质量之间的因果关系。
结论
该论文重申,软件开发是一项以人为本的活动。虽然技术技能构建了产品,但软技能构建了团队和流程。该研究提供了一个经过验证的 25 年证据基础,表明虽然敏捷软技能的核心(沟通、团队合作)保持稳定,但格局正在演变,要求更高水平的适应性、情商和持续学习。这一系统性映射为将教育及组织战略与现代软件工程的人性现实相协调提供了至关重要的参考。
每周获取最佳 computer science 论文。
受到斯坦福、剑桥和法国科学院研究人员的信赖。
请查收邮箱确认订阅。
出了点问题,再试一次?
无垃圾邮件,随时退订。