读书笔记-程序员修炼之道-注重实效的哲学(二)

  • 石头汤与煮青蛙

    • 村民的角度
  • 足够好的软件
    • 知道何时止步

石头汤与煮青蛙

 三个士兵从战场返回家乡,在路上饿了。他们看见前面有村庄,就来了精神—他们相信村民会给他们一顿饭吃。但是当他们到达那里,却发现门锁着,窗户也关着。经历了多年战乱,村民们粮食匮乏,并把他们有的一点粮食藏了起来。

 士兵们并未气馁,他们煮开一锅水,小心的把三块石头放进去。吃惊的村民走出来望着他们。

 “这是石头汤。”士兵们解释说。“就放石头吗?”村民们问。“一点没错 — 但有人说加一些胡萝卜味道更好… …”一个和村民跑开了,又很快带着他储藏的一篮胡萝卜回来。

 几分钟之后,村民们又问:“就是这些了吗?”

 “哦!”士兵们说:“几个土豆会让汤更实在。”又一个村民跑开了。

 接下来的一小时,士兵们列举了更多让汤更鲜美的配料:牛肉、盐、香菜等等,每次都会有一个不同的村民回去搜寻自己的私人储藏品。

 最后他们煮出来一大锅热气腾腾的汤。士兵们拿掉石头,和所有村民一起享用了一顿美餐,这是他们所有人几个月来第一次吃饱饭。

分析:有两层寓意。士兵戏弄了村民,利用村民的好奇,从他们那里弄到了事物。但是更重要的,士兵充当催化剂,把村民们团结起来,和他们一起做到了他们自己本来做不到的事情 — 一项协作的成果。

 项目开始,你请求许可去解决问题,但是遭到了拖延漠视,大家都捍卫自己的利益,要求设立讨论组,事情变得复杂化。

 这正是拿出石头的时候。设计出你可以合理要求的东西,好好开发它。一旦完成,就拿给大家看,让他们大吃一惊。然后说“要是我们增加… … 可能会更好。”

 人们发现,参与正在发生的,成功要更容易。

 让他们瞥见未来,你就能让他们聚集在你周围。

Be a Catalyst for Change

做变化的催化剂

村民的角度

 另一方面,石头汤的故事也是关于温和渐进的欺骗的故事。

 过于集中注意力,忘了世界的其他部分。我们也是这样,事情会在不知不觉中,悄悄爬到我们身上。

 有这样的情况,项目慢慢的、不可改变的、完全失去控制。很多可怕性的灾难都是从微小的事情开始的,大多数项目的拖延都是一天一天发生的。系统一个特性一个特性的偏离规范,一个又一个的补丁被打在某段代码上,直到最初的代码一点没有留下。

 小事情常常会破坏了士气和团队。

Remember the Big Picture

记住大图景

 要持续不断的观察周围发生的事情,而不只是你自己在做的事情。

足够好的软件

 你所制作的系统的范围和质量应哎作为系统需求的一部分规定下来。

MakeQuality a Requirements Issue.

使质量成为需求问题

 你常常会在处于需要进行权衡情形中。如果你给用户某样东西,让他们及早的使用,他们的反馈常常会把你引向到更好的最终解决方案。

知道何时止步

 在某些方面,编程就像是回话。你从空白的画布和某些基本原料开始,通过知识、艺术和技艺的结合去确定前者做些什么。

 你勾画出全景,绘制背景,然后填入各种细节。你时不时的后退一步,用批判的眼观观察你的作品。常常,你会扔掉画布,重新再来。

 但艺术家们会告诉你,如果你不懂得应用何时止步,所有的辛苦劳动就会遭到毁坏。如果你一层又一层、细节重复细节,绘画就会迷失在绘制之中。

 不要因为过度修饰和过于求精而损坏完好的程序。继续前进,让你的代码飞一会,它也许不完美,但不用担心,它不可能完美。

时间: 2024-10-16 15:14:48

读书笔记-程序员修炼之道-注重实效的哲学(二)的相关文章

读书笔记-程序员修炼之道-注重实效的哲学(一)

我的源码让猫给吃了 负责 软件的熵 灭火 我的源码让猫给吃了 在所有的弱点中,最大的弱点就是害怕暴露弱点. -J.B 依据你的职业发展.你的项目和你每天的工作,为你自己和你的行为负责这样一种观念,是注重实效的哲学的一块基石. 注重实效的程序员对他或者她自己的职业生涯负责,并且不害怕无知和错误. 发生错误的事情,我们要设法尽可能职业的吃力他们.这意味着诚实和坦率,我们可以为自己的能力自豪,但对于我们的缺点和我们的无知以及我们的错误,我们必须诚实. 负责 责任是你主动承担的东西,你承诺确保某件事情正

读书笔记-程序员修炼之道-注重实效的哲学(三)

你的知识资产 知识资产 经营你的资产 目标与建议 学习的机会 批判的思考 网络上请教别人的礼节与教养 你的知识资产 知识上的投资总能得到最好的回报. ---本杰明-富兰克林 我们的知识和经验是我们最重要的职业财富. 遗憾的是,它们是有时效的资产.随着新技术.语言及环境的出现.你的知识会变得过时.不断变化的市场驱动力也许会使你的知识和经验变得陈旧或者无关紧要. 这种事情可能会很快的发生. 我们知识的价值降低,对导致我们的价值也在降低.我们要阻止这样的事情,绝对不让它发生. 知识资产 程序员所知道的

