《软件开发者路线图》章节试读

当前位置:首页 > 计算机网络 > > 软件开发者路线图章节试读

出版社:机械工业出版社
出版日期:2010年9月
ISBN:9787111310068
作者:Dave H. Hoover,Adewale Oshineye
页数:185页

《软件开发者路线图》的笔记-绪论 - 绪论

软件技能:
1. 成长型思维模式:如果你愿意钻研一件事,你就能做得更好,一切也将得以改善。
2. 基于你从周围世界获得的反馈,始终不断适应并作出改变的要求。
3. 一种对注重实效而非教条主义的向往,肯于牺牲理论上的纯洁性和未来的完美而达到“今天把事情做完”的意愿。
4. 一种认为分享知识胜过隐藏独享的信念。
5. 一种敢于试验并愿被证明失败的意愿。
6. 内控倾向:更愿意掌控自己的命运并为之负责,而非等待别人给我们答案。
7. 一种对于个体而非群体的关注:我们追寻的是自身的改变,而非世界的改变。
8. 包容性:一个有用的系统应该能够从软件开发社区的所有元素中识别并吸收那些最好的思想。
9. 以技能为中心,而非以过程为中心。
10. 情景学习:最好的学习方法,就是同那些使用你要学习的技能来达到某种目标的人处于同一个房间。

《软件开发者路线图》的笔记-第1页 - 前言

不知而不知其不知者,愚者也——避之
不知而知其不知者,惑者也——授之
知之而不知其知之者,寐者也——醒之
知之而知其知之者,觉者也——从之
——Isabel Burton(1831——1896)《The Life of Captain Sir Richard F. Burton》引用的阿拉伯谚语

《软件开发者路线图》的笔记-阅读列表 - 阅读列表

任何一本书,你能从中获得的最有价值的东西就是一列值得阅读的其他书目——这本书本身是这句话的优秀列子。时间长了,你会发现某些书不断地从”参考书目“中跳出来,你应把这些书移动到阅读列表的顶部。其他书会下沉。由于阅读列表实际上是个优先级队列,最终你会发现有些书已经在队列中下沉的太深,你可能永远也不会再读它们了。这很好。——这就是正确的维护豆瓣豆列的方法,而不是像很多人那样搞一个大而无当的乱糟糟”书堆“。
/*本书部分书单*/
The Craftsman:http://book.douban.com/subject/3575842/
Pair Programming Illuminated:http://book.douban.com/subject/3982413/
Situated Learning:http://book.douban.com/subject/2848628/
Etudes for Programmers:http://book.douban.com/subject/3416727/
Fifteen Craftsmen on Their Crafts:http://book.douban.com/subject/17444602/
The Creative Habit:http://book.douban.com/subject/2890137/
Mastery:http://book.douban.com/subject/4044866/
Self-theories:http://book.douban.com/subject/2252672/
Software Craftsmanship:http://book.douban.com/subject/1796505/
Better:http://book.douban.com/subject/2063893/
面向对象软件构造:http://book.douban.com/subject/1128292/

《软件开发者路线图》的笔记-第118页

不断实践
我们所知道的大师,不会仅为了做得更好而让自己专注于某项技能。实际情况是:他们热爱实践-并且正因为热爱实践所以才做得更好。事情总是相辅相成的,做得越好,他们就越喜欢反复不断实施这些基本的实践活动。

《软件开发者路线图》的笔记-结束语 - 结束语

之所以说软件开发是一门工艺,正是因为我们现在对它理解的还不够深,不足以使之成为像科学或工程那样的系统化学科。技能之所以如此重要,是因为我们对自己所做事情的了解还不足以将它写成一种可供别人直接运用并得到同样结果的格式。

《软件开发者路线图》的笔记-第26页

