惯性聚合 高效追踪和阅读你感兴趣的博客、新闻、科技资讯
阅读原文 在惯性聚合中打开

推荐订阅源

宝玉的分享
宝玉的分享
NISL@THU
NISL@THU
E
Exploit-DB.com RSS Feed
L
LINUX DO - 热门话题
L
Lohrmann on Cybersecurity
K
Kaspersky official blog
Project Zero
Project Zero
Cisco Talos Blog
Cisco Talos Blog
T
The Exploit Database - CXSecurity.com
P
Palo Alto Networks Blog
C
CXSECURITY Database RSS Feed - CXSecurity.com
T
Threatpost
S
Schneier on Security
G
GRAHAM CLULEY
The Hacker News
The Hacker News
T
Threat Research - Cisco Blogs
Scott Helme
Scott Helme
Threat Intelligence Blog | Flashpoint
Threat Intelligence Blog | Flashpoint
P
Privacy & Cybersecurity Law Blog
C
Cyber Attacks, Cyber Crime and Cyber Security
Cyberwarzone
Cyberwarzone
C
CERT Recently Published Vulnerability Notes
T
Tor Project blog
AWS News Blog
AWS News Blog
Simon Willison's Weblog
Simon Willison's Weblog
cs.CL updates on arXiv.org
cs.CL updates on arXiv.org
爱范儿
爱范儿
P
Privacy International News Feed
云风的 BLOG
云风的 BLOG
P
Proofpoint News Feed
S
Securelist
G
Google Developers Blog
The Last Watchdog
The Last Watchdog
Google Online Security Blog
Google Online Security Blog
美团技术团队
F
Fortinet All Blogs
小众软件
小众软件
Recorded Future
Recorded Future
V
Visual Studio Blog
B
Blog RSS Feed
H
Help Net Security
CTFtime.org: upcoming CTF events
CTFtime.org: upcoming CTF events
Google DeepMind News
Google DeepMind News
Blog — PlanetScale
Blog — PlanetScale
博客园 - 聂微东
Stack Overflow Blog
Stack Overflow Blog
Martin Fowler
Martin Fowler
Latest news
Latest news
Spread Privacy
Spread Privacy
H
Heimdal Security Blog

博客园 - 草木物语

Day2: Prompt Engineering 与结构化输出 - 草木物语 三招优化电脑瞬间变流畅 Hutool 的 HttpUtil.post() 方法在高并发场景下的线程安全问题 从技术大牛到管理新手:那些让你痛苦的转换期,终会成为你的铠甲 Git 提交 与 修正提交 AI的"半衰期"陷阱 越用AI我能力越差? AI时代的"认知差异陷阱" 教育在AI时代,得重新来过 AI都能写作业了,孩子还要不要学习? AI 时代,你的孩子要学会这些 java17 有什么好用的特性 vue2,vue3 父子组件交互 props,emit,slot vue3 ref()和reactive() 软件工程-第七章第七节 组织 软件工程-六 谁是解结的人 软件工程-软件工程层状模型(EHM) 软件工程-三 团队缺乏的不只是管理 软件工程-四 流于形式的沟通 Netty ChannelHandler的生命周期 Netty 客户端与服务端收发消息demo
软件工程-五 过程
草木物语 · 2024-06-11 · via 博客园 - 草木物语

做过程不是做工程

软件工程这个概念被提出的时候大概是在20个世纪60年代末。它作为成熟的概念的标志是软件工程的瀑布模型的提出。

瀑布模型将软件开发的过程分成需求、分析、设计、开发和测试五个主要阶段,其主要环节关系表现为如下的这样一种形态

在瀑布模型之后,很多人开始研究过程模型的问题。很多从实际工程中提炼出来的过程模型都是值得称道的,例如RAD(Rapid Application Development,快速应用开发)模型、螺旋模型和现在常被提及的RUP(Rational Unified Process,Rational统一开发过程)模型。

模型就是“样子”。人家拿出一个东西来说:这是模型。其言下之意就是要你按照这个样子来做。过程被描述为可重复的模型,实施的结果却可能演变成为相当尴尬的局面,如图所示。

我们看到,按照模型所描述的这个“样子”,做完过程的每一个阶段,并不等于做完了工程。或者说,工程并不是这样就可以做成功的。

换而言之,无论是用RAD模型还是RUP模型来做工程,即使是亦步亦趋,也做不好工程。

如果工程可以那样做成的话,只需要有瀑布模型就足够了。因此“做过程”并不是做工程的精义。

做过场

前面那张图就是一个过场。尽管那是一张用来描述“沟通问题”的经典图例

如果每一遍(或者用RUP的那个术语“迭代”)都只是“过场”的话,项目将只是一场无休止的演出而已。

最终呢?观众受不了,就交钱走人;演员受不了,就下台散伙。戏目和项目的结局,竟如此的相似。

实现,才是目的

很多人把问题的本质给忘掉了。从最开始,从我们编程开始,我们的目的就是实现一个东西。无论这个东西是小到称手的一个工具,还是大到千万的一个工程,我们的目标,都是要“实现”它。

工程只是一种实现的途径。最初做开发的前辈们,不用什么工程或者过程,也一样编出了程序,也一样解决了问题,也一样实现了目的。

工程不是做的,是组织的

不能“做”工程,而是要“组织”工程。项目经理的工作,就是要去组织这个工程中的各个角色,使得分工明确,步调一致,共同地完成这个项目。

大道至简:软件工程实践者的思想 第五章 失败的过程也是过程