写点什么

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

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

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

关注

评论

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

微盟全链路压测:如何帮助电商业务实现10倍性能提升?

TakinTalks稳定性社区

CrossOver2023MAC电脑切换win系统打造的虚拟机软件

茶色酒

CrossOver2023

音频编辑服务UI SDK接入指导及常见问题

HarmonyOS SDK

HMS Core

微软提出 TinyMIM,首次用掩码预训练改进小型 ViT

Zilliz

DataEase 启动异常如何解决:Access denied for user 'root'@'xx.xx.xx.xxx' (using password YES)

搞大屏的小北

DataEase

数据结构-Hash常见操作实践

杨充

什么是渲染农场,渲染农场一般怎么收费?

Renderbus瑞云渲染农场

云渲染农场 渲染农场

泰山众筹4.0sun模式开发系统技术

薇電13242772558

智能合约

泼辣修图2023官方网页版入口在哪里?

茶色酒

泼辣修图2023

低代码开发平台 打开数字化转型普惠之门

力软低代码开发平台

《数字经济全景白皮书》后疫情时代数字化驱动增长洞察之赛道篇

易观分析

数字经济 数智化转型

Camtasia2023汉化中文版电脑屏幕录像和编辑的软件

茶色酒

Camtasia2023

新增模型服务、训练记录、源代码关联追溯,助力模型全生命周期管理|ModelWhale 版本更新

ModelWhale

人工智能 机器学习 云计算 数据分析 编程建模

英特尔锐炫DX9,DX11,DX12游戏性能持续提升,个别游戏高达87%

科技之家

【知识点】如何快速开发、部署 Serverless 应用?

Serverless Devs

开年直播 | 博睿数据创始人兼CTO对话InfoQ,聊聊2023年重要战略技术趋势:可观测性

博睿数据

可观测性 博睿数据 媒体声音

《流浪地球2》的现实倒影(一):从量子计算机到MOSS

脑极体

量子计算机 小苔藓 流浪地球 MOSS

专访三维空间雷成老师 | 原来水墨画风格的3D建筑动画可以如此惊艳……

Renderbus瑞云渲染农场

瑞云渲染 3D建筑动画 三维空间

营销大数据如何帮助企业深入了解客户-镭速

镭速

SR锁存器与D锁存器设计与建模

timerring

FPGA

一文读懂SCADA系统的组件功能及应用

2D3D前端可视化开发

组态软件 工业组态软件 web组态软件 SCADA

Spring Boot + WebSocket 实时监控异常

程序员大彬

Java springboot

2023最新版网络安全保姆级指南,从0基础进阶网络攻防工程师

网络安全学海

运维 网络安全 信息安全 渗透测试 漏洞挖掘

AirServer2024免费的手机投屏电脑软件

茶色酒

AirServer AirServer2023

CMAE 结合对比学习和掩码,提高表征辨别力

Zilliz

可变二维码,玩转“码”上时代

旺链科技

区块链 区块链技术 区块链溯源

一体化移动办公平台,让政企工作更轻松、更便捷

BeeWorks

持续耕耘显卡市场,英特尔锐炫驱动重大升级

科技之家

函数计算|如何使用层解决依赖包问题?

Serverless Devs

高密度 ARM 服务器如何引领“数智时代”发展,打通“智变质变”正循环

GPU算力

深度学习 并行计算 arm架构 高性能计算 ARM服务器

WorkPlus即时通讯软件,专注于企业信息安全可靠的企业IM

BeeWorks

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