成长型思维模式
如果你愿意钻研一件事,你就能做得更好,一切也将得以改善。努力是使得你聪明能干的东西,而失败不过是引导你下一次尝试不同方法的激励机制。
并非每种实验和想法都是好的,但只有尝试新的想法我们才能获得真正的进步。要做的事情总是可以更多。每一次进步都可以被继续改善;每一种新的想法也会使更多的新组合成为可能。

《软件开发者路线图》的笔记-第134页 - 恒久学习

教别人是一种非常强大的学习方法——相对于学的人,这一点对于教的人来说或许更明显。俗话说:“一个人教的时候,两个人在学。”

《软件开发者路线图》的笔记-第31页 - 结论

学徒期是什么?
最基本的学习情形是这样:一个人帮助 一个知道自己。正在做什么的人,从而让他学到东西。

《软件开发者路线图》的笔记-深入挖掘 - 深入挖掘

要真正理解任何思想,你都需要重建它第一次被表达时的上下文。这样,你就可以理清经历了这么多中间人而保留下来的思想的精髓。你会一次又一次地发现,比起好多人年复一年选择性的相互引用,思想的原始来源是更好的老师。不管怎样,对一种你认为有用的思想,跟踪它的传承脉络是一次重要的练习,而且是一种会让你在今后学习新事物时获益良多的好习惯。阅读教程的时候,不要去寻找可以复制的代码,而应该寻找可用于放置新知识的思想结构。

《软件开发者路线图》的笔记-第136页

技艺不精的人常常不知道自己技艺不精。再者,越是技艺不精,你越不善于评估自己和他人的技能。这句话真是对公司GUI组某些人最精辟的总结。

《软件开发者路线图》的笔记-第26页 - 第1章 绪论

感想:
专注产生兴趣,同样的,专注也会推动进步。基于这个理论,天资不够不能成为失败的必要条件。
尝试和失败才是进步的途径。尝试,是为了得到反馈,从而得到改善自己的契机,而失败则是改善的契机之一,也是经常遇到的契机。因为一次失败便意味着一次改善。
为自己负责,寻求自我提升,需要自己去寻找提升的契机和问题的答案。

交流,是改善自我的捷径。

《软件开发者路线图》的笔记-结束语 - 结束语

大多数程序员都认为自己的水平超出平均。悲惨的事实是……大多数程序员实际上是低于平均水平的。这听起来有点违反直觉,但你可以设想这样一个比方:现在我们两个人,Dave和Ade坐在桌子边,完后Bill Gates过来加入我们,突然之间坐在桌子旁的”大多数“人的薪水都低于平均水平了。

《软件开发者路线图》的笔记-第152页

深入挖掘要真正理解任何思想,你都需要重建它第一次被表达时的上下文。这样,你可以理清经历了这么多中间人而保留下来的思想的精髓。

《软件开发者路线图》的笔记-第113页

从来就没什么“有利条件”。
如果我们放纵自己,我们将总是需要等待一些消遣或其他事情结束才能安心工作。只有那些对知识非常渴求,以至于在不利的环境下仍能坚持探索的人才会取得更大的成就。从来就没什么“有利条件”。

《软件开发者路线图》的笔记-第167页

行动指南:
1.撰写技术博客。为你正在学习的技术编写教程。“分享所学”。
2.学一门语言的方法:找一个实际问题来解决。
3.搭建沙箱,测试驱动开发。
4.浸淫技术社区,寻找指导者和同道中人。“提高带宽”。
5.结对编程。“便当会议”。
6.提问。不断的提问。
7.做玩具项目。
8.在“等待自己准备好”之前跳进深水区。
9.准备好失败。
10.维护一个提供动力的因素列表。
11.维护一个无知区域的列表。
12.参加线下聚会/技术讨论会。
13.找一个有难度的练习,每个星期重做一次。
14.阅读开源代码。
15.整理一个自己的代码工具箱。
16.建立反馈机制。找一个可以度量学习成果的量并跟踪它。
17.分析一下导致失败的模式、条件、习惯和行动。
18.找出一组常用工具并关注它们。

