- 浏览: 13358 次
最新评论
《高效程序员的45个习惯――敏捷开发修炼之道》 读书笔记(三)
2011年02月13日
《高效程序员的45个习惯――敏捷开发修炼之道》 读书笔记(三)
读书笔记2011-02-13 03:46:11阅读0评论0 字号:大中小 订阅 第三章 学无止境
即使你已经在正确的轨道上,但如果只是停止不前,也仍然会被淘汰出局。
――Will Rogers
习惯五:跟踪变化
BEAST:“软件技术的变化如此之快,势不可挡,这是它的本性。继续用你熟悉的语言做你的老本行吧,你不可能跟上技术变化的脚步。”
ANGEL:“跟踪技术变化。你不需要精通所有技术,但需要清楚知道行业的动向,从而规划你的项目和职业生涯。”
“唯有变化是永恒的。”
如果只是掌握了工作中需要的技术并不够。那样的工作也许几年之后就不再有了――它会被外包或者会过时,那么你也将会出局。
如何才能跟上技术变化的步伐呢?下面是一些建议。
迭代和增量式的学习。每天计划用一点时间来学习新技术,它不需要很长时间,但需要经常进行。记下那些你想学习的东西。然后在计划的时间中深入研究它。
了解最新行情。阅读社区讨论和邮件列表,可以了解其他人遇到的问题,以及他们发现的很酷的解决方案。选择一些公认的优秀技术博客,经常去读一读,以了解那些顶尖的博客作者们正在关注什么。
参加本地的用户组活动。
参加研讨会议。
如饥似渴地阅读。找一些关于软件开发和非技术主题的好书,也可以是一些专业的期刊和商业杂志,甚至是一些大众媒体新闻。
切身感受
你能嗅到将要流行的新技术,知道它们已经发布或投入使用。如果必须要把工作切换到一种新的技术领域,你能做到。
平衡的艺术 许多新想法从未变得羽翼丰满,成为有用的技术。即使是大型、热门和资金充裕的项目也会有同样的下场。你要正确把握自己投入的精力。
你不可能精通每一项技术,没有必要去做这样的尝试。只要你在某些方面成为专家,就能使用同样的方法,很容易地成为新领域的专家。
你要明白为什么需要这项新技术――它试图解决什么样的问题?它可以被用在什么地方?
避免在一时冲动的情况下,只是因为想学习而将应用切换到新的技术、新的框架或者新的语言。在做决策之前,你必须评估新技术的优势。开发一个小的原型系统,,是对付技术狂热者的一剂良药。
习惯六:对团队投资
BEAST:“不要和别人分享你的知识――自己留着。你是因为这些知识而成为团队中的佼佼者,只要自己聪明就可以了,不用管其他失败者。”
ANGEL:“提供你和团队学习的更好平台。通过午餐会议可以增进每个人的知识和技能,并帮助大家聚集在一起进行沟通交流。唤起人们对技术和技巧的激情,将会对项目大有裨益。”
团队中的开发者们各有不同的能力、经验和技术。每个人都各有所长。不同才能和背景的人混在一起,是一个非常理想的学习环境。
在一个团队中,如果只是你个人技术很好还远远不够。如果其他团队成员的知识不够,团队也无法发挥其应有的作用:一个学习型的团队才是比较好的团队。
如果你参加了一个课程或者研讨班之后,所学的知识如果不用,往往就会忘记。所以,你需要和其他团队成员分享所学的知识,把这些知识引入团队中。
找出你或团队中的高手擅长的领域,帮助其他的 团队成员在这些方面迎头赶上。
每个人都比你厉害吗?嗯,那太好了!
著名的爵士吉他手Pat Methany说过这样一句话:“总是要成为你所在的那个乐队中最差的乐手。如果你是乐队中最好的乐手,就需要重新选择乐队了。我认为这也适用于乐队之外的其他事情。”
为什么是这样呢?如果你是团队中最好的队员,就没有动力继续提高自己。如果周围的人都比你厉害,你就会有很强的动力去追赶他们。你将会在这样的游戏中走向自己的顶峰。
切身感受
这样做,会让每个人都觉得自己越来越聪明。整个团队都要了解新技术,并指出如何使用它,或者指出需要注意的缺陷。
平衡的艺术 读书小组逐章一起阅读一本书,会非常有用,但是要选好书。
不是所有的讲座都会引人入胜,有些甚至显得不合时宜。不管怎么样,都要未雨绸缪。诺言在建造方舟的时候,可并没有开始下雨,谁能料到后来洪水泛滥呢?
尽量让讲座走入团队中。如果午餐会议在礼堂中进行,有餐饮公司供饭,还要使用幻灯片,那么就会减少大家接触和讨论的机会。
坚持有计划有规律地举行讲座。持续、小步前进此案时敏捷。稀少、间隔时间长的马拉松式会议非敏捷也。
如果一些团队成员因为吃午饭而缺席,用美食引诱他们。
不要局限于纯技术的图书和主题,相关的非技术主题(项目估算、沟通技巧等)也会对团队有帮助。
午餐会议不是设计会议。总之,你应专注讨论那些与应用相关的一般主题。具体的设计问题,最好是留到设计会议中去解决。
习惯七:懂得丢弃
BEAST:“那就是你一贯的工作方法,并且是有原因的。这个方法也很好地为你所用。开始你就掌握了这个方法,很明显它就是最好的方法。真的,从那以后就不要在改变了。”
ANGEL:“学习新的东西,丢弃旧的东西。在学习一门新技术的时候,要丢弃会阻止你前进的就习惯。毕竟,骑车要比马车车厢强得多。”
敏捷 的根本之一就是拥抱变化。既然变化是永恒,你就不可能一直使用相同的技术和工具。
Expensive mental models aren't discarded lightly 根深蒂固的习惯不可能轻易地就丢弃掉 在学习一门新技术的时候,多问问自己,是否把太多旧的态度和方法用在了新技术上。学习面向对象编程和学习面向过程编程是截然不同的。
打破旧习惯很难,更难的是自己还没意识到这个问题。丢弃的第一步,就是要意识到你还在使用过时的方法,这也是最难的部分。另一个难点就是要做到真正地丢弃旧习惯。
切身感受
新技术会让人感到有一点恐惧。你确实需要学习很多东西。已有的技能和习惯为你打下了很好的基础,但不能依赖它们。
平衡的艺术 沉舟侧畔千帆过,病树前头万木春。要果断丢弃就习惯,一味遵循过时的旧习惯会危害你的职业生涯。
不是完全忘记就到习惯,而是只在使用适当的技术才使用它。
对于所使用的语言,要总结熟悉的语言特性,并且比较这些特性在新语言或新版本中有什么不同。
习惯八:打破砂锅问到底
BEAST:“接受别人给你的解释。别人告诉你问题出在了什么地方,你就去看什么地方。不需要再浪费时间去追根究底。”
ANGEL:“不停地问为什么。不能只满足于别人告诉你的表面现象。要不停地提问直到你明白问题的根源。”
当你受到那些压力的时候,也许会觉得受到了威胁,不想去深入了解问题,而且别人告诉你的已经够深入了。然而,为了解决问题,你需要很好地了解系统的全局。你需要查看所有拟认为和问题相关的部分――及时其他人觉得这并不相干。
在计算机世界中,有很多问题都会影响你的应用系统。为了解决问题,你需要知道许多可能的影响因素。当找人询问任何相关的问题是,让他们耐心地回答你的问题,这是你的职责。
切身感受
这就好比是从矿石中采掘贵重的珠宝。你不停地筛选掉无关的物质,一次比一次深入,直到找到发光的宝石。你要能感觉到真正地理解了问题,而不是只知道表面的症状。
平衡的艺术 你可能会跑题,问了一些与主题无关的问题。就好比是。如果汽车启动不了,你问是不是轮胎出了问题,这是没有任何帮助的。问“为什么”,但是要问到点子上。
当你问“为什么”的时候,也许你也会被反问:“为什么你问这个问题?”在提问之前,想好你提问的理由,这会有助于你问出恰当的问题。
“这个,我不知道”是一个好的起点,应该有此进行更进一步的调查,而不应该在此戛然而止。
习惯九:把握开发节奏
BEAST:“我们很长时间没有进行代码复审,所以这周会复审所有的代码。此外,我们也要做一个发布计划了,那就从星期二开始,用3周时间,做下一个发布计划。”
ANGEL:“解决任务,在事情变得一团糟之前。保持事件之间稳定重复的间隔,更容易解决常见的重复任务。”
在许多 不成功的项目中,基本上都是随意安排工作计划,没有任何的规律。那样的随机安排很男处理。你根本不知道明天将会发生什么。
很多敏捷实践必须一直进行,它贯穿于项目的整个生命周期。有人说,上帝发明了时间,就是为了防止所有事情同时发生。因此我们需要更具远见,保持不同的开发节奏,这样敏捷项目的所有事情就不会突然同时发生,也不会随机发生,时间也不会不可预知。
时间盒
敏捷开发者可以从多方面得到反馈:用户、团队成员和测试代码。这些反馈会帮助你驾驭项目。但是时间本身就是一个非常重要的反馈。
许多的敏捷技巧来源于时间盒――设定一个短时的期限,为任务设定不能延长的最终期限。你可以选择放弃其他方面的任务,但是最终期限是不变的。你可能不知道完成所有的任务需要多少个时间盒,但每个时间盒必须是短期的、有限的、并且要完成具体的目标。
当你遇到艰难抉择的时候,固定的时间期限会促使你做决定。你不能再讨论或功能上浪费很多时间,这些时间可以用于具体的工作。时间盒会帮助你一起前进。
鲨鱼必须不停地向前游,否则就会死亡。在这方面,软件项目就像是鲨鱼,你需要不停地前进,同时要清楚自己的真实进度。
最大的节拍就是迭代时间,一般是1~4周的时间。不管你的一个迭代是多长,都应该坚持――确保每个迭代周期的时间相同很重要。运用有规律的开发节奏,会更容易达到目标,并确保项目不停止前进。
切身感受
项目开发需要有一致和稳定的节奏。编辑,运行测试,代码复审,一致的迭代,然后发布。如果知道什么时候开始下一个节拍,跳舞就会更加容易。
平衡的艺术 在每天结束的时候,测试代码,提交代码,没有残留的代码。
不要搞得经常加班。
以固定、有规律的长度运行迭代。也许刚开始你要调整迭代的长度,找到团队最舒服可行的时间值,但之后就必须要坚持。
如果开发节奏过于密集,你会精疲力竭的。一般来说,当与其他团队(或组织)合作时,你需要减慢开发节奏。因此人们常说,互联网时代发展太快,有害健康。
有规律的开发节奏会暴露很多问题,让你有更多鼓起勇气的借口。
就像减肥一样,一点点的成功也是一个很大的激励。小而可达的目标会让每个人全速前进。庆祝每一次难忘的成功:共享美食和啤酒或者团队聚餐。
发表评论
-
C#写的COM组件注册问题兼论微软Regasm注册的BUG
2012-07-03 13:43 3665有时间的话,我会 ... -
Flex style - CSS 的使用
2012-07-02 12:14 627Dan Orlando, 软件架 ... -
Flex与Javascript之间的交互
2012-07-02 12:14 507最近做的一个项目要用到Flex与Javascrip之间的交 ... -
Flex 拖拽范例
2012-07-02 12:14 600Flex由于在其Framwork里加入了DragDrop管 ... -
Adobe Flex UIComponent LifeCycle
2012-07-02 12:14 656Adobe Flex UIComponent L ... -
实现FLEX 通过AMF跟PHP通信
2012-07-01 09:48 568AMF flex一种远调用 ... -
Flex style - CSS 的使用
2012-07-01 09:48 636Dan Orlando, 软件架 ... -
flex+java整合开发
2012-07-01 09:48 533用Flash Builder 4 beta ... -
Flex学习笔记(1)
2012-07-01 09:48 7181.模块化Module 优点:主应用程序开始时不需马 ... -
[推荐]12-《PHP和MySQL web开发》第6章 面向对象的PHP 学习笔记
2012-06-30 16:11 634[推荐]12-《PHP和MySQL web开发》第6章 面向对 ... -
C++Directx11开发笔记二:Direct3D基础设备的初始化
2012-06-30 16:11 1543C++Directx11开发笔记二:Direct3D基础设备的 ... -
《移动应用的设计与开发》读书笔记
2012-06-30 16:11 1239《移动应用的设计与开 ... -
《敏捷软件开发(原则、模式与实践)》笔记
2012-06-30 16:11 768《敏捷软件开发(原则、 ...
相关推荐
第1章 敏捷——高效软件开发之道 第2章 态度决定一切 1. 做事 2. 欲速则不达 3. 对事不对人 4. 排除万难,奋勇前进 第3章 学无止境 5. 跟踪变化 6. 对团队投资 7. 懂得丢弃 8. 打破砂锅问到底 9. 把握开发节奏 第...
自己总结的《高效程序员的45个习惯》,把书中自己感觉较好的段落摘抄下来,稍稍加了点自己的想法,挺好的...
高效程序员敏捷开发修炼之道
敏捷开发修炼之道-成就高效程序员电子书汇总资源目录:【】abbr_9c1672d5517e8e959122038e37723887【】CodeIgniter【】java敏捷开发【】Scrum敏捷式开发团队培训【】应用Rails进行敏捷Web开发(中文版)第三版【】...
高效程序员45个习惯,为你的个人拓展提供发展方向
高效程序员的45个习惯 英文完整版 V.Subramaniam, A.Hunt - Practices of an Agile Developer - Working in the Real World. 2006.pdf
高级程序员的45个好习惯,很多很经典的习惯有助于你的开发之路
“项目启动了一段时间之后,你应该进入一种舒适的状态,团队和客户建立了一种健康的富有创造性的关系。 突发事件应极少发生。客户应该能感觉到,他们可以在... “高效程序员的45个习惯:敏捷开发修炼之道”。 iBooks.
程序员面试宝典+读书笔记
高效程序员的10个习惯,养成好习惯,工作效率高
本书简明实用、见解深刻,总结了高效程序员在开发过程中的45个个人习惯、思想观念和方法,有助于开发人员在开发进程、编码工作、开发者态度、项目和团队管理,以及持续学习等5个方面积极修炼。通过学习这些内容,...
听说程序员的修炼笔记很好,自己看的过程中,感觉很多还不懂,于是在看第一遍的时候将自己觉得第一遍可以的地方给记下来
优秀程序员需要具备的习惯,如果能够达到以上要求,it界必然有你一席之地。
高效程序员的十个习惯 好书分享,提高开发效率。
个人读书笔记,学习共享,希望每个苦恼于代码一坨坨混乱不堪的程序员都能学习. * 整洁代码的意义? 可读性,可维护性。 * 如何写出整洁代码? 1.只做一件事 2.不重复 3.有表达力 * 整洁代码的态度要求,要遵守...
程序员修理之道(kindle版本),适合kindle电子书阅读。 本书直击编程陈地,穿过了软件开发中日益增长的规范和技术藩篱,对核心过程进行了审视――即根据需求,创建用户乐于接受的、可工作和易维护的代码。本书包含...
程序员的思维修炼 开发认知潜能的九堂课.pdf
正在自学黑马程序员Java全套,目前只学了Javase,接下来是Javaweb,把自己整理的笔记分享一下。