1700490980
1700490981
5.1.3 推迟下结论
1700490982
1700490983
我们对定论的渴望意味着我们总是努力消除不确定性。但是过早地下结论减少了你的选择,甚至可能消除了成功的选择。
1700490984
1700490985
在软件项目或者任何一门学科中做某种探索性或创新性的项目时,一般每天你都会学习一点新知识。你会逐渐了解用户、项目本身、团队和技术,如图5-2所示。
1700490986
1700490987
1700490988
1700490989
1700490990
图5-2 随时间变化的项目知识
1700490991
1700490992
这意味着在项目的末尾时你会达到智力高峰,而在项目开始时则是最无知的。因此,你想尽快做决定吗?不。你想尽量延迟下结论,以便于随后有更好的决策。但是,这意味着关键事情可能会在很长时间内处于未决状态,会让许多人非常不舒服。
1700490993
1700490994
顶住压力。你会做出决策,事情会解决,只不过不是今天。
1700490995
1700490996
诀窍19
1700490997
1700490998
适应不确定性。
1700490999
1700491000
敏捷软件开发包含了适应不确定性的内容。在早期,你无法知道项目结束日期究竟是哪一天。你不能百分之百地确信哪些功能会出现在下一个迭代中。你不知道一共会有多少个迭代。这些都没有问题,你需要适应不确定性。随着项目进展,你会逐步找到答案,最终一切都有了答案。
1700491001
1700491002
当然,你可以采取一些具体的措施来减少不确定性。你可以与同伴展开讨论,上Google搜索更多信息或者构建一个原型,等等。虽然这些措施多多少少都有些作用,但都不是解决办法。总有一些元素是不确定的,这也不是坏事。不停地探索这个问题,但如果还没准备好的话,不要着急确定细节。要适应你不知道的事实。
1700491003
1700491004
通过明确的概率进行猜想。
1700491005
1700491006
Guess with explicit probabilities.
1700491007
1700491008
对于一些你不确定但别人必须知道的事情,如上线日期,你可以设定一个“目标”日期,并注明你对估计的信心值。也就是说,你可以报告一个目标日期,如十月一日,实现概率为37%。但是在报告一个概率为80%的日期时一定要慎重。人们总是把这种说法当作“几乎肯定”,而没有留意还有20%的失败概率。至少你自己要保持清醒的头脑。
1700491009
1700491010
不过,也要知道,让团队里的成员适应不确定性是非常非常困难的。他们习惯于不顾一切地寻求定论,事事如此。请尽量教育他们,但也要准备好面对他们的抗拒。
1700491011
1700491012
5.1.4 难以回忆
1700491013
1700491014
最后,请记住你的记忆力并不是很好。记忆是靠不住的,旧的记忆会随着时间改变,这反而会让你以为某些误解和偏见是对的。不要仅仅依赖你的记忆。中国有句谚语说得好:好记性不如烂笔头。
1700491015
1700491016
诀窍20
1700491017
1700491018
信任记录而不是记忆,每一次思维的输出都是一次输入。
1700491019
1700491020
通过某种现实凭据来增强你的记忆。不论是你写的笔记,还是与其他人的交谈在他们的脑海中留下的记忆,你需要一些东西来确保你的记忆不会与事实相去甚远。
1700491021
1700491022
实践单元
1700491023
1700491024
□ 列举出你所具有的认知偏见。我们都有自己的问题。哪些是你特别容易犯的?
1700491025
1700491026
□ 留意一下,你在自己的工作生涯中曾目睹过多少极其不可能的事件发生。事后看来,它们有多么不可能呢?〔10〕
1700491027
1700491028
□ 保留工程师笔记,包括设计会议、编码问题和解决方案,等等。每次返回去要用的时候,在较早的条目上做一标记。
1700491029
[
上一页 ]
[ :1.70049098e+09 ]
[
下一页 ]