敏捷原则中“使未完成的工作最大化”是什么意思?

fmddlmyy 2009-06-03 10:45:54
闲来翻书,有一句看不懂,向高人请教。
敏捷原则中有一条:
简单——使未完成的工作最大化的艺术——是根本的。
英文原文是:
Simplicity - the art of maximizing the amount of work not done - is essential.

其中“the art of maximizing the amount of work not done”到底是什么意思?

什么叫“使未完成的工作最大化的艺术”。书里面这一小节的内容是:
敏捷团队不会试图去构建那些华而不实的系统,他们总是更愿意采用和目标一致的最简单的方法。他们并不看重对于明天会出现的问题的预测,也不会在今天就对那些问题进行防卫。相反,他们在今天以最高的质量完成最简单的工作,深信如果在明天发生了问题,也会很容易进行处理。

这一段内容很容易理解。但是不能帮助我理解什么叫“使未完成的工作最大化的艺术”。如果什么都不做,不就是让未完成的工作最大化,这有什么艺术啊?
请高人指点。
...全文
575 12 打赏 收藏 转发到动态 举报
写回复
用AI写文章
12 条回复
切换为时间正序
请发表友善的回复…
发表回复
fmddlmyy 2009-06-05
  • 打赏
  • 举报
回复
bookbuger的解释好像更简单,也更接近本意!

Simplicity - the art of maximizing the amount of work not done - is essential.

就是说maximizing the amount of work not done 不是在说项目内部今天做啥,明天做啥。而是说做尽可能少的工作,用尽可能简单的设计满足客户需求。

这样就比较容易理解了!
bookbuger 2009-06-05
  • 打赏
  • 举报
回复
换句话来说,就是要摸清客户需求,做一个“刚刚好”的系统交付。
飞翔的阿狸 2009-06-04
  • 打赏
  • 举报
回复
学习了:)
fmddlmyy 2009-06-04
  • 打赏
  • 举报
回复
谢谢各位答复!

敏捷的基本思想还是很朴实的,也很容易理解。

我知道“只做非常必要的工作,不做不必要的工作”,也知道“工作安排上要抓住重点,把非必要的功能排除在外”,
也知道“应该在遵守设计原则的前提下,采用尽可能简单的设计,尽量把复杂的系统拆分为低耦合的模块”。
也同意“简单性是最根本”的说法。

我只是不理解“the art of maximizing the amount of work not done ”这段文字的字面意思和"Simplicity is essential"有什么逻辑关系。

slowgrace 的答复最接近我的问题。
按照slowgrace 的说法,因为要技巧性地把所有非必要的功能排除在外,就等同于技巧性地使未完成的工作最大化,这样就可以只完成非常必要的工作,就获得了简单性。

如果是这个意思,我觉得这话太拗口了。而且这个意思和“保持设计简单性”的侧重点不同,似乎更强调合理解构,抓住重点。

如果只是强调“保持设计简单性”,我觉得说成
As Simple as Possible, as Complex as Necessary
不是更容易理解吗。

呵呵,随便聊聊,我不喜欢这么难理解的话。
slowgrace 2009-06-04
  • 打赏
  • 举报
回复
the art of maximizing the amount of work not done

敏捷之所以敏捷,并不在于开发人员就比非敏捷的开发人员更高超、更熟练。

而在于开发的工作安排上能抓住重点,在于首先实现最必要的功能(包括只实现必要的重构),在于控制工作的范围,在于把非必要的功能排除在外,在于“maximizing the amount of work not done”。

这一点是敏捷之所以能敏捷的原因之一,所以它很essential。
飞翔的阿狸 2009-06-04
  • 打赏
  • 举报
回复
一开始阅读楼主这段文字的时候我也被搞糊涂了
因为我的经验告诉我如果“不看重对于明天会出现的问题的预测,也不会在今天就对那些问题进行防卫”
那么对于一个大规模的软件工程来说,很有可能导致频繁的需求变更和程序重构
那么敏捷的优势根本没有体现出来,反而会导致项目失败

后来仔细琢磨了一下,感觉是因为那段说明文字有些误导了我,反而看标题来理解可能更准确一些
“使未完成的工作最大化的艺术"其实并非不考虑整体的需求
在敏捷的过程中,可能很早就已经对某个系统进行了完整的需求分析和技术验证
在搭建完整体框架后,将整体拆解为几十个低耦合的功能模块,并分步完成——这可能就是简单的意思
这样在开发过程中只需要面对一个个简单的独立功能,而且在整体框架明确的条件下,完全不用担心其他部分的影响

所以在这个过程中,已经将未来的可能的问题最大化考虑了,这是我对这段话的理解,仅供参考
嗷嗷叫的老马 2009-06-04
  • 打赏
  • 举报
回复
路过.........学习........
slowgrace 2009-06-04
  • 打赏
  • 举报
回复
因为有的老外作者爱写废话的,呵呵。比如那本TDD的作者Kent Back就很爱瞎扯(稍有点联系的东西都能扯上),他自己也那么说自己,呵呵。

这一类型的作者通常是很有平常心的人,估计相处起来也会比较愉快:)
slowgrace 2009-06-04
  • 打赏
  • 举报
回复
[Quote=引用 7 楼 fmddlmyy 的回复:]
谢谢各位答复!

敏捷的基本思想还是很朴实的,也很容易理解。

我知道“只做非常必要的工作,不做不必要的工作”,也知道“工作安排上要抓住重点,把非必要的功能排除在外”,
也知道“应该在遵守设计原则的前提下,采用尽可能简单的设计,尽量把复杂的系统拆分为低耦合的模块”。
也同意“简单性是最根本”的说法。

我只是不理解“the art of maximizing the amount of work not done ”这段文字的字面意思和"Si…
[/Quote]

确实很拗口。如果这句话不是在书中反复出现的话,就当作权且听一下的话,不要去细究了吧。

如果反复出现的话,相信随着你阅读的深入,会看到更多的illustration
  • 打赏
  • 举报
回复
对那些没有做的工作感到兴奋,这也是敏捷的“勇气”的体现。

而不是沉迷于你做了什么。
  • 打赏
  • 举报
回复
你可以这样理解:敏捷要求你眼睛盯着还有哪些工作没有做,而不是盯着那些工作做完了。只要是做完了的工作,就一定是经过测试验证的,可以保证以后在完成其它工作时可以回归验证以前做过的工作。所以,你不应该对已经做过的工作再放过多心思。
  • 打赏
  • 举报
回复
只做非常必要的工作,不做不必要的工作——敏捷的要点

1,557

社区成员

发帖
与我相关
我的任务
社区描述
软件工程 敏捷开发
社区管理员
  • community_144
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