远光动态

《管见》毕伟:现代软件工程与“人月神话”

  • 时间:2023-12-29
  • 来源:远光软件

《管见》毕伟:现代软件工程与“人月神话”

《管见》毕伟:现代软件工程与“人月神话”


一、软件工程领域的“人月神话”

在软件工程领域有一个著名的观点——“人月神话”,它是作者弗雷德里克·布鲁克斯在1975年首次出版的同名书籍《人月神话》中提出的,“人月神话”即原文中的“ The Mythical Man-Month”,“人”指工程师,“月”即时间。作者认为,软件开发不同于传统行业,其过程的复杂性决定了完成工作的人数和时间不能进行简单的互换,即 “10个人预计10个月完成”的工作量不能被简单的评估为 “100个人可以在1个月内完成”,简单用“人月”作为衡量一项工作的规模将是一个危险和带有欺骗性的神话。

现在,软件工程经过了四十多年的发展,工程理论不断创新,软件技术持续迭代,AI发展日新月异,整体呈现出多元化、智能化、敏捷化的趋势。那么,在现代的软件工程中,“人月神话”是否可以变成现实了呢?

二、现代软件工程的变化

近年来,随着技术的不断进步,软件工程领域涌现出很多新的工具、方法和框架,使得软件开发更加高效、可靠和灵活。同时,云计算、大数据人工智能等技术的融合应用,也为现代软件工程带来了更多创新和发展空间:

敏捷开发理论的产生,打破了传统开发的僵化模式,以客户需求为核心,通过短周期快速迭代,子项目成果持续集成交付,降低了项目整体失败的风险,并确保了系统一直处于可用状态。

DevOps的出现,改变了传统软件开发和运维的模式,将开发与运维紧密结合,通过自动化工具简化了开发、测试、部署等过程,降低了人为错误的风险,使得构建、测试、发布软件能够更加地快捷、频繁和可靠,提高了软件交付的速度和质量。

云计算的兴起,极大地改变了软件工程实践方式,它为开发团队提供了弹性扩展、高可用性的基础设施,支持更快地部署和迭代产品。

容器技术的发展,为软件工程带来了巨大的变革,通过提供轻量级、可移植的运行环境,使得应用程序能够快速、可靠地部署和运行。同时,容器技术通过隔离性保证和微服务架构支撑,也推动了软件系统的可扩展性和灵活性,进一步优化了DevOps流程和云计算资源管理。

人工智能的诞生,更为软件工程带来了革命性的变化,将软件开发向着智能化、自动化的方向推进。尤其是2022年底大模型的横空出世,为我们迎来了一个全新的AI开发时代——大模型通过其强大的自然语言处理、学习和推理能力,为软件工程的各个环节带来了巨大的便利,无论是需求分析、代码生成、低代码开发,还是研发管理、自动化测试、智能运维,大模型都展现出了其高效和智能的一面,这使得软件研发的整个工作过程变得更加流畅和高效,极大地提高了开发效率和质量。

这些技术成果和创新理论的出现,从不同方面提高了软件开发的效率和软件交付的质量,为软件工程带来前所未有的进步和变革。但仔细分析,布鲁克斯在《人月神话》中提出的问题依旧存在,尽管在软件工程中技术和管理都很重要,但人的因素始终是最关键的,人的技能、经验、沟通、协作等都对项目的成败产生重大影响。譬如,敏捷开发是以人为核心的,需要高度的自我组织和责任感;DevOps对团队技能要求高,且需要改变组织传统工作方式和思维模式,挑战跨部门协作;云计算需要研发团队不断学习新技术,设计合理的架构和资源管理机制,以降低成本并确保应用程序的稳定性和安全性;容器管理的复杂性,需要专业的容器编排工具和团队进行管理和维护;而呼声最高的大模型,尽管在根据训练数据自动生成代码方面已经有了巨大的突破,但它无法像人一样从零开始进行创造性的设计和实现,面对复杂的软件需求和系统架构,大模型也无法像人一样通过抽象思维和逻辑推理去整体构建。

三、远光软件的探索与成果

综上分析,即使在现代科技背景下,软件技术和理论都有了显著的进步和变革,但“人月”依然不是一个可以直接互换的资源,“人月神话”仍旧是无法实现的。人依然是软件工程最核心的存在,先进的理论/技术依然是围绕“人”进行的,单纯加人并不能线性缩短软件交付周期,反而可能会因为人数增加而带来额外的技能培训、团队沟通、组织协调等管理成本,导致反向效应。

然而,软件产业从业人员依然在追寻最大化地利用现代软件工程的发展成果,寄望于在前沿技术的加持下,充分发挥人在软件创造性、抽象思维、逻辑推理和团队协作等方面不可替代的作用,通过人、技术、工具、过程的有效结合来减少“人月”投入,提高研发效率,缩短交付周期。

远光软件自成立以来,一直坚持自主研究,服务大型央国企信息化、数字化建设,30余年来,不断探索、创新提升研发效率的模式、方法和工具。从研发管理模式上,公司以敏捷开发理论为基础,通过构建跨地域、多元化研发组织体系,推行项目集管理模式,注重快速响应市场变化和客户需求,通过跨部门协作、持续集成和持续改进,实现高效、高质量的软件交付。在创新技术应用上,公司以提高开发效率为目标,推行“以使用AI辅助编程为常态、未使用为例外”策略,在各个产品研发部门全面推行AIGC辅助编程,通过AI工具来辅助研发人员提高软件开发的效率和质量,提升对客户的响应能力和速度。在工具层面,公司打造出以AI为核心驱动、融合先进软件工程理论的远光九天智能一体化云平台,作为全栈研发工具,远光九天平台通过融合大模型技术,可为内外部用户提供覆盖软件研发全生命周期的AIGC研发能力,帮助研发人员从大量重复、琐碎、机械的基础工作中解放出来,转而去做更具创造性、更有价值的工作。

尽管“人月神话”目前还无法突破,但围绕“人、技术、工具、过程”进行有效结合的各种理论探索,仍旧是所有软件产业从业者始终在努力的方向,只有通过不断学习更新的技术,探索更好的管理办法,来提升研发效率,缩短交付周期,不断的迭代创新,来无限接近这一神话。