《软件开发者路线图》的笔记-第166页

《Apprenticeship Patterns:Guidance for the Aspring Software Craftsman》
第一章 绪论
什么是软件工艺?
1.“成长型思维模式”(Growth Mindset)带来一种信念:如果你愿意钻研一件事,你就能做得更好,一切也将得到改善——这是相较于另一种信念而言的:我们每个人天生都带着固定数量的禀赋,而失败就是我们天资不够的证明。
努力是使得你聪明能干的东西,而失败不过是引导你下次尝试不同方法的激励机制。
2.另一个与失败有关的价值观:一种敢于试验并被证明错误的意愿。这意味着我们可以什么都尝试。我们失败了。然后我们在下次试验中运用这些来自失败的经验。
3.基于你从周围世界获得的反馈(Feedback),始终不断适应并做出改变的要求。从你做的事情中寻找不足之处并寻求解决办法。
4.一种对注重实效而非教条主义的向往。这包括一种肯于牺牲理论上的纯洁性和未来的完美而达到“今天把事情做完”的意愿。
5.我们以技能为中心,而非以过程为中心。
6.一种心理学家称之为“内控倾向”(internal locus of control)的精神——包括掌控自己的命运并为之负责,而不是等待别人给我们的答案。
7.对“情景学习”的一种强烈偏好。这种思想是说,软件社区应该抓住“听力范围内的专家”(Expert in Earshot)。要旨是:最好的学习方法,就是同那些使用你要学习的技能来达到某种目标的人处于同一个房间里。
第二章 空杯心态
1.入门语言
在学习第一门语言的过程中,一种改善学习体验的基本方法就是找一个实际问题来解决。(建立反馈回路)
搭建一个学习沙箱,然后在里面实验。
测试驱动开发(test-driven development)技术能让你基于小步骤前进,并确保自己的假设被检验。
“找人指导”模式。最佳情形是:基于一个项目,可以经常性的与专家一起工作。另一种情形是:独立完成一个项目,但隔两周你都在午饭时把代码样本带给专家看。
浸淫社区,把知识的管道接入共享池。或者阅读总结语言精妙之处的书籍如《Effective C++》。
在非常规的方向上延伸一下语言的使用能帮你发现语言的强项和弱项。
你不应该“嫁”给特定的技术,而应该有足够宽的技术背景和经验基础。这种语言技能的拓展是向着Master般博学多艺迈出的第一小步。
2.白色腰带
学习新技能时,放下以有知识,保持空杯心态,能大大加速学习过程。
行动指南:
a.采用截然不同的范式实现同一个程序。
b.请教一位使用你所不熟悉的编程语言或技术的人,让他帮你解释一下有你这种特殊知识背景的人通常会对他们的社区产生怎样的误解。
3.释放激情
软件技师只会雇佣对软件开发工艺有强烈学习欲望的学徒。
不要让任何人压抑了你对软件工艺的兴奋——它是一种宝贵的财富,它将加速你的学习。
脑子里不要有任何“想当然”(不断提问)。
对团队注入一些兴奋因素,并对所有的事情表示疑问是你的责任。
行动指南:想想上一次你有一种想法却没有提出来是什么时候。向对方提出来并说服其帮你改进。
4.具体技能
在特定的工具和技术领域拥有具体的、可展示的能力。
做一个“玩具项目”并展示它。
5.暴露无知
明天我要让自己看起来更傻一些,而对此的感觉要更好一些。那种保持沉默并猜测到底发生了什么的做法是行不通的。
通过学习能力打造自己的名声而不是假装知道自己不知道的东西。
以一种”不知道“的姿态提问。
“专家”和“技师”:专家技能是成为技师道路上产生的副产品。技师需要不断扩展自己的知识和技能领域。
行动指南:
更新维护一个自己不甚了然的五件事列表。
6.正视无知
选出一种技能、工具或技术,积极地填补跟它有关的知识空白。
每天只有24小时,因此你必须在继续深入挖掘和转移注意力到其他技能空白上之间做出权衡。
7.深水领域
你需要提高技能和自信,为自己增加成功项目的数量和多样性。
跳进深水区吧。不可能“一直等待直到自己准备好”。
为失败做好准备并从失败中振作将为你打开怯懦者永远看不到的大门。
你需要担心的:水位高过头顶你将溺水,所以请遵循”找人指导“和”同道中人“模式寻找能提供帮助的人咨询意见建议。
行动指南:度量(按代码行数/开发者数量/独立构建过的最大代码库等尺度)自己参与过的项目并制成图,通过它你将看到自己职业前进的方向,甚至用它来做决策。
8.以退为进
退到已掌握的知识范围内,比如重新实施一个你已经非常了解的自包含任务。或者利用短暂的休息向指导者或“同道中人”寻求支持。
第三章 走过漫漫长路
1.技重于艺
在功用与外观之间找到平衡。
行动指南:
在接下来的24小时中,找机会做一点有用而不是漂亮的事情。
2.持续动力
行动指南:
写下至少15项和接下来的5项能为你提供动力的事情。然后列出5项最重要的动力因素。保存这个列表,在遇到困难时看看。
3.培养激情
采取措施来保护并培养自己对软件技艺的激情。
做点自己喜欢的事情,从工作中发掘,或者业余时间构造“脆质玩具”。
找一些“同道中人”,加入一个你需要深入学习的某样东西的本地用户组,开一个博客,阅读一些你感兴趣的博客,参加在线论坛和邮件列表来“分享所学”,启动学习小组。
“钻研名著”。
要培养激情需要设立清晰界限,基于这个界限来定义你愿意身处的工作环境。比如早早下班而团队其他人加班到很晚,退出一次恶言相向的会议,将一次消极谈话引导向充满建设性的议题,或者拒绝分发没有满足自己最低要求的代码。
行动指南:
脑海中准备三个可用于讨论的积极想法。在一天当中,如果某一次交谈开始侵蚀你的精力,就把交谈内容引导向你备好的议题之一上去。目标是接过控制权,避免被周围的负面交谈拖垮。并考虑一下改善环境的其他办法。
4.自定路线
行动指南:列举三种可以从事的工作,再对每一个列举三种可能导向的工作,如果可以再延伸一级。
第四章 准确的自我评估
1.只求最差
让周围多些水平比你更高的开发者。
加入一个更强的团队,在那里成为最弱的成员并拥有成长的空间。
作为团队最弱的一员,你应该比别人更用功。
为了弥补“只求最差”自私的一面,可以用“打扫地面”来弥补,意味着特意去做打下手的任务。
行动指南:通过提问比较你能接触到的各团队技能水平。
2.找人指导
行动指南:订阅一个邮件列表并在其中寻找耐心的老师。
3.同道中人
要让自己一直有能力问一些使整个社区吃惊的问题。
社区的健康度可以通过它对新思想的反应来衡量。
行动指南:
列举可以参与的社区,确认其中哪些可在你的城市搞线下聚会,逐一参加,并确定哪一组人最有趣。
如果没有这样的线下聚会,自己创办一个。
久而久之产生一个不定期参加聚会的成员组成的核心小组。
4.密切交往
即结对编程。有些东西只有近距离合作才能学到。
行动指南:
找来一位你所认识的,对启动或加入某一开源项目表现出浓厚兴趣的人,每周安排一个晚上和他一起做这个项目。
5.打扫地面
主动去完成简单无趣却又必须完成的任务。
第五章 恒久学习
“提高带宽”/“脆质玩具”/“使用源码”/“不断实践”
你是否在实践一种新技术,为学习新平台而构建一些东西,或者在研究一种革新性开源工具的源代码。
一些更“软”的自我发现模式:“且行且思”/“记录”/“分享”/“建立馈路”/“学会失败”
1.提高带宽
学徒时期,你必须快速地吸收那些就像从消防水管喷涌而出的、大多数软件开发者都能获取到的知识。
你必须开发一些必要的方法和技巧来高效的获取、理解、维护并应用新知识。
包括多个维度去寻求新的知识和经验。比如:
a.订阅软件开发方面的博客。考虑撰写自己的博客来审视你挑选的博客所涉及的主题。
b.follow一些软件大师,留意他们正在做什么。
c.订阅流量较高的在线邮件列表,重视别人遇到的问题并尝试回答提问。
d.加入一个新成立的对某种新技术比较兴奋的本地用户组。参加时不要老是沉默,向小组介绍自己,并向别人提供帮助。
e.直接或间接参加技术大会。
f.利用网上的在线教程、博客和视频。
你最终需要关闭这个消防水管,从而能专注于项目工作(审慎使用本模式,最终回到开发上来)。
2.不断实践
在一个可以很轻松犯错误的环境中,花点时间不受干扰地实践你的技艺。
实践过程需要结合较短的反馈回路,否则可能养成坏习惯。
行动指南:
从《编程珠玑》(Programming Pearls)《续编程珠玑》(More Programming Pearls)《Etudes for Programmers》(程序员练习曲)中找一个有难度的练习,或者自己设计一个来做,接下来四个星期里每次都重做一遍,观察自己的解决方法是如何演化的。运用这些发现,尝试找出或设计一个新的、能对自己能力产生可观影响的练习。如此反复。
3.质脆玩具
设计并构建一套玩具系统,此系统在使用的工具集(而不是功能范围)上与你在工作中构建的系统类似。
通过这种方式为失败做出预算——构建一个安全的地方用来犯错误。
在这些项目中尝试那些可能导致灾难性失败的思想和技术。
可参考的玩具例子:Tetris和Tic-Tac-Toe游戏。
建立一个个人wiki用来“记录”所学。
4.使用源码
阅读开源代码。
收集整理自己的工具盒,里面都是从其他人的代码中收集来的各种奇技。
跟踪开源项目的进展,研究实际代码的演进方式,理解某些设计决策的作用。
行动指南:
挑一个开源项目阅读其代码架构并就此写一篇博文,着重谈谈学到的新思想。
5.且行且思
行动指南:
为你的工作习惯画一张“个人实践图”。
个人补充:更新一个思考的博客。
6.记录所学
不从历史中学习的人注定重复历史。
使用博客记录所学。
每次重读它们时找到新的关联——创造性复读过程。
行动指南:用一个笔记本记录你的思想。过一段时间它将成为博客、杂志文章甚至一本书的基础。
7.分享所学
应在学徒期早期就养成定期分享所学经验的习惯。形式可以是撰写博客/跟“同道中人”一起开展“便当会议”/在技术会议上做演讲/为你正在学习的各类技术技巧编写教程。
行动指南:回想上一次学到的东西并整理成一篇博客/为一次想象中的研讨会列个提纲。
8.建立馈路
建立机制。代码复审/结对编程/认证考试/询问面试官。
无用的反馈:批评本身不是有用的反馈,因为它没有告诉你别人期待的究竟是什么/关于别人而不是关于你自己的反馈(比如“做这个吧,我在你这个年纪时也在做这个。”)
有用反馈指你能够基于它采取行动。
行动指南:从你的工作环境中找到一件你可以度量而且能够影响的事情,在一段时间内跟踪度量的结果,当它改变时问问自己这说明关于你的什么信息。
9.学会失败
你应该对导致失败的模式、条件、习惯和行动有所自知。
你不可能各方面都擅长,承认局限很重要,它迫使你有意识的应付注意力的分散并专注于自己的目标。
用私人wiki设置一组页面罗列自己的技能集合以及局限和能力边界。
行动指南:
一口气实现一个二分查找算法,写出所有能想到的测试,记录下发现的bug和问题,回到代码中修正这些问题,然后重复这一迭代过程。在你觉得代码已经完美的时候再编译并运行测试。发现你所遗漏的情况和错误。把迭代过程中学到的所有东西记下来。也可以找个朋友复查一下代码看看她还能发现点什么。
第六章 安排你的课程
1.阅读列表
维护一张阅读列表。
2.坚持阅读
3.钻研名著
向别人请教那些自己不知道的概念,以及它们出自何书,将这些书加入你的“阅读列表”。
“只读最优秀的”。成功的学徒常常关注“经久不衰的书”,然后通过上网和实验来学习这些知识如何演化。
你的阅读列表里要确保经典名著和现代的更注重实效的图书和文章混合出现。
4.深入挖掘
学会深入挖掘一些工具、技术和技艺。
深度意味着要理解导致一种设计的推动力,而不仅仅是设计的细节。
深入挖掘的另一好处是:对自己构建的系统,你可以真正理解其内部机制。
深入挖掘表现在:做调试/反编译/反向工程/阅读所有规格说明、RFC或标准。
你需要熟悉的工具:调试器(如GDB、PDB和RDB)-窥探运行中的程序内部/线级(wire-level)调试器(如Wireshark)-查看网络流量/规格说明书。
阅读第一手的资料/原始文档。
跟踪思想的传承路线,找出第一次提出时所要解决的问题及上下文环境(比如从别人一句话追溯到原始的IETF的征求意见文档)——这是一种会让你在今后学习新事物时获益良多的好习惯。
在博客里澄清和分享学到的东西。
避免成为知识面狭窄的专家。在不影响自己对软件开发各方面相对重要性的基本观点前提下,让自己获得足以解决任何问题的专业化知识。
有规律的运用这一模式,你会变成一个真正理解工具如何工作的人。、
5.常用工具
找出一组常用工具并关注它们。

