软件工程与土木工程的不同

news/2025/2/11 1:20:17/

观看本视频后,你将能够认识到软件工程与土木工程的不同,描述软件工程是如何不断变化的,并阐述项目管理模式为何不太适用于软件开发。一种常见且不利于 DevOps 工作的做法是,把软件工程工作当作土木工程来做。
对于一个土木工程的项目而言,你可能想要建造一座办公楼。你聘请一位建筑师来设计大楼并绘制蓝图。蓝图会交给施工团队,施工团队按照蓝图来建造大楼。一旦完成交接,建筑师就会着手下一个项目。他们可能会就蓝图的一些问题接受咨询,但在很大程度上,他们的工作已经完成,可以继续前进了。施工团队会花数月时间按照蓝图中的规格建造大楼。施工完成后,大楼会移交给维护团队,由维护团队接管大楼的维护工作。除非你在加利福尼亚州,否则大楼下面的地面不会有太大变动,从那以后一切都相当稳定。
问题在于,我们用同样的方式看待软件开发。软件开发工作通常被当作土木工程来运作。我们把它看作是一个完成后就可以继续推进的项目。架构师把设计方案扔给开发人员后,就去做下一个项目了。开发人员把代码扔给测试人员。项目完成后,整个项目又被扔给运维团队,作为 “日常业务” 的一部分来运行和维护。项目团队的所有人员都被重新分配到新的工作中,也许会留下一个骨干开发团队负责维护。
与这种土木工程的方式不同,软件工程是有机的。即使应用程序本身没有变化,其底层的软件栈也在不断变化。由于新发现的漏洞,操作系统需要打补丁,软件包需要更新。这些变化会影响应用程序,而运维团队只能自己去处理这些变化。新功能也在不断添加。一座办公楼建成后,通常不会再增加新的楼层。但软件并非如此。系统的行为一直在变化。然而,我们仍然把软件工程当作土木工程来对待。这种项目模式从根本上来说并不适合软件开发。当一个项目完成,人员都离开后,就没有人对软件负责了。这可不是开发出优秀软件的方法。
相反,你应该把软件开发当作产品开发来对待。产品的生命周期很长,并且会不断进行改进。如果开发软件的团队在完成开发后不是离开,而是继续构建和维护软件,他们就能对代码有更深入的理解,并对代码产生主人翁意识。他们会想出让代码变得更好的好点子。我们绝不能再把软件工程当作土木工程来做。在 DevOps 中,我们希望拥有稳定、长期的团队成员,实现端到端的全程负责。这才是开发出优秀软件的方法。
在本视频中,你了解到软件开发通常被视为一个完成后就交给运维团队进行维护的项目。软件工程以及系统的行为都在不断变化。团队负责制和稳定的团队使得软件开发更像是产品开发,而不是项目管理。
在这里插入图片描述


http://www.ppmy.cn/news/1571015.html

相关文章

Lua中文语言编程源码-第十一节,其它小改动汉化过程

__tostring 汉化过程 liolib.c metameth[] {"__转换为字符串", f_tostring}, lauxlib.c luaL_callmeta(L, idx, "__转换为字符串") lua.c luaL_callmeta(L, 1, "__转换为字符串") __len 汉化过程 ltm.c luaT_eventname[] ltablib.c c…

我用AI做数据分析之数据清洗

我用AI做数据分析之数据清洗 AI与数据分析的融合效果怎样? 这里描述自己在使用AI进行数据分析(数据清洗)过程中的几个小故事: 1. 变量名的翻译 有一个项目是某医生自己收集的数据,变量名使用的是中文,分…

初识C语言、C语言的学习方向总述与入门

目录 1. 什么是C语言? 2. 第一个C语言程序 3. 数据类型 4. 变量、常量 4.1 定义变量的方法 4.2 变量的命名 4.3 变量的分类 4.4 变量的作用域和生命周期 4.5 常量 5. 字符串转义字符注释 5.1 字符串 5.2 转义字符 6. 注释 7. 选择语句 8. 循环语句 …

【Linux】Socket编程—UDP

🔥 个人主页:大耳朵土土垚 🔥 所属专栏:Linux系统编程 这里将会不定期更新有关Linux的内容,欢迎大家点赞,收藏,评论🥳🥳🎉🎉🎉 文章目…

tomcat如何配置保存7天滚动日志

在 Tomcat 中,logging.properties 文件是用于配置 Java 日志框架(java.util.logging)的。若要实现 catalina.out 日志保存 7 天,且每天的日志文件名带有时间戳,可以按以下步骤进行配置: 1. 备份原配置 在修…

DeepSeek为何能爆火

摘要:近年来,DeepSeek作为一款新兴的社交媒体应用,迅速在年轻人群体中走红,引发了广泛关注。本文旨在探讨DeepSeek为何能在短时间内爆火,从而为我国社交媒体的发展提供参考。首先,通过文献分析,…

一个基于Spring Boot的简单网吧管理系统

一个基于Spring Boot的简单网吧管理系统的案例代码。这个系统包括用户管理、电脑管理、上机记录管理等功能。代码结构清晰,适合初学者学习和参考。 1. 项目结构 src/main/java/com/example/netbarmanagement├── controller│ ├── ComputerController.jav…

Java基础(十三):Java中的数组使用

目录 java的数组数组的定义创建数组和初始化数组的声明方式(以一维数组为例)案例 数组的初始化1. 静态初始化2. 动态初始化3. 默认初始化 数组常见操作数组的遍历【例】使用循环初始化和遍历数组数组的拷贝**java.util.Arrays 类**多维数组数组存储表格数据 java的数组 数组的…