先快速回顾一下前面9篇文章:
1. SE3.0价值观
价值观体现在:软件工程3.0宣言 之中,在SE3.0,我们更关注人机交互智能、数据、模型和提出好的问题。有了自然语言对话方式的交流,人机交互更方便,而且大模型(LLM)也开始理解我们所处的物理世界,人机交互智能的威力巨大无比。
2. SE3.0开发范式
过去一年,SE3.0开发范式讨论最多,大家都熟悉了,即“模型驱动研发、模型驱动运维”。为什么不提“AI赋能软件研发” 或 “模型赋能研发”呢?因为AI赋能研发,几十年前就发生了,虽然那时AI能力还比较弱或很弱,但已经实实在在在赋能开发、测试等。今天不一样,也就是从过去“软件研发+AI”向“AI+软件研发”转变,即过去AI只是辅助工具或手段,提升一点效率或质量,不改变研发的流程、组织等,一切照旧,但今天AI不再是一种辅助工具,而是成为一种核心力量,会改变流程、改变组织结构等,进入一个崭新的时代。虽然目前你还没看到这样的结果,是因为SE3.0目前处在早期,但每天发生的事情、出现的变化可以让我们感受到这点。
之前,我曾提到每一个研发人员都有一个AI助手,包括BA助手、设计助手、编程助手(Copilot)、测试助手、运维助手等,但今天来看,不一定是助手,还要看研发人员的能力水平,而且不一定是一对一的关系,可以是一对多的关系,一个超级个体可以拥有多个AI智能体(比用助手更恰当一些)。
如果研发人员能力很强,AI智能体是研发人员的助手,而且他可以拥有扮演不同角色(如架构师、测试工程师、开发工程师等)的多个智能体;
如果研发人员能力中等,和AI智能体构成伙伴关系,可以一起进行结对设计、结对编程、结对测试等;
如果研发人员能力水平比较低的话,AI智能体倒是人类工程师的师傅、教练或顾问,指导人类工程师干活。
3. SE3.0开发原则
现在基于SE3.0价值观和开发范式,总结出一些开发原则感觉不够靠谱,开发原则最好是在实践中不断探索、总结出的。但是我们可以抛砖引玉,激发大家去思考和总结,基于自己的经验总结出来的原则分享出来。
尽早尽快地把LLM和AI工具用起来,实践出真知;
充分重视数据的价值,从数据内容和格式的定义开始,全面做好数据采集、管理、治理等工作;
提示工程是软件工程中新出现的一项工程,要加强这方面的建设,用好提示词,善于引导大模型;
不是抛弃软件工程1.0和2.0,而是将SE3.0构建在其基础之上,也意味着过去的工程能力、平台工程等都能助力企业的AI能力;
可以从自然语言直接到代码,但设计依旧需要,架构更重要;
从需求、设计、编程、测试到运维,全生命周期都可以借助大模型来驱动,以提升软件研发的效率和质量;
持续提升算法和模型的能力和性能,持续优化所消耗的算力;
有必要持续重构组织和流程。
4. SE3.0流程再造
说到流程,我想起了自己去年在AiDD峰会深圳站致辞中开头的一页slide:LLM加速了价值创造过程,之前从数据到智能,需要经过信息转化、知识转化,再到洞察,才能到智能(智慧),今天简单了,借助LLM直接从数据到智能,也就是前面提到,我们可以直接从业务需求到代码,中间省略了设计。
传统(SE1.0)的流程,按部就班执行,从需求分析、设计、编程、测试到交付,一个一个环节进行,每一个环节不可少。到了SE2.0,敏捷的流程就相对灵活,从需求到交付,中间会经过一个持续设计、持续构建、持续集成、持续测试、持续部署等一个持续的、融合的过程。
在SE3.0,这种持续和融合会更加凸显出来,特别是当超级个体出现、多个智能体能够很好协同工作的时候,设计、构建、集成、验证等工作的边界更加模糊,流程更加高度自动化。过去,我们常常也提自动化,如测试自动化,其实不能说自动化,只能说半自动化或测试执行自动化,甚至连测试执行都不够自动化。未来在大模型和平台工程双层能力加持下,从需求到验证可以实现真正的自动化,如验收标准生成、测试用例生成、测试脚本生成等等,才真正做到自动化测试。
认知、协作发生革命性变化,从问题到答案的最短路径会不断被缩短、被加速。
5. SE3.0组织
这可以参考:软件工程3.0实践之路(九):LLM驱动组织变革,正如前面所说,超级个体会出现,研发团队规模会更小,更关注人机交互智能的充分发挥,将人也视为智能体,构建虚拟团队,形成多智能体的协同工作,完成软件研发任务。
6. 落地实践
落地实践,参考前面9篇文章,从指令微调、上下文学习、RAG技术应用、提示工程、智能体构建、AI/LLM平台构建等来逐步完善LLM落地实施,从需求分析与定义、架构设计和UI设计、编程、测试、运维等全生命周期的各个环节落地。每个公司结合自己的实际情况,考虑到人才、数据、算力等条件,选择合适的应用策略,设计自己的落地路线图,逐步实现智能化的研发,将研发效率提升十倍、百倍。
7. 展望未来
软件工程3.0的提出和实践,标志着软件研发领域的一个重要转折点。随着人工智能(AI)和大型语言模型(LLM)技术的不断成熟和应用,软件工程3.0的未来前景可以从以下几个方面进行展望:
自动化和智能化的提升:软件工程3.0将推动软件开发流程的自动化和智能化,从而显著提高研发效率和质量。LLM技术将在代码生成、代码补全、测试用例生成、缺陷定位与修复等领域发挥重要作用,减少重复性劳动,让开发人员能够专注于更高层次的创造性工作。
组织结构和工作模式的变革:随着LLM技术的应用,软件研发团队的结构和工作模式将发生变化。一些初级和中级的研发岗位可能会减少或消失,而需求分析、测试和项目管理等高端岗位将变得更加重要。同时,开发者与AI助手的协作将成为常态,形成人机协同的工作模式。
超级个体的兴起:软件工程3.0可能会催生“超级个体”的出现,即少数具备高度技能和AI驾驭能力的个人能够独立完成传统上需要多人团队才能完成的工作。这将推动个体工程师的价值最大化,并可能改变软件行业的人才结构和培养模式。
AI伦理和安全性的重视:随着LLM技术的广泛应用,如何确保AI的伦理性和安全性将成为软件工程3.0必须面对的挑战。企业需要建立相应的规范和流程,确保AI技术的应用不会带来安全风险和伦理问题。
跨领域的融合和创新:软件工程3.0将推动软件技术与其他领域的深度融合,如网络、汽车、制造等,从而催生新的业务模式和创新产品。软件将更加深入地渗透到社会的各个层面,推动各行各业的数字化转型。
持续的学习和适应:在软件工程3.0的背景下,持续学习和适应新技术的能力将成为软件工程师必备的素质。随着技术的快速发展,工程师需要不断更新知识体系,掌握新的工具和方法,以适应不断变化的工作环境。
总之,软件工程3.0预示着一个高效、智能、协作和创新的软件开发新时代。它将为软件行业带来深远的影响,同时也提出了新的挑战和要求。企业和个人都需要积极适应这一变革,把握机遇,共同推动软件工程的发展。