写点什么

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

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

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

关注

评论

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

Beyond Compare 4 for Mac(好用的文件对比工具) 4.4.7(28397)中文版

iMac小白

一个案例,看懂AI Agent厂商的商业落地路径

王吉伟频道

LLM 大语言模型 AI Agent AI智能体 RPA Agent

海信电视U8N Pro,用AI算尽 “每一粒沙”

脑极体

AI

新零售SaaS架构:线上商城系统架构设计

快乐非自愿限量之名

架构 零售 SaaS

SideNotes v1.4.14 for Mac激活版 让你随时在 Mac 屏幕上管理笔记

iMac小白

PowerPhotos for Mac v2.5.7b3 直装版 mac专用图片管理工具

iMac小白

Microsoft Office LTSC 2021 for Mac v16.82 beta版

iMac小白

颠覆传统开发流程!「原型、设计、开发」仅需一个组件设计器就够了!

优秀

低代码 组件设计器

一文详解大数据时代与低代码开发应用

快乐非自愿限量之名

大数据 低代码

全球首个Open机器人诞生!当GPT模型有了“肉体”,不仅能听能写还可以干家务!

Finovy Cloud

AI Open AI

使用gitlab+gitlab runner+k8s完成devops

了了

美国对苹果提起反垄断诉讼;周鸿祎:不转向 AI 手机的厂商会成下一个「诺基亚」丨 RTE 开发者日报 Vol.170

声网

【教程】深入探究 JS代码混淆与加密技术

千万别让老板知道,这套80%海报,是我用生成式 AI 设计的!

亚马逊云科技 (Amazon Web Services)

策略分析轻松搞定!10款免费可视化模板助你提升分析效率!

彭宏豪95

在线白板 办公软件 效率软件 SWOT boardmix

Amazon Bedrock 实践 | 动手玩转 Claude 3

亚马逊云科技 (Amazon Web Services)

jackson对象带时间的转换报错,附带fastjson封装工具就填

进哥

java‘

众安保险AI代码助手DevPilot获奖,全面开源构筑技术新生态

ZA技术社区

.NET Core 服务实现监控可观测性最佳实践

观测云

.net core

低代码与AI金融时代:重塑金融行业的未来

EquatorCoco

人工智能 AI 低代码 金融

深度解析大模型的关键特性与优势

木南曌

#大模型

选择美国高防服务器出租,提升网络防御力

一只扑棱蛾子

美国高防服务器 高防服务器

Penpad 生态资产 $PDD 即将LaunchPad ,一文读懂Season 2 规则

股市老人

低代码助力企业数智转型

不在线第一只蜗牛

低代码 数智转型

头部银行 AI 落地实践|数据应用赋能经营管理闭环

Kyligence

热点!浅谈低代码到底是什么?

互联网工科生

游戏直播APP平台开发多少钱成本:定制与成品源码差距这么大

软件开发-梦幻运营部

从0到1:企业官网小程序开发笔记(一)

CC同学

Penpad的Season 2 规则解读,其生态资产 $PDD LaunchPad 在即

股市老人

【教程】高效数据加密混淆方法及实现简介

雪奈椰子

Prompt进阶系列4:LangGPT(构建高性能Prompt实践指南)--结构化Prompt

汀丶人工智能

人工智能 Prompt工程

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