AICon上海|与字节、阿里、腾讯等企业共同探索Agent 时代的落地应用 了解详情
写点什么

AgileChina2009 演讲人、极限编程创始人 Kent Beck 谈“设计困境”

  • 2009-08-27
  • 本文字数:1271 字

    阅读完需:约 4 分钟

软件设计需要解决一系列相互矛盾的需求,这也是为什么会有很多人拥有不同的设计思路,而这些思路在某些场景下又都好用的原因。没有什么能让这些矛盾 消失,设计风格的好坏依赖于如何化解矛盾,哪些约束在早期满足,哪些放到后期处理。想要让设计考虑周全,第一步就得先承认世上不存在完美的设计。

约束

下面这些约束是无法去除的:

  • 成本。设计应尽可能降低开发成本,包括短期成本和长期成本。
  • 先于实现。因为设计良好的特性会比设计低劣的特性成本低得多,所以应该在实现之前就完成设计。
  • 变更成本。更改设计决策的代价很高,如果只设计一次而且不再修改,就可以降低成本。
  • 收益。设计应该让收益最大化。如果能够在恰当的时机交付恰当的特性,完成既定的销售,那么从长期来看代价很高的设计,也能够创造更高的价值─尤其是当产品还处于起步阶段的时候。
  • 时间价值。成本和收益不应该在产品的生命周期内一直简单的增加。今天的一美元要比明天的一美元值钱,所以设计应该把成本推到将来,把收益放到现在。
  • 选择价值。因为软件本身存在不确定性,所以如果设计能够保证以后的开发工作有选择的余地,那么它就比那些刻板的设计更有价值。
  • 不确定的需求。你不可能事先知道设计需要支持哪些特性。正因为如此,你应该推迟设计决策,直到必需的时候再做。
  • 设计改进。你会在工作的同时,学到如何做出更好的设计。要准备好随时把你学到的东西结合进来。
  • 循序渐进方能成功。所以设计也要不断进化。
  • 不存在绝对正确的答案。对于任何一个特定的问题,都有若干组可行的设计,以及几乎无数种糟糕的设计。但即便是糟糕的设计也不是错到极点,至少短时间内还能用。

把这些约束放到一起,就组成了一个约束过多的系统。你根本找不到解决方案,举个例子来看,你可能即想尽可能减少成本,又想降低变更成本,还想在过程中学习。

在不同情况下,这些约束的强度也不同。有时候,产品的特性范围可能是非常模糊的。在为人熟知的领域中,团队基本上不会发现新的设计要素。相对于成熟 产品而言,还处于初期阶段的产品,其时间价值就尤为突出。成熟产品的长期成本对利润起着决定性作用。没有任何一组设计规则能够满足所有情况。有些价值和原 则比较通用,但是具体到实践就会迥异。

我现在提倡并实施的是响应式设计。我认为比较重要的是“不确定的需求、时间价值、选择价值、设计中的学习、循序渐进”。我把“变更成本高”这一点放 到以后去考虑。我努力以我的开发风格工作,在设计变更的时候,通过组合使用技术、社会组织、工具和普通实践来降低变更成本。其结果就是,以某些长期成本为 代价交付成果,当项目中某些不确定性被解决以后,又可以很快降低成本。

没有任何一款设计风格能够同时最小化成本,最大化收益,还能从短期长期来看都保有选择的余地。选择好哪一个约束先满足,哪些推后,就可以得出价值和过程都很明确、易于沟通的设计风格。让一切变得明确,就是讨论设计的开始。

我将会首次针对“响应式设计”作全天的培训,第一次是 9 月 4 号,在首尔;然后是9 月10 号,在北京

查看英文原文: The Design Dilemma

(注:本文原发作者博客,经作者允许后翻译发布,译者──李剑)

2009-08-27 21:482902
用户头像

发布了 197 篇内容, 共 57.7 次阅读, 收获喜欢 20 次。

关注

评论

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

八股乱背,力扣不会!下辈子远离计算机

王磊

Java java面试

MQ技术比较

周晓宁

云管理平台基本功能有哪些?适配国产化平台吗?

行云管家

云计算 信创 国产化 云管平台 云管理

百万架构师亲码的亿级流量下的分布式限流解决方案

小小怪下士

Java 程序员 高并发 秒杀

2023 KiCon Asia 11月12日 深圳见!

华秋电子

kicad

手敲,Ascend算子开发入门笔记分享

华为云开发者联盟

人工智能 华为云 算子开发 华为云开发者联盟 自定义算子

云小课|MRS基础操作之集群健康检查

华为云开发者联盟

大数据 后端 华为云 华为云开发者联盟 华为云云小课

聊聊技术之外的面试问题-上

老张

面试 职业规划 职业发展

关系数据库SQL

Frank

sql

API接口安全运营研究

Noah

API接口文档 API 安全 API接口安全

亚马逊云科技2023柏林峰会主题演讲总结

亚马逊云科技 (Amazon Web Services)

Amazon AIGC

WorkPlus定制化的局域网会议软件,提供安全稳定的会议体验

BeeWorks

当 AI 成为“逆子”;强化学习之父联手传奇程序员丨 RTE 开发者日报 Vol.62

声网

节能减排 | AIRIOT智慧工厂节能管理解决方案

AIRIOT

物联网 智能工厂

使用 Databend Kafka Connect 构建实时数据同步

Databend

好用的图书阅读器 OmniReader Pro激活中文版

胖墩儿不胖y

Mac软件 图书阅读工具 图书阅读

安全高效的政企内部通讯解决方案WorkPlus IM平台

BeeWorks

【数据库审计】2023年数据库审计厂家汇总

行云管家

数据库 数据库审计 等保合规

WorkPlus即时通讯app打通业务与生态,实现高效管理与协同

BeeWorks

优化模型之“显示置信度”

矩视智能

深度学习 机器视觉

企业门户的必备选择,WorkPlus的定制化解决方案

BeeWorks

测试小白必掌握软件测试十大原则

优测云服务平台

软件测试 测试技术 软件测试工具 软件测试技能 测试能力

超越React,JS代码体积减少90%!它为何是2023年最好的Web框架?

互联网工科生

Vue React Web框架 Astro

第一个程序:HelloWorld——IDEA 使用

小齐写代码

WorkPlus国产化即时通讯工具:安全可靠的国内沟通利器

BeeWorks

利用美国服务器增加线上业务的客户人群

一只扑棱蛾子

服务器 美国服务器

AgileChina2009演讲人、极限编程创始人Kent Beck谈“设计困境”_研发效能_Kent Beck_InfoQ精选文章