1、系统架构师扮演着一个讲故事的人。他们把未来系统的承诺和远景活灵活现地展现出来,在项目混乱的早期阶段,这非常有价值。(P5);
2、沟通的现象不依赖于它传送什么,而是依赖对于接收到它的人们发生了什么。(P7)那么,你怎么知道你的倾听者收到了什么呢?在会话中,它会返回消息,于是你就能使自己确信他已真正理解你想要表达的意思(至少是已足够接近了)。(P9)
3、沟通的成功依赖于发送者和接受者有可以引用的共享体验(share experience)(P9)
4、人们在学习和精通一门新技艺时,要通过三个完全不同的行为阶段:遵循(following),突破(detaching)和流利(fluent)。(P11)
5、最好提醒自己:完全的沟通是不可能的,而且也是没有必要的。有必要的是在改进实用性的永不结束的循环中,一遍又一遍地尽性语言博弈、行动和检查反馈。(P20)
6、提升你自己对重复循环的容忍度,并且提升对那些有较低容忍度的人的容忍度。(P20)
7、编程是一个孤立的、基于灵感的、逻辑学的活动,同时它也是一个群体的工程化活动。(P24)
8、沟通的效果比沟通的形式更重要。(P30);
9、结对编程(programming in pair)是一项两个人坐在一起共同编写他们的程序的技术。(P31)
10、在那 3 年期间,这个团队每 3 周都会交付一个新功能。(P35)
11、选择的幻象:
Pattelli-Palmarini做了另一个对比试验:第一次试验,给了人们300元,让他们在有保证地再得到100元和50%的机会再得到200元之间 出选择。人们选择有保证地得到100元。
在第二组中,给人们500元,让他们在交出100元和有50%可能性交出200元之间做选择。人们选择有可能地失去200元。
从数学上,两者结果是一样的,有趣的是陈述不同,结果也不同。结论:人们宁可失败也要选择保守。(P63)
12、世界有着自己的结构,因此特异性总是暗示着一般性。这就是为什么在传达思想时故事能又那么强大的作用,并且这种作用往往比思想本身清晰度的作用更强大。(P68)
13、软件开发策略:最简单的优先,最难的其次。(P77)
14、人们会从清楚并且频繁的反馈中获益。(P78)
15、Shell排序:我们建立一些按照排序规则排好序的堆,但在把东西放入堆中时,并不排序。然后,我们再把每个堆分成几个更小的堆,如此重复下去,直到每个堆小到足以用眼睛或手就可以排序为止。除非一些特殊情况,我们不做最后的排序。当堆小到足以用眼睛或手就可以排序时,我们通常就把它原样留在那里,只要通过扫描堆的内容就可以找到我们感兴趣的东西。(P80)
16、聚集的人越多,他们的谈话就会变得越彼此无关。(P89)