写点什么

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

  • 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:391055
用户头像

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

关注

评论

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

一文了解区块链如何帮助打击虚假信息

CECBC

What's new in dubbo-go-pixiu 0.4.0

apache/dubbo-go

智慧巨鹿使用Rainbond落地实践,一个平台管理所有应用系统

北京好雨科技有限公司

LevelDB在测试中应用应用

FunTester

数据库 测试开发 leveldb FunTester 有状态服务

作业6

施正威

百分点数据科学实验室:零售行业新店品类配比测算方案

百分点科技技术团队

《JavaScript基础入门》环境搭建

IT蜗壳-Tango

IT蜗壳教学 1月月更

恒源云(GPUSHARE)_云GPU服务器如何使用LightGBM?

恒源云

人工智能 算力 框架学习

MongoDB常用命令(2)

Tom弹架构

Java mongodb 分布式数据库

SpringMVC框架基础知识(03)

海拥(haiyong.site)

28天写作 1月月更

牛掰,在IDEA中,你可以安装小傅哥写的插件了!

小傅哥

小傅哥 idea插件 vo2dto转换插件开发 idea plugin 代码织入

功能十分全面的项目管理工具(文档协作、项目计划、文件管理等)

优秀

项目管理 项目管理工具

架构实战营第 4 期 -- 模块五作业

烈火干柴烛灭田边残月

架构实战营

终极解密输入网址按回车到底发生了什么

码哥字节

HTTP TCP/IP

带你认识7种云化测试武器

华为云开发者联盟

测试 接口测试 华为云DevCloud 云化测试 Mock 服务

作业4

施正威

作业5

施正威

spring源码搭建

派大星

Spring5源码解析

数字化转型失败,有哪些原因?

禅道项目管理

数字化转型

敏感信息打码就安全了吗?

恒生LIGHT云社区

信息安全

Cube 技术解读 | Cube 小程序技术详解

蚂蚁集团移动开发平台 mPaaS

小程序 前端 mPaaS cube

Git操作备忘录(持续更新)

IT蜗壳-Tango

git IT蜗壳教学 1月月更

一文整理区块链技术为企业带来的九大好处

CECBC

SphereEx 完成近千万美元 Pre-A 轮融资,加速构建新一代数据库生态引擎

SphereEx

开源 融资 ShardingSphere SphereEx 嘉御资本

「自我检验」熬夜总结50个Vue知识点,全都会你就是神!!!

Sunshine_Lin

面试 Vue 前端 进阶 ES6

TDengine在上海电气储能智慧运维系统中的应用

TDengine

数据库 大数据 tdengine

网络安全好学吗?基础入门篇,NMAP高级使用技巧和漏洞扫描发现

学神来啦

网络安全 渗透测试 kali基础 nmap kali Linux

科技驱动经济发展的时代全面到来

CECBC

【LeetCode】Bigram 分词 Java题解

Albert

算法 LeetCode 1月月更

nodejs 异步I/O和事件驱动

编程江湖

nodejs

荣获中国专利金奖!百度连续四年AI专利申请和授予量全国第一

百度开发者中心

人工智能 AI

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