《软件开发者路线图》的笔记-第86页 - 走过漫漫长路

一个人一旦停止了实践,他对技艺的精通马上开始消退。
每一个不写程序的日子,你都是在不断远离熟练工的目标。

《软件开发者路线图》的笔记-记录所学 - 记录所学

你的笔记、博客或wiki应该是一个托儿所,而不是一座坟墓——经验应该从这次记录中降生,而不是到那里去灭亡。定期读一读以前写的东西,你就能保证这一点。试着在每次重读这些资料时都找到新的关联。

《软件开发者路线图》的笔记-第1页 - 前言

不知而不知其不知者,愚者也——避之
不知而知其不知者,惑者也——授之
知之而不知其知之者,寐者也——醒之
知之而知其知之者,觉者也——从之
——Isabel Burton(1831——1896)
《The Life of Captain Sir Richard F. Burton》引用的阿拉伯谚语

《软件开发者路线图》的笔记-做熟练工意味着什么 - 做熟练工意味着什么

跟学徒一样,为了在技艺方面不断地进步,熟练工和师傅将保持一种内向的对于自身的关注。同时,另一种新的关注会出现在熟练工身上,那就是对从业者之间关系的关注,以及对团队内外的沟通渠道的关注。

《软件开发者路线图》的笔记-第131页 - 恒久学习

