1.5 AI时代的软件项目管理

1.5.1 AI时代的软件工程

AI正在颠覆一切,软件工程也不例外。生成式人工智能(AIGC)在编码、设计、测试和DevOps方面的最新成果令人印象深刻。在智能化时代,项目管理也随着发生了变化,借助AI技术,软件项目实施流程得以精简,甚至实现了端到端的一站式软件项目流程,因此软件项目管理过程也需要精简。

AIGC是人工智能的一个分支,专注于创建和生成新的内容,如图像、文本、音频甚至视频,这些内容很难与人类生成的内容区分开来。最近,由于大型语言模型(LLM)的进步,以及OpenAI、Stable Diffusion和其他大厂的产品的发布,AIGC备受关注。虽然很难量化AIGC的准确传播范围,但可以肯定的是,研究人员、开发人员和软件从业人员正在积极探索和利用AIGC的各种功能,如图像和文本生成、音乐和声音合成、视频生成、虚拟人物和数字人创建以及数据增强。软件工程是AI革命的一部分,而AIGC可以使软件开发生命周期(SDLC)的各个阶段得到显著改善。

由于软件具有天然的数字化特性,软件工程尤其适合借助AIGC的力量。具体的工程任务,如数值分析和数据工程、文档编制、编码和质量控制,在某种程度上可能是重复性的,因此,非常适合由训练有素的AI模型提供帮助。其次,复杂的算法代码结构适合由AI助手生成。此外,软件开发人员面临的许多挑战可能已经解决。因此,对于训练有素的AI模型来说,代码模块已经可用,生成整个函数或类也就变得可行了。AIGC是加速软件开发的有力工具。对于依赖于创建、维护或销售软件的公司来说,使用正确的AIGC工具可以提高开发人员的效率、创造超越竞争对手的机会。企业可以通过多种方式利用AIGC工具,包括开发人员的优化和培训、为关键工程任务启用AIGC工具等。

众所周知,AI具有为技术组织增值的巨大潜力,例如AI能直接为以下软件工程活动提供帮助。

• 需求开发方面:可以帮助我们更准确地理解和记录需求,协助起草和完善用户故事或用例。

• 设计方面:可用于生成设计建议或对问题进行创意性的解决方案头脑风暴,协助起草设计文档或架构图。

• 编码方面:提供代码片段、建议或帮助开发人员了解复杂的编程概念,生成伪代码或解释代码逻辑。

• 代码生成:GitHub Copilot、CodeWhisperer、CodeArts Snap等AI工具可以根据简单的文本提示生成整个代码。但使用代码生成的功能还是需要谨慎,因为该工具只是提供了模板代码,没有达到预期效果。不能盲目相信生成的代码,开发人员仍处于主导地位。检查代码的准确性、完整性和错误对于AI驱动的开发人员工作流程至关重要。

• 代码解释:作为开发人员,我们有时会加入一个项目或继承复杂的应用程序代码。我们可能需要花好几天的时间才能理解项目的结构和代码的工作原理,尤其是在文档很少的情况下。在这种情况下,ChatGPT可以帮助开发人员解释代码,帮助开发人员减少阅读、理解和解释现有应用程序代码所需的时间,并进一步帮助开发人员加快入职或在新代码库中提高工作效率。

• 集成方面:解决合并代码或在整合软件各部分时出现的问题。

• 测试方面:根据需求和设计生成测试场景、边缘案例或测试脚本。协助分析测试结果,识别缺陷并提出可能的解决方案。

总之,AIGC的出现为技术团队提供了提高效率的工具和技术。团队可以创建更好的软件产品,缩短开发生命周期,并对新原型进行市场测试,从而接触到更多客户,提高团队效率。

1.5.2 智能化时代的软件项目管理

随着人工智能技术的不断发展,软件项目管理领域也在逐渐借助AI技术来提升效率、质量和创新力。在传统的软件项目管理中,项目计划、资源分配、进度跟踪等环节通常由项目经理和团队成员手动完成,存在一定的主观性和复杂性。AI驱动的软件项目模型引入了机器学习、自然语言处理、数据分析等技术,通过对历史项目数据的学习和对实时数据的分析,提供更智能的、预测性的项目管理决策支持。

2023年年底,PMI通过对“AI正在对项目管理产生的影响”进行调查,发现21%的受访者提到他们正在使用AI,82%的高层领导认为AI会对项目产生一定的影响,91%的受访者认为AI会对行业产生一定的影响。

智能化时代对软件项目开发和软件项目管理都带来了深刻的影响,我们要透过现象看本质,面向未来,洞察趋势,看到软件研发的范式(开发软件的本质)正在朝着一个新的方向迈进。

简单来说,AI对于软件项目管理的影响如下。

• 降本增效:通过精简流程、节省人力资源,AI可以有效降低组织运营的成本。AI和GAI可以自动化和优化许多烦琐和重复的任务,从而减少人工干预和人为错误,提高工作效率和生产力。项目人员还可以用其书写基础代码、基础文档等。

• 理解用户需求:AI和GAI还可以提供更准确、更及时和更个性化的数据和见解,从而帮助员工更好地理解和满足客户需求,提高客户满意度和忠诚度。

• 项目决策能力提升:AI和GAI的数据处理能力无疑大大降低了数字化转型的难度和门槛。通过大数据分析、模型建模、情景模拟等方式,AI和GAI能够更有效地发现项目隐藏的问题和规律,提供新视角,辅助人类进行更科学、更高效的决策。

• 重塑组织结构:由于AI和GAI工具的使用,某些分工和角色将不再存在,或者不再重要。同样,新的角色分工会涌现出来,由此会带来工作流程的调整和组织的重组,除了重组之外,组织的结构也会变得更加扁平。

• 新的工作方式和文化:AI和GAI可以改变项目的工作方式和文化,例如更加注重数据驱动决策、更加注重创新。由于开发人员的知识技能水平显著提升,迭代速度将显著加快、组织结构将更加扁平化等,可以预见的是,组织的敏捷程度会大大提升,敏捷文化会得到加强。

软件项目管理者需要重新构建软件项目管理战略。

• 重新定位AI。AI在项目中的辅助角色可以变为重要角色,在需求、设计、评审和重构代码过程中承担工作。

• 构建或者使用软件项目管理大模型的能力。优先引入/开发LLM编程/测试助手,其次,引入/开发LLM BA/Ops助手,再引入/开发LLM调度/任务管理工具,最终形成基于LLM的工程平台。从头开始训练一个自定义模型的难度比较高,微调一个基础模型的难度适中,通过进一步的专有或特定领域数据的额外训练来更新预训练模型的权重。使用预先训练好的模型并检索相关背景,通过收集数据将其转化为嵌入并存储在一个矢量数据库中,当查询发生时,搜索这些嵌入数据以获得相关的背景,并将其提供给模型。这种做法难度最低,当然,直接使用第三方的LLM API没有难度,但有安全风险。

• 团队组织与流程优化。人始终是决定性因素,需要高度重视组织重构和人才培养。

〇 组织需要优化,团队规模应缩小。

〇 组织可分解为更多、更小的特战队。

〇 多数角色都在,但低层次的工作岗位基本可以取消。

〇 招聘一些高端的AI专业人才。

1.5.3 智能化软件项目管理

智能化软件项目管理,即AI驱动下的软件项目管理,旨在通过智能化、自动化的手段提升项目管理的水平,使团队更好地适应快速变化的市场和技术环境。这一发展方向将为软件项目的成功交付和持续优化带来新的可能。新型的项目管理模型中,AI系统可以自动分析项目需求,优化资源分配,识别潜在的风险和瓶颈,并提供实时的数据洞察。通过深度学习算法,系统能够根据项目历史数据和实际执行情况不断优化自身的预测和决策能力,使项目管理更加精准和高效。

人工智能在项目管理方面具有以下优势。

• 效率和速度是第一位的:人工智能通过自动化日常工作来提高生产力,在生成报告、安排会议和发送后续电子邮件方面更快、更准确。

• 风险管理:生成式人工智能可以快速列出人员正在工作的环境中的潜在风险,可以分析历史项目数据并预测由于某些因素而导致工期延误或成本超支,项目经理可以提前干预。

• 辅助决策:可以通过分析超大量数据来提供建议,例如项目的优先级排序。

PMI的报告中显示,AI在成本进度估算、成本效益分析、大规模数据集分析、风险分析等方面有一定的智能辅助作用,在项目决策、项目业务案例创建等方面有一定的智能增强作用,在会议记录与总结、经验学习与总结、报告撰写等方面有一定的自动化辅助作用。报告中提到:2023年,46%的公司已经采用AI进行内部沟通,53%的公司用AI改善生产流程,51%的公司用AI进行流程自动化改进。

总之,在AI时代下的项目管理可以实现以下功能:

• 项目数据收集与分析的自动化和智能化。

• 基于数据和客观事实的范围、时间进度、成本、质量的评估和预测。

• 学习与利用项目流程、知识智能化、团队协同智能化、实现人机对话。

• 项目风险的智能化预测与管理。

• 项目智能化决策支持。