1、软件工程3.0之下的质量与效能朱少民QECon发起人、“软件工程3.0”定义者目录01 从软件工程1.0到软件工程3.0(SE3.0)02 SE3.0:软件研发进入数字化时代03 SE3.0 软件开发新范式04 人机交互智能是SE3.0的常态CONTENTS05 软件工程3.0宣言从软件工程1.0到3.0软件工程(Software Engineering,SE)已走过了55年对软件开发成本和进度的估计不足,超预算、完成日期一再被推迟的现象屡屡出现不能满足客户需求,用户不满意缺乏质量保证体系,没有成熟的开发流程,产品的质量得不到保证软件不容易被维护,错误难以纠正,新功能难以扩充质量事故经常发生
2、上个世纪五、六十年代软件危机四伏标志性事件:1968年NATO会议会议输出136页的软件工程论述第一次提出Software Engineering 术语本次会议标志着进入 软件工程1.0(SE1.0)时代(SE)SE1.0:结构化、规范化、标准化、工程化受传统建筑工程方法影响比较大,重文档、重流程,典型代表是CMM model:aims to improve existing software development processes但软件其实不同于硬件硬件研发与生产软件研发产品是一个物理对象希望批量生产构建/复制成本昂贵构建过程缓慢不容易修改、扩展精确的质量度量产品是数字、抽象的对象希望每
3、个产品都是个性化的构建/复制成本非常便宜构建过程非常快容易修改、扩展没有精确的质量度量重新认识软件开发、交付不断思考、探索与实践92Crystal93Refactoring94DSDM95Scrum97FDD99ASDXPPPCI2000events2001Agile ManifestoDSDM:Dynamic Systems Development MethodPP:Pragmatic Programmer敏捷宣言:软件工程2.0标志性事件http:/www.agilemanifesto.orgSE2.0开发模式:Agile、CI/CD、DevOps团队协作专注于软件本身拥抱变化以加快产品交
4、付文化是重点,研发和运维融合,形成闭环云原生、平台工程等相继出现持续获得反馈而改进专注于促进自动化的工具CI/CD效率真的提升了?“快”不代表高效率,多数团队返工更多了、工作更累了口头上常提“价值交付、价值流”,交付的东西都有价值吗?敏捷是银弹吗?带来了曙光GPT-4发布GPT-4发布标志着软件工程3.0时代的到来因为软件研发进入真正的数字化时代、开发范式也将发生巨大变化SE3.0:软件研发进入数字化时代软件研发平台开始理解现实世界、理解业务之前各种智慧系统是人工“智能”看似智慧,其实系统不能理解业务,完全是靠人工一点一点做出来的GPT-4发布,意味着:AI 第一次睁开双眼理解这个世界计算机全
5、面感知、认知这个世界今天GPT能够理解我们所说的“正好Transformer把这么多知识压缩在一起,这是它的最大突破”从信息化到数字化:AI扮演着重要角色计算机技术企业业务运行信息化计算机技术企业业务运行数字化初期数字化技术企业业务运行今天的数字化数字化以数据为生产要素,物理世界转变为可计算、可分析的数据,让数据在企业系统内自由流动,通过对数据的实时分析和计算提升企业业务,数据价值得以充分发挥大模型促进软件研发全生命周期的数字化集成测试系统测试交付/部署运维客户反馈分析大模型单元测试编程设计需求分析与定义问题定义SE3.0软件开发新范式建立在SE2.0之上,但与过去的开发范式有很大不同“模”与
6、“范”模是事物的大致模样,虽然范不是事物本身,但是它决定了事物的模样软件开发范式及其转换基于工艺(craft)结构的开发范式(paradigms)、基于市场的、基于产品的开发范式;开源软件范式、分布式开发范式、群智范式软件开发范式的变化快,常常伴随着标志性的事件今天大模型能生成UI、代码、测试脚本等GitHub CEO Thomas Dohmke,直播AI写代码:挑战18分钟完成一个小游戏。结果只用了不到15分钟成功上线部署,这边他还在讲台上,全球网友已经能玩上了。软件开发新范式:ML-DevOps模型驱动开发、模型驱动运维MLDevOps软件开发新范式