Ps:)不从历史中学习的人注定重复历史

《软件开发者路线图》的笔记-第71页 - 第二章总结

行动指南 寻找机会来忘掉一些东西,最好是迫使你放下以前经验的机会。
释放激情
思想的多样性应该是集体智慧的关键
一个由不同经验水准的人组成的团队更加健康。新人应该着重于释放激情。对所有的事情抱有疑问是你的责任。
学徒向技师学习。技师也向学徒学习
具体技能
搜集CV,向他人学习。在特定的工具和技术领域拥有具体、可展示的能力。
暴露无知
明天我要让自己更傻一些。保持一种不知道的状态
要做技师不要做专家。
技师拥有最重要的品质之一就是学习的能力。通过学习,实践和实验来完成。
行动指南
写下跟工作有关,而且自己不甚了解的五件事,将这份列表放到其他人可以看到的地方。然后随工作内容的改变养成不断更新着一列表的习惯。
正视无知
暴露无知要与正视无知一起使用,仅仅正视无知会导致自负(切记)
行动指南
针对暴露无知中的每一项。每当完成后就将其从列表中划掉,然后再填上。
深水区域
如果你从来都没有一败涂地,那很有可能你从来都没有尝试什么有价值的东西
行动指南
每次的任务到要比上一次复杂
以退为进
行动指南
学习新技术时,选择一项你已经十分了解的任务,然后实现它。
总结:学徒第一阶段要有准确的自我评估