读书笔记-程序员修炼之道-注重实效的哲学(四)

交流 知道你想要说什么 了解你的听众 选择时机 选择风格 让文档美观 做倾听者 回复他人 交流 我相信,被打量比被忽略要好 问题是,不止是你有什么,还要看你怎么包装它,并且如何将它告诉别人.否则就算你拥有最好的主意.最漂亮的代码.或者是最注重实效的想法,最终也会毫无结果. 没有有效的交流,一个好的想法就只是一个无人关心的孤儿. 知道你想要说什么 在工作中,最困难的部分就是确切地清楚知道你想要说什么. 规划你想要说的东西,写出大纲.然后问自己:"这是否讲清了我要说的所有的内容?"提炼他,

读书笔记-程序员修炼之道-序

前言 我们应该成为什么样的程序员 注重实效的程序员具备的特征 注重实效的个体大型的团队 它是一个持续的过程 前言 程序员修炼之道这本书已经通读了一遍,获益良多,但还是不甚理解,所以在重读一遍,顺便做一下笔记.由于自己水平有限,只能摘抄一下重要的词句了. 我们应该成为什么样的程序员 我们的知识背景源自于对计算机科学基本原理的理解,而我们的经验来自广泛的实践项目.理论与实践相结合使我们强大起来. 我们不应该局限于任何特定的方案,而是应该拥有足够广博知识背景和经验基础,这能够让我们在特定的情况下选择更

《程序员修炼之道》收获整理(二)

曳光弹 曳光弹本意是指在黑夜里向地方区域发射的弹药,这里用到了类比(感觉有点暴力),它适用于新的项目,特别是我们从未构建过的东西时.我们面对的问题有: 1.没有新项目的开发经验 2.用户需求不明确,表达不清 3.开发时会面对大量的未知的事物:新的算法.技术.库或者语言 4.开发过程中需求和开发环境可能改变 解决方法: 1.经典的做法是把系统定死,制作大量文档,列出详细的需求,确定所有的未知因素,限定环境.很显然,这种做大的难度非常大而且没有灵活性 2.然而,注重实效的程序员会使用更加灵活的方法:

读书笔记2014第4本:程序员修炼之道-从小工到专家(第七、八章)

第七章 在项目开始之前 36 需求之坑不为收集需求,挖掘它们.有一种能深入了解用户需求,却未得到足够利用的技术:成为用户.与用户一同工作,以像用户一样思考.描述需求文档时,要使用项目术语表.用WEB来收集和管理需求. 37 解开不可能解开的谜题遇到不可能解决的问题时,退一步问问自己如下问题:1)有更容易的方法吗?2)你是在设法解决真正的问题,还是被外围的技术问题转移了注意力?3)这件事情为什么是一个问题?4)是什么使它如此难以解决?5)它必须以这种方式完成吗?6)它真的必须完成吗? 38 等你准

[读书笔记—程序员]《高效程序员的45个习惯:敏捷开发修炼之道》- 苏帕拉马尼亚姆,亨特

虽然不记得阅读本书用了多久,但是整理本书的读书笔记用了两个小时的时间,因为本书的大部分内容对于笔者来说都是新知识,很难进行归纳总结 本书所讲的是程序员应具有的工作态度和在团队中作为开发者和领导者具备的各种"敏捷的"习惯.虽然本书对于程序员的硬实力(本书讲解的编程语言是面向对象类语言,但是讲解的代码非常少)帮助不大,但是对于程序员应该具备的软实力的培养和提高有极大的帮助,是每位程序员都应该反复阅读的书籍. 第一章 敏捷-高效软件开发之道 什么是敏捷开发方法? 2001年2月,17位志愿者

《程序员修炼之道》读书笔记②

概述 花了几天时间看完了程序员修炼之道,有很多感悟,记录于此,供自己开发时参考,相信对其他人也有用. 值得一提的是,这本书写的非常好,很多大牛在走了很多弯路之后再读这本书都很感慨没有早些读. <程序员修炼之道>读书笔记① 弯曲,或折断 解耦与得墨忒耳法则 1.函数的得墨忒耳法则规定,某个对象的任何方法都应该只调用属于以下情形的方法:它自身:传入该方法的任何参数:它创建的任何对象:任何直接持有的组件对象. 2.委托服从得墨忒耳法则,从而减少了耦合. 元程序设计 1.元数据是关于数据的数据:要用元

《程序员修炼之道:从小工到专家》读书笔记

<程序员修炼之道>读书笔记 之所以选择这本书作为第一本书,是因为这本书描述了一些程序员编写大型项目时所应该遵循的最基本的原则和可以使用的最基本的工具.它没有描述某一种特定的语言.特定的算法,也没有推荐一种编程方法作为万灵药,而是介绍了实用主义的思想,并介绍了一整套方法论帮助程序员与团体避免错误.避免浪费无谓的时间,更有效地开发程序. 在此前的学习中,我所学习的知识往往是一个个点状的知识.学校安排了c语言.数据结构等课程,我自学过一点点cpp.python,甚至了解过一些web架构,但从来没有一