《黑客与画家》读书笔记

如果某一天你想要去赚大钱,那么请记住这一点,因为这是创业公司能够成功的原因之一。大公司为了避免设计上的灾难,选择了减少设计结果的标准差。但是当你排斥差异的时候,你不仅将失败的可能性排除在外,也将获得高利润的可能性排除在外。这对大公司来说不是问题,因为生产特别优秀的产品不是它们的获胜手段。大公司只要做大不太烂,就能赢。

公司大到一定程度之后,更加希望稳定的可重复的产出,慢慢大家都会趋于稳定,不改变现有的系统。通常来说,创新和稳定肯定是冲突的,一旦选择的稳定,创新的积极性慢慢就会丧失。

所以,viaweb 的开发人员总是与客服人员保持密切联系。客服人员坐在离程序员只有 9 米的地方,知道自己可以随时打断程序员的工作,提交新证实的 bug 的报告。遇到重大 bug,我们就算在开董事会,也会马上回来修改程序。
我们这种方式让所有人都感到满意。客户很高兴,拨打厂商服务热线是免费的,而且还被当做通风报信的人,受到郑重对待。客服人员也喜欢这样,因为这使得他们可以帮助用户,而不是对着用户读操作手册。程序员也喜欢这样,因为他们能够再现 bug,而不是通过模糊不清的二手报告了解 bug。
...... 客户支持实际上就是质量监控,也是某种程度上面的市场营销。除了记录 bug,客服人员还必须了解相关知识,回答与 bug 相关的一些问题,解释令使用者迷惑不解的功能等。有时,他们也扮演了使用者的代理人,我们会问他们哪个新功能是用户更想要的,他们总是能做出正确的回答。

短线沟通,及时响应的重要性。程序员的成就感,有时候不一定是来自于程序写的多好,能帮人解决问题有时候也会有成就感。短线能增加成就感。

提高软件开发质量的关键在于开发的时候全身贯注,而不是降低开发速度。

这个和现代的敏捷开发做的事情类似,保证开发人员专注。

"帕金森定律" 后来成为这些表现形式的代名词,它包括很多内容,其中有一条就是『因为你必须做到,所以你能够做到』。
可测量性和可放大性......如果你有一个令你感到安全的工作,你是不会致富的,因为没有危险,就几乎等于没有可放大性。

可测量和可放大性,一种衡量工作重要性的指标。

假定软件有两个候选的新功能,它们创造的商业价值完全相同,那么我们总是选择较困难的那个功能。不是因为这个功能能带来更多的收入,而是因为它比较难。我们很乐于迫使那些又大又慢的竞争对手跟着我们一起走进沼泽地。 
创业公司就像游击队一样,喜欢选择不易生存的深山老林作为根据地,政府的正规军无法追到那种地方。我还记得创业初期我们是多么筋疲力尽,整天都为一些可怕的技术难题绞尽脑汁。但是,我还是感到相当高兴,因为那些问题连我们都觉得这么困难,那么竞争对手就更会认为是不可能解决的。

难才是体现价值的地方。

注意,我说的是“用户需要的设计”,而不是“用户要求的设计”。我不想让读者产生一种印象,认为设计师就像厨师一样,顾客点什么菜就一模一样做出来。艺术的各个领域有着巨大的差别,但是我觉得任何一个领域的最佳作品都不可能由对用户言听计从的人做出来。

所谓的产品设计。应该是设计用户需要的,而不是用户要求的。