《软件开发者路线图》的笔记-第19页

"可工作的软件"犹嫌不足,尚需精益求精的软件;
“响应变化”犹嫌不足,尚需稳步增加价值;
“个体与交互”犹嫌不足,尚需专家社区;
“客户协作”犹嫌不足,尚需卓有成效的伙伴关系。
也就是说,在追求左侧项目的过程中,我们发现右侧项目也是不可或缺的。
软件工艺宣言 XD

《软件开发者路线图》的笔记-第144页 - 安排你的课程-阅读列表

从《Code Complete》(代码大全)的35章,或《The Pragmatic Programmer》(程序员修炼之道——从小工到专家)的参考书目中获取书籍列表

《软件开发者路线图》的笔记-第28页 - 第一章

——做学徒意味着什么?
——它基本上是指拥有这样一种态度:对于已经做完或者正在做的事情,永远都有一种更好、更聪明或者更快的方法来完成它。学徒期就是这样一种状态/过程:不断演进并寻找更好的方法,找到能使自己学会那些更好、更聪明或者更快方法的人、公司和情景。

《软件开发者路线图》的笔记-第110页

第4章 准确的自我评估
一、只求最差
加入优秀的团队,向优秀者学习。
二、找人指导
找到适合的指导者,让他们提供好的建议。
三、同道中人
参加/组织线下聚会。
四、密切交往
合作一个项目等等。
五、打扫地面
主动去完成简单无趣又必须完成的任务,为团队贡献。---把握尺度。
最后,保持谦虚,对于软件工艺,你依然是个初学者!

《软件开发者路线图》的笔记-附录C 回顾 - 附录C 回顾

该把我们的成功归功于哪些因素呢?
· 共处一地:没有什么能打败面对面的团队合作。
· 结对编程:没有什么能打败肩并肩的开发。
· 测试驱动开发:没有什么能打败具有微型反馈回路的“乒乓编程”。
· 敏捷原则:
· 精良工具:我们使用具有超平板屏幕的Mamcs机器,并定期引入新技术促进生产力。
· 尊重客户:
· 努力工作:
· 文化:没有什么可以打败一个可以在停车场上打雪仗、让创造性活力四处流淌的即兴团队。私自把精良工具从尊重客户之后提到前面。因为我认为前两条是“人”的因素;接下来两条是“方法"因素;接下来是”工具“因素;最后三条是”文化“因素。这样调整一下层次比较清楚。

《软件开发者路线图》的笔记-解决方法 - 解决方法

仅仅正视无知会导致自负的食知动物(infovores),最终导致一事无成;而仅仅暴露无知却不视为需要解决的问题则会导致过度的谦卑和无能。技能建立在牢固的关系之上。


 软件开发者路线图下载 更多精彩书评


 

农业基础科学,时尚,美术/书法,绘画,软件工程/开发项目管理,研究生/本专科,爱情/情感,动漫学堂PDF下载,。 PDF下载网 

PDF下载网 @ 2024