写点什么

“实效主义”是一匹“黑马” —— 现实驱动开发

  • 2008-03-04
  • 本文字数:1095 字

    阅读完需:约 4 分钟

软件架构师 Gustavo Duarte 的一些观点最近引起了热烈的讨论。针对物理学家 Richard Feynman 关于挑战者号航天飞机失事报告以及其中的一些发现,他提出了一些观点,并讨论了它们与工程级质量软件的关系。Gustavo 将 Feynma 的原则应用于软件领域,并提出四个主要观点:

  • 软件工程的好坏和它与管理的关系是正相关的;
  • 大量的事先设计非常“愚蠢”;
  • 软件与其他工程上的法则有很多共同之处;
  • 可靠的系统是通过严格的测试、以“确保最高质量的态度”采取自底向上增量式工程化开发得到的。

在后续的一篇文章中,Gustavo 详细阐述了“实证”的概念, 并引入了“现实驱动开发(Reality Driven Development)”这一想法:

行动和尝试是经验主义的基石。不要试图让现实屈从于广泛的分析和丰富的文档,因为现实是通过试验得来的。某个以经验主义为指导方针的公司不会苦苦执着于市场研究,而是雇佣实习生用一个夏天的时间开发出一个产品。而不以经验主义为依据的公司会组织 43 个人用了一年的时间进行计划和设计却没有付之实施

从进化角度来看,这一概念奉行“适者生存”的哲学。实质上,你尝试一些东西,然后取其精华去其糟粕。Gustavo 解释到:

好的软件开发过程应该完善那些尝试,从现实结果中得到反馈。这就是我想通过“现实驱动的开发”所表达的意思。而对于软件来说,最重要的现实就是用户体验和技术质量(technical quality),而主要的试验就是写代码和软件。这并不是一个非常正式的模型(呵呵),我只是喜欢用它来代表软件开发。我喜欢“现实驱动”这个词,因为当你提到“现实”时,人们会想到“用户”。

该想法与敏捷共享一些共同的核心原则和技术,而 Gustavo 并没有提倡某种新方法论(感谢上帝):

现实驱动开发没有什么特定的方法论,它与敏捷原则有很多共通的想法(当然敏捷原则会影响这些想法),但魔鬼存在于细节之中。我喜欢将软件工程想象为工具箱,其中充满了我们根据正确的形势要选择的技术。“完善那些尝试”的过程工具包括迭代开发可执行的架构(executable architecture), 持续集成,以及单元测试

Gustavo 的方法更偏爱用户和质量:

基于这一模型,我们在意的就是以下两个现实:用户体验(包括软件实用性)和技术质量。而在敏捷和类似瀑布这样的方法中,用户体验常常被忽视[译者注:敏捷方法是强调用户体验的]。

Gustavo 用自低向上的方法总结到:

  1. 更注重试验而不是分析,尽管二者都很重要;
  2. 完善试验:尽可能让这些试验更容易、更快、更便宜、更广泛。分析可以帮助我们这一点;
  3. 更多的尝试;
  4. 必须聪明和主动地度量现实:即用户体验和技术质量;
  5. 对反馈做出反应,让现实来驱动。

查看英文原文: Pragmatic is the new black - Reality Driven Development

2008-03-04 20:391151
用户头像

发布了 100 篇内容, 共 24.9 次阅读, 收获喜欢 5 次。

关注

评论

发布
暂无评论
发现更多内容

OmniGraffle Pro 思维导图工具 密钥激活 附 安装教程

加油,小妞!

mac思维导图 OmniGraffle Pro下载

解锁编程潜能:探索亚马逊CodeWhisperer,打造编程世界的声音引导者

熬夜磕代码、

亚马逊云科技

软件测试/人工智能|一文告诉你ChatGPT原理与架构

霍格沃兹测试开发学社

用Mac做视频剪辑就用fcpx剪辑,Final Cut Pro中文下载

Rose

Final Cut Pro中文版 Final Cut Pro破解版 fcpx 视频剪辑Mac版 fcpx剪辑

2023如何搭建优质独享美国IP?美国静态住宅代理IP哪里有?

Geek_bf375d

LeetCode题解:2. 两数相加,递归,JavaScript,详细注释

Lee Chen

JavaScript LeetCode

Android File Transfer for Mac:轻松实现手机与电脑之间的文件传输

Rose

Android File Transfer mac与安卓同步 安卓数据传输 MacDroid pro

当代企业的数字安全,能“脆皮”到什么程度?

白洞计划

AI

Photoshop 2024 (ps)使用技巧 ps2024mac中文破解版

Rose

Photoshop 2024破解版 Photoshop 2024直装版 ps使用技巧

SQL(Structured Query Language)简介和常见 SQL 命令示例

小万哥

MySQL 数据库 sql 程序员 后端

适用于M1 /M2 Mac的office365办公软件 Microsoft 365破解版下载

Rose

Microsoft 365 office许可证 office 365

潜水员戴夫Dave The Diver 主线游戏攻略 潜水员戴夫 Mac游戏中文版下载

Rose

Dave The Diver 潜水员戴夫游戏攻略 Mac游戏推荐 潜水员戴夫中文版下载

专业ai无损放大工具-Topaz Gigapixel AI汉化一键激活版

Rose

无损放大 Topaz Gigapixel AI中文 Topaz Gigapixel AI下载 Topaz Gigapixel AI破解

学习Python过程中容易遇到的问题及其解决办法

Geek_7d9e0b

#python

大会技术“硬核”资讯来啦!点击预约 IoTDB 现场一对一调优咨询服务

Apache IoTDB

亚马逊云 EC2 的网络详解

孤虹

亚马逊云 EC2

亚马逊云EC2的监控

孤虹

亚马逊云 EC2

为什么我认为开源低代码平台不可靠?

代码生成器研究

开源 程序员 互联网 低代码

软件测试/人工智能|利用ChatGPT进行项目需求分析

霍格沃兹测试开发学社

锂离子电池充电管理芯片应用

芯动大师

C++ IDE:最适合 C++ 初学者的 IDE 是什么?

ide 初学者 C++

AnyGo使用教程 AnyGo中文下载安装 支持M1/M2

Rose

GPS Mac软件 AnyGo下载 AnyGo中文版

兼容Intel和Apple Silicon芯片Parallels Desktop 19虚拟机一键激活版

Rose

Mac虚拟机下载 Parallels Desktop 19 PD19虚拟机破解版 Parallels正版密钥

ps 2023 mac配置要求 Photoshop2023中文破解版 支持M

Rose

Photoshop 2023下载 Photoshop 2023中文版 ps 2023储存黑屏 PS2023最新版

ClickHouse联合创始人、前Google副总裁Yury到访杭州玖章算术公司,双方建立生态合作

NineData

Clickhouse 数据复制 合作伙伴 SQL开发 NineData

为什么Facebook运营需使用IP代理?有哪些美国IP代理好用?

Geek_bf375d

外贸必看|Kakao账号如何注册使用?如何实现Kakao多开?

Geek_bf375d

软件测试/人工智能|教你如何更高效地使用AI对话工具

霍格沃兹测试开发学社

腾讯云的云上容灾实践

腾讯云混沌演练平台

容灾

朝夕光年「红砖」搭建平台架构设计和应用落地

字节跳动技术范儿

“实效主义”是一匹“黑马” —— 现实驱动开发_研发效能_Gavin Terrill_InfoQ精选文章