尽管ChatGPT对软件开发产生了深远影响,软件开发活动仍然遵循其固有的生命周期。然而,当前常见的瀑布、迭代和敏捷三种开发模式面临着新的挑战,因为这些模式所依赖的基本假设已经发生了变化。过去的假设是许多人共同参与一个项目,需要大量时间和精力进行交流与协调。如果交流和协调不佳,软件产品可能无法满足用户需求。
在ChatGPT驱动的软件开发过程中,开发工作从人脑生成方案和代码,转向由ChatGPT按照需求的指令生成方案和代码。曾经需要大量思考和手工操作的工作现在可以由ChatGPT来承担。因此,项目组的工作效率得到了大幅度的提高,需要的开发工程师数量大幅度减少,需要人工撰写的各种技术文档也大幅度减少。但是,新的开发模式对人才素质和能力有了更高的要求。
我们把ChatGPT应用于实际的软件开发活动,在反复实践的过程中,发现了一种非常适合以ChatGPT为主要依托的研发模式。这种新的由ChatGPT驱动的软件开发模式称为水母模式。之所以选择水母来命名,是因为这种开发模式呈现出类似水母的特点,即顶部较大,底部较小。顶部较大意味着在开发过程中强调前期的需求分析和统一的架构设计;底部较小则意味着借助于ChatGPT输出的设计方案和后期生成的代码,可以大幅度地减少对开发、测试和运维工程师的依赖。多只水母触手代表了在上层用户需求分析和总体架构设计的基础上,可以并行许多不同模块的具体实施活动。例如代码调试、测试验证、应用部署和系统运维。这种模式的好处就在于可以有效地避免信息在众多项目参与者之间传递时失真或丢失,从而使软件开发能够更好地满足用户需求并缩短开发周期。
图1-8展示了水母开发模式的基本概念。图1-9展示了水母开发模式的细节。
图1-8 水母开发模式
图1-9 水母开发模式的细节
该模式把研发活动分成六个层次,这些层次的活动分别对应SDLC的分析、设计、编码、测试、部署和维护。从各个层次工作或者活动安排的数量上可以看到,相对于其他几层,分析和设计层的工作量或者活动量要大很多。
一个典型的水母开发团队包括产品经理、架构师、后端工程师、前端工程师和测试工程师共五个全职的核心人员,以及数据库管理员、项目经理、UI/UX设计师、运维工程师、性能测试工程师和信息安全工程师等非全职的辅助人员。根据目前实践情况统计,各个层级的核心人员构成情况如表1-2所示。
表1-2 水母开发模式的核心人员构成
根据对项目开发活动的测算,采用水母模式进行软件开发,需要给项目团队配备的人力资源比例大致如表1-3所示。架构师是整个开发项目的核心,在软件项目的具体实施过程中,他需要完成总体设计、技术栈选择、数据库设计、界面设计和接口设计。而负责代码调试的程序员、负责测试的测试工程师和负责应用系统部署运维的工程师可以在架构师的指导下各司其职。
表1-3 水母模式SDLC各个环节人力资源比例