资讯详情

《构建之法》参考书和链接汇总

一些读者也对《构建法》引用的参考书感兴趣,所以我单独列出了所有的参考书。事实上,大多数人的想法都受到一些外部信息的启发。许多真相似乎很新颖。事实上,其他人已经说过了。参考书列表大致符合 类别 - 字母/拼音 顺序排列。第三版加入了一些参考书,第一版和第二版没有:

行业和公司的兴衰

"牛人玩闪电" ... 施乐公司PARC 研究所的故事可歌可泣。1970 - 80 时代天才的创新, 在PARC 在这张温床上孕育, 公司忽视了发展。然而,这些创新深深地影响了计算机行业 - 包括 Apple 和 Microsoft.

by Scott Rosenberg, 中文版 《梦断代码》

为什么一个拥有技术、资金和宏大目标的团队在7年内不能制作好的软件?

施乐公司的Parc 研究所如何发明第一个?PC (以及其他先进技术), 施乐公司的领导又错过了这波浪潮。

by James Wallace,Jim Erickson

Bill Gates 微软的增长和前15名 年。 You got to drive hard.

byMerrill R. Chapman

中文版 《IT 大败局》

很多精彩的IT 行业失败的故事和分析大多是在20世纪80年代 - 90年代PC 浪潮中的事件, 字处理软件,浏览器,网络计算机(NC)等等。故事有点老,但经验教训很像。

byCarl Shapiro, Hal R. Varian

产品与信息时代的竞争与以往的竞争不同, 有一些特殊的规则, 这本书通过很多例子, 描述了这些规则。一个领域的先驱者可以制定规范,这是先发优势的子。

bySuzanne Taylor,Kathy Schroeder,John Doerr

Intuit 创始人分析了市场上所有个人财务软件的情况 现市场上已存在46家公司,他们自嘲说自己有 47th Mover Advantage. 这是结果47 一个竞争对手最终成为市场的老板,打败了包括微软在内的众多竞争对手。 2009年,微软宣布停止其个人财务软件 Money 项目,退出市场。

Intuit 两位早期工程师也留下了最早的结对编程记录(见第三章 两人合作)

作者:吴军

科技公司在各种浪潮中的命运,科技、商业、资本的结合。

byAndy Hertzfeld

作者Andy 就是Mac 团队成员,他也在这个书单上 "Programmers At Work", "Dreaming in Code", "Steve Jobs" 出现过。

作者 [日] 江波户哲夫 马英萍 翻译

Walkman 创新节收录了故事。这本书(三卷)有很多值得技术人员和企业家学习的地方。

byWalter Isaacson

《乔布斯传》

这本传记有很多关于创新、项目管理、企业成长的经验教训。

byMatthew Lyon,Katie Hafner

如何在美国建立互联网的过程中,出现了许多计算机科学和工程的早期人物,许多我们现在习惯的规则 (例如email 中的 @ 当时出现了符号)。

管理公司和团队、创业和创新

ClaytonM. Christensen

这本书提出了 "Jobs To Be Hired" 指导创新产品的成功率,而不仅仅是运气。

by Geoffery A. Moore

着名的early adopter 和 early majority 之间的鸿沟(chasm) 来自这本书,很有洞察力的分析方法。 2014年更新的第三版有很多新的案例分析。

:A Leadership Fable, by Patrick Lencioni

如果说交流是团队合作的重要途径,那么,要开多少会,怎么开好会,很值得研究。 Lencioni 很会讲故事,故事之余他提供了一个 “以什么节奏开什么会,解决什么问题” 的框架。

 by David Livermore

怎样让背景和思路各异的团队成员凝聚在同一目标下,达成最终结果?

书中提出很多独到的解决办法,其中 pre-postmortem 做法, 让团队成员想象现在就是产品发布后一个月, 但是产品失败了,让团队成员列出可能的原因。这样能促使团队成员讨论目前项目的风险在哪里,如何面对。

   by Geoffrey A. Moore

大家都在类似的轨道中打转,你怎么调整动能和势能,获得 “逃离速度”, 让你的产品比别人好一个等级? Geoffrey 的分析方法独具一格,从这个视频也能看出他的洞察力和激情。《构建之法》的创新一章中引用了其分析方法。

 by Patrick Lencioni

通过讲故事的形式,描述了领导团队崩溃的五个特征,以及怎么去解决这些问题。

 by Paul Graham 

黑客与画家,第一章描写了书呆子,和对书呆子不利的学校环境,事实上一个碌碌无为的大企业,也会培养类似的环境。这对于学校和公司里钻研编程的同学是一个很好的启发。 作者比较推崇LISP 语言,但是他的创业系统也只有他负责的部分是用LISP 写的,其他的模块都不是。但是一些读者认为,这说明了 LISP 就是比其他语言都高大上的语言! 这告诉我们,不教条是多么的不容易。 

  by Ben Horowitz

创立一个企业是为什么?  Build To Win.

很多人觉得创业公司都很忙,没时间搞什么培训。作者在书里引用了Andy Grove 的计算培训价值的公式:

假设公司花了12小时的时间备课并给10个员工培训四小时。总共花费12 + 10*4 = 52 小时。在培训后的一年中,这10个员工会有20,000 个小时的工作时间,如果培训能提高1% 的效率,那么公司将会节约200 小时。 

 by Thomas J. Peters , Robert H., Jr. Waterman

中文版《追求卓越》

这本1980 年代的书调查了当时美国优秀公司的管理经验,总结了卓越管理的几大要素,我大约是在1993年读到的,里面关于HP 公司的故事给我留下很深印象:

HP 的创始人看到公司管理人员下班时把仪器库房都起来了,就命令让库房都不上锁,这样员工可以拿仪器回家做各种实验。

当年的在这个书上作为正面例子的公司如HP、IBM都碰到了新挑战,有些公司已经不存在了(如王安电脑),是旧的管理原则不起作用了,还是新的领导层不再追求卓越?下面是这本书总结的管理原则:

(1) 崇尚行动    实施“走动管理”,到问题现场去;鼓励试验。(2) 贴近顾客 (3) 自主创新 

(4) 以人促产    用交流、培训、保障和奖励代替死板的员工手册;高层主管实行“不关门制度”,任何人都可以上门交流。

(5) 价值驱动    有效的价值体系应该致力于激励公司基层员工。

(6) 不离本行    不进行多元化,或只进行相关行业的多元化,尽量避免大规模的并购。

(7) 精兵简政    控制管理层规模;切分大的部门避免管理的复杂度。

(8) 宽严并济    宽松的工作氛围,严格的价值观体系。

 by Curtis R. Carlson, William W. Wilmot 

SRI 的专家总结了创新的方法,NABC,《构建之法》中的NABCD 就是来自这里。 

,  by Clayton M. Christensen

中文版《创新者的窘境》

成功的大公司, 能听取用户的意见,把精力投入增量改进现有产品中;成熟的价值链从多方面阻止公司去冒险尝试新兴领域; 同时公司为了争取更高的利润率,不得不忽视萌芽阶段的小市场;专家对新兴市场的分析往往基于现有经验,结论往往大错特错! 就这样,往往有一些名不见经传的小公司从薄利的小市场切入,使用比较粗糙的颠覆式技术,慢慢掀翻了大公司。 

, by Clayton M. Christensen

, Bob Prosen

一本实话实说的领导力手册。每一本类似书籍都会提到分析问题并改进,大部分团队在实施改进计划后一段时间,又会人走灯灭,旧毛病又回来了。我欣赏他强调的是 ICA:  Corrective Action,怎样保证这个改进措施不会随着时间和人事的变动而消失?

 by Scott Burken

创新的迷思。《构建之法》中创新的很多内容受到这本书的影响。

  by by Cyriac R. Roeding, Gert Purkert, Sandro K. Kindner, Ralph Muller, Deltiv J. Hoch

中文版《软件业的成功奥秘》

1999 年出版。 麦肯锡的商业顾问们采访了全世界很多软件团队,总结经验并展望未来。成功的奥秘之一是: 每天都有成功的构建 - have working daily build. 

 by Edward De Bono

六顶不同颜色的思维帽子,非常有效的工具,能帮助团队思考问题,解决问题。

 by Malcolm Gladwell

中文版 《引爆点》为什么有些产品能迅速扩张?有什么产品之外的因素?

 by Jon R. Katzenbach

什么是团队?一群各自行事,没有依赖关系的人可以叫 “工作组”, 而不是团队。 强行把一群人命名为团队,只会得到效率低下的假团队。 (构建之法第17章团队一节)

软件工程之理论和实践

 by Steve McConnell

这是Steve McConnell 另一本著作 Professional Software Development  的beta 版本。 

 by Ken Schwaber

敏捷开发的专家解释敏捷和SCRUM。 

 by Robert C. Martin

中文版 《敏捷软件开发 原则、模式和实践》

从实践出发,讲解了敏捷方法,OO设计原则和设计模式。这本书并不是静态地罗列并赞美 N 种设计原则和模式,而是分析原则和模式产生的必要性和使用的时机。 例如对于 Single Responsiblity Principle, Open-Close Principle, 作者写到:

变化的轴线仅当变化实际发生时才具有真正的意义。如果没有征兆,那么去应用 SRP,或者其他原则都是不明智的。

遵循OCP 的代价也是昂贵的……显然,我们希望把OCP的应用限定在可能会发生的变化上。… … 最终,我们会一直等到变化发生时才采取行动 。

回头看看我们在软件工程课上给学生布置的作业,有“变化的轴线么”?  有需求的变化么?没有! 那既然不用任何考虑变化,为何不把所有的功能放在一个大类里面,或者就写在main()函数里面,尽快实现就交作业了,管他什么SRP , OCP原则,什么内聚,耦合,信息隐藏?! 这说明我们的学生恰恰是明智地完成了老师布置的作业。没有足够复杂性,易变性的软件工程作业要求,反而让学生陷入 “我有银弹”, "软件工程的要求没啥用" 的误区:

“哎,你看我搞了一通宵,就写好了程序,得了高分。也不用啥软件设计的原则,事先也不用需求说明书,也不留什么文档,就搞定了!软件工程对我没用!”

Art of Project Management, by Scott Burken (后续版本叫 Make Things Happen)

中文版 项目管理的艺术

Scott 在1994 到 2003 在微软 IE 等团队做Program Manager,  后来又做了内部培训工作。他对以微软为代表的项目管理有很深的见解。(我参加了他离开微软前做的最后一次讲座,他喝了啤酒,弹起吉他...) 

Behind Closed Doors: Serects of Great Management by Johanna Rothman, Esther Derby

通过一个虚拟的项目,几个经理和员工交流的各种场景一个来串联很多关于交流和管理的建议。

Best Kept Secrets of Peer Code Review by Jason Cohen

很多关于代码复审的心得,同时还清晰地描述了 PSP, TSP, CMMI 的关系。 

Code Complete (2nd Ed)Steve McConnell ISBN: 9780735619678

中文版 代码大全 (第二版)斯蒂夫·迈克康奈尔 ISBN: 7121022982

大道至简 软件工程实践者的思想 作者 周爱民

我的书评

Debugging the Development Process: Practical Strategies for Staying Focused, Hitting Ship Dates, and Building Solid Teams by Steve Maguire

这本1994年出版的书总结了微软鼎盛时期的软件工程实践心得。 

Engineering—An Endless Frontier by Sunny Y. Auyang

中文版《工程学 无尽的前沿》 作者 欧阳莹之。 作者论证了:当今的工程学不仅是科学的合作者,而且两者同等重要。

译者之一李啸虎的解读:

哲学家的宗旨是:“我思,故我在。”

科学家的宗旨是:“我发现,故我在。”

而工程活动主体(工程师和企业家)的宗旨则是:“我构建,故我在。”

Engineering Software as a Service: An Agile Approach Using Cloud Computing by Armando Fox and David Patterson

UC Berkeley 的软件工程+云计算课程

Facts and Fallacies of Software Engineering by Robert Glass

几十个软件行业的传说,和一些谬论。作者从1954年(!)开始在软件行业工作,辗转工业界和学术界,1999 年成为 ACM Fellow. 

The Mythical Man-Month: Essays on Software Engineering by Fred Brooks Jr. 

中文版《人月神话》

PeopleWare: Productive Projects and Teams  by  Tom Demarco / Timothy Lister  中文版 《 人件》
由一群人组成的团队怎么样才能提高软件开发过程的效率?把办公区搞成整齐划一的格子间, 容易布线,但是对效率有正面还是负面的影响?以及很多值得深思的问题 (效率,人员去留,团队文化,领导力,如何应对过多的会议和邮件...) 
Professional Software Development by Steve McConnell
如果软件工程是一个独立的学科,它和“计算机科学”  有什么区别和联系?如果软件工程是一个独立的“职业”, 那么个人,机构,和整个行业应该有什么样的原则,规范和行为准则?
Rapid Development  Steve McConnell (ISBN 1-55615-900-5)

中文版 快速软件开发斯蒂夫·迈克康奈尔 著 译者: 席相霖 等 ISBN 9787505372856

Refactoring: Improving the Design of Existing Code by Martin Fowler

中文版 《重构 改善既有代码的设计》 

Make it work,  make it right, make it fast, make it extensible.  这本书提供了许多在OO 开发模式下 “make it right", "make it extensible" 的建议。 

重构是 ”不改变软件可观察行为的前提下改善其内部结构”。 如果软件的行为不变,为啥要折腾代码? 因为我们想把程序的结构变好,这样方便程序员理解,测试,维护(right),也方便将来的扩展(extensible).  大学生们交了软工大作业之后,还会有人去理解、测试、维护、扩展它么? 如果没有,那就解释了为何在大学里没有人理解重构的意义。 

Software Engineering: The Current Practice by Rajlich Vaclav

作者是资深的软件工程教授,对于程序理解(Program Comprehension)和软件重用很有研究。

Writing Solid Code by Steve Maguire

历久弥新的指南。

走出软件作坊  作者 阿朱

深入分析中国软件企业和员工的常见毛病,给出很多好的建议。

软件工程之人机交互与设计

   by Alan Cooper, et al. 

中文版:《软件观念革命》

Design of Everyday Things by Donald Norman

茶壶嘴和茶壶把手在同一边的茶壶就出自这本书。

  by Donald A. Norman

在彩色显示器刚出现的时候,作者借了一个回家试用, 他总结彩色并没有给他的工作效率带来什么提升,但是他却不舍得把显示器还回去,为什么?

The Inmates Are Running the Asylum: Why High Tech Products Drive Us Crazy and How to Restore the Sanity by Alan Cooper

对以“技术人员为主导” 的设计给予辛辣的讽刺和鞭笞 (就像疯子在管理疯人院)。给出了怎么从普通用户出发做设计的办法。

Microinteractions: Full Color Edition: Designing with Details by Dan Saffer 

在小小的移动设备上,怎么做人机交互?

Success through Failure: The Paradox of Design by Henry Petroski

从PowerPoint的前生, 到各种桥梁的演化,设计思想也在各种失败中演进。

Subject To Change by Peter Merholz , Todd Wilkens , Brandon Schauer, David Verba 

怎么样从用户体验出发 (而不是从产品团队本身的技术出发)来设计产品。

Tog on Software Design by Bruce Tognazzini

人机交互专家 Tognazzini 在1995年对未来软件设计的展望。

软件工程之软件测试

Perfect Software and other illusions about testing by Gerald M. Weinberg 
简明而生动地描述了关于测试工作的种种误解和谬论。

《全程软件测试》 作者 朱少民 

对测试的理论,技术和最佳实践有全面的覆盖,主张软件测试工作应贯穿软件开发整个生命周期 , 比较结合实际。 

软件工程师的故事

Coders At Work   Peter Siebel,  ISBN-13: 978-1430219484  

对15 位顶级程序员的采访, 总共600页,非常多的心得可以在软件工程的实践中借鉴。我也写了一个读后感。

Eric Sink on the Business of Software by Eric Sink

如果把软件开发沿着某个维度推到一个极致:一个人搞定软件开发过程和相关的商业活动,能行么?这是最早的关于“全栈” 的探索。  作者 Eric Sink 开发过Internet Explorer 的前身和 SourceGear.

I.M. Wright's Hard Code: A Decade of Hard-Won Lessons from Microsoft  by Eric Brechner  

微软的开发经理以幽默的风格谈论在巨大的软件公司做复杂的软件的各种经验教训, 同时也覆盖了在这些公司的职业道路。 

The Old New Thing by Raymond Chen

微软Windows 资深工程师 Raymond Chen 用亲身经历讲述Windows 设计,发展,编程和debugging 的种种趣事和 “秘诀”.  

The Pragmatic Programmer: From Journeyman to Master by Andrew Hunt and David Thomas
中文版 《 程序员修炼之道》
Programmers At Work,  Interview with 19 Programmers Who Shaped the Computer Industry,  Susan Lammers
1989 年左右,作者对19个程序员的采访
Programming Pearls    More Programming Pearls by Jon Bentley
深入浅出的编程心得和分析,很多题目可以作为软件工程课的个人/结对作业, 例如由简到繁实现一个命令驱动的图形生成器,最后变为解释图形说明语言。

Showstopper!: The Breakneck Race to Create Windows NT and the Next Generation at Microsoft  by C. Pascal Zachary

Windows NT 和创建它的团队的故事,其中描写了Dave Cutler 的职业生涯和独特性格

The Soul of a New Machine by Tracy Kidder

这是一本小说,讲述一个软件团队为成功发布一个新的小型计算机奋斗的故事,这本书和 Showstopper! 刚好对应, 讲的分别是虚拟和现实的故事。 

教学方法

Art & Fear Observations on the perils (and Rewards) of ARTMAKING by David Bayles & Ted Orland

除了莫扎特那样的天才,普通人能创造高质量的艺术品么?

这本薄薄的小书很受艺术爱好者欢迎,它的 29 页讲了这个故事:

陶艺课的老师在第一堂课宣布,坐在教室左半边的学生将以作品的数量和重量来考察,期末评价就以学生做了多少重量的陶器来衡量;教室右边的学生将以质量来衡量,期末只看一个完美的作品。

你猜高质量的作品是从哪一边出来的多?软件工程的教育和陶艺课类似么?

What the Best College Teachers Do by Ken Bain

这本书研究了优秀美国大学老师的教学经验(这些老师绝大多数都不是在名校教书)。总结的关键是 Natural Critical Learning Environment.  在《构建之法》中 “给老师和助教的建议” 可以看到详情。 

2         请看大学生们在微博上对软件工程课程的意见:软件工程讲义 0 微博上的软件工程 - SoftwareTeacher - 博客园  

3         所谓“做中学”的办法也不是包治百病的,这篇博客剖析了各种误区:(转)周舜钦:学习金字塔的误解  

4         参见:现代软件工程讲义 目录 《构建之法》 - SoftwareTeacher - 博客园

5         参见:现代软件工程 怎么教好课 (读书笔记) - SoftwareTeacher - 博客园  

6         参见:现代软件工程 教课心得 - SoftwareTeacher - 博客园  

7         参见:对大学 IT 专业教育的反馈 - SoftwareTeacher - 博客园  

8         参见:笔记 - 高等教育的创新 - SoftwareTeacher - 博客园

TO Teacher & TA, 给任课老师和助教的建议

1         参见:授课没营养 部分大学课堂师生心照不宣一起混_网易教育   

3         可以参见类似课程的打分情况,例如:期末成绩计算方法 - 现代程序设计助教 - 博客园  

5         参见:http://www.douban.com/note/260623954/

8         参见:404  

10       参见:“习而学的软件工程教育”,现代软件工程 习而学的软件工程教育 - SoftwareTeacher - 博客园

练习与讨论

更多练习与讨论参见:现代软件工程 第一章 【概论】练习与讨论 - SoftwareTeacher - 博客园

7         团队阅读之 "Is 'Computer Science != Software Engineering' an excuse to teach programming poorly?" - Shine Team - 博客园  

8         Sina Visitor System

           中蟒 (中文 Python) 編程語言網站 chinesepython  

           中文编程_百度百科  

尾注

2         文档下载:http://homepages.cs.ncl.ac.uk/brian.randell/NATO/nato1968.PDF

3         参见:http://en.wikipedia.org/wiki/Kent_Couch

4         参看:http://en.wikipedia.org/wiki/Larry_Walters  

5         参见:http://en.wikipedia.org/wiki/Wright_Flyer

6         参见:http://en.wikipedia.org/wiki/Qantas_Flight_30  

7         参见:http://en.wikipedia.org/wiki/US_Airways_Flight_1549   

8         参见:http://en.wikipedia.org/wiki/Moores_law   又称摩尔定律。

12       参见:http://en.wikipedia.org/wiki/Engineering   翻译时略有删减。

14       Microsoft Academic Search项目地址:We are sorry, the resource you requested cannot be reached  

15       参见:The Science of Computing and the Engineering of Software  

18       这一文档可以从Software Engineering Course (SWEBOK) 下载。

19       参见:http://en.wikipedia.org/wiki/Software_bug#Etymology  

20       图片来源:http://en.wikipedia.org/wiki/File:H96566k.jpg   

22       来源: E.W. Dijkstra Archive: On the cruelty of really teaching computing science (EWD 1036)  

练习与讨论

更多练习和讨论参见:现代软件工程 第二章 【个人技术】 练习与讨论 - SoftwareTeacher - 博客园

2         博客园  

           Golan Levin: Software (as) art | TED Talk  

3         博客园  

           http://st-threath.blogspot.tw/2013/06/an-engineer.html  

           http://aknow-work.blogspot.tw/2013/06/reply-to-coder-hacker-and-architect.html

尾注

2      Shows | Microsoft Docs

3      参见:Software Engineering Institute  

4      参见:GitHub: Where the world builds software · GitHub  

5      详情见:GitHub Codespaces using Visual Studio or browser

6      参见:Home :: Bugzilla :: bugzilla.org  

7      Trac工具:The Trac Project

正文:

         中国计算机协会计算机职业资格认证考试:http://cspro.ccf.org.cn

           以浙江大学计算机学院为首开发的计算机程序设计能力考试:http://pat.zju.edu.cn/

           结合中国软件行业的特点,我们可以归纳出在中国IT行业“好工程师”的要素,并做成一个自我评价清单(Check-list),供有志于这个职业的工程师们进行自我评价和跟踪。清单见博客:现代软件工程 课件 软件工程师能力自我评价表 - SoftwareTeacher - 博客园  

练习与讨论

更多练习和讨论参见:现代软件工程 第三章 【软件工程师的成长】练习与讨论 - SoftwareTeacher - 博客园

5         程序员的成长和代码行数的关系 | 程序师 - 程序员、编程语言、软件开发、编程技术  (翻译)Norris Numbers  (原文)

6         程序员的核心竞争力是什么?为什么? - 知乎博客园  登录 - 推酷   现代软件工程 课件 软件工程师能力自我评价表 - SoftwareTeacher - 博客园  

7         http://blog.jobbole.com/21881/ http://blog.jobbole.com/12176/  

8         Hakka IT School - Hakka

9         我们都是自信的傻瓜(上)| 果壳 科技有意思           原文:http://www.psmag.com/health-and-behavior/confident-idiots-92793

尾注

1      参见:http://china.nba.com/stats/teams/teamStats/1610612745_2010_2_00.html

4      参见:http://sk.neea.edu.cn/jsjdj/index.jsp

5      参见:http://www.rkb.gov.cn/

6      参见:http://en.wikipedia.org/wiki/Microsoft_Certified_Professional

7      参见:http://en.wikipedia.org/wiki/Oracle_Certification_Program

8      参见:http://www.ieee.org/education_careers/education/professional_certification/index.html

9        参见:http://www.construx.com/uploadedFiles/Construx/Construx_Content/Resources/White_Papers/Construx%20Professional%20Dev%20Ladder.pdf

11    参见:http://pragprog.com/the-pragmatic-programmer/extracts/tips  

12    参见:“软件天才与技术民工” 软件天才与技术民工_bitfan(数字世界一凡人)的专栏-CSDN博客  

13    参见:http://www.billbuxton.com/xc.html  

14      参见:http://en.wikipedia.org/wiki/Margaret_Mitchell

练习与讨论

更多的说明和讨论参见:现代软件工程 第四章 【结对编程】练习与讨论 - SoftwareTeacher - 博客园  

1         http://c2.com/cgi/wiki?PairProgrammingCaseStudyCase study: using pair programming in development of a complex module. - Free Online Libraryhttp://www.cs.utexas.edu/users/mckinley/305j/pair-hcs-2006.pdf   

3         代码复审检查表:http://blog.fogcreek.com/increase-defect-detection-with-our-code-review-checklist-example/

5         http://dhruba.name/2012/08/21/do-you-hate-reading-other-peoples-code/  微软资深软件工程师:阅读代码真的很难_知识库_博客园

尾注

1      让 {} 独占一行还有一个好处:一眼就能看出是否有多余的代码行,这在有些情况下是致命的错误,参见:meta/LPAR | Learning from Apple's goto fail  或搜索“apple code to fail source code”.

5      火车司机也有这样的例子:火车司机:职业神秘辛苦异常

7      关于这一点,请看史蒂夫·乔布斯的观点:Daring Fireball: Working Backwards to the Technology  

8         请看: http://en.wikipedia.org/wiki/Myers-Briggs_Type_Indicator

9         另外请参见 《对性格内向者的10个误解》: http://blog.jobbole.com/12488/

10       参见:http://www.vaikan.com/the-conventions-we-follow/     

           谷歌是如何做代码审查的 –

           http://scientopia.org/blogs/goodmath/2011/07/14/stuff-everyone-should-do-part-2-coding-standards/

正文中的链接

http://www.youtube.com/watch?v=X1c2--sP3o0

练习与讨论

更多说明和讨论请参见:现代软件工程 第五章 【团队和流程】练习与讨论 - SoftwareTeacher - 博客园

7         去了富士康,才明白生产手机流程多复杂-品玩  

8         http://blog.jobbole.com/19772/  

尾注

1      http://topic.csdn.net/u/20080623/13/25ff50e2-16a7-49c1-ac7b-fcbdda18fa86.html

6      请搜索 Miles Davis “So What”的视频。一个参考来源为:http://v.youku.com/v_show/id_XNTkzOTg4MTY=.html  

7      参见:http://en.wikipedia.org/wiki/Miles_Davis  

11    论文参见:http://en.wikipedia.org/wiki/Waterfall_model#CITEREFRoyce1970

12    参见:http://en.wikipedia.org/wiki/IBM_Rational_Unified_Process  

13    图片来源:http://en.wikipedia.org/wiki/IBM_Rational_Unified_Process#mediaviewer/File:Development-iterative.gif  

14        参见 What is the minimum viable product? - Venture Hacks

正文

图灵社区

练习与讨论

更多内容与讨论请参见:现代软件工程 第六章 【敏捷流程】练习与讨论 - SoftwareTeacher - 博客园

表6-4

        http://www.cs.umd.edu/class/spring2003/cmsc838p/General/NoSilverBullet.html

        There Is a Silver Bullet | Dr Dobb's

        Big Ball of Mud

        http://en.wikipedia.org/wiki/The_Cathedral_and_the_Bazaar

        A Generation Lost in the Bazaar - ACM Queue

中文版:

        图灵社区

        The Rise of “Worse is Better”

        The Rise of ``Worse is Better''

        Is Worse Really Better?

        http://dreamsongs.com/Files/IsWorseReallyBetter.pdf

        瀑布模型

        http://www.cs.umd.edu/class/spring2003/cmsc838p/Process/waterfall.pdf

        对此模型的误解:

        http://www.youtube.com/watch?v=X1c2--sP3o0

        The New Methodology   

        http://pragdave.me/blog/2014/03/04/time-to-kill-agile/

        中文版(敏捷已死)

        the corruption of Agile

        The Corruption of Agile | Dr Dobb's  

        Erik Meijer: http://vimeo.com/110554082  

        "In Defense of Agile" by Nic Ferrier

        what hacking is   

        Manifesto for Software Craftsmanship

        http://agile.dzone.com/articles/jez-humble-why-software    

        Why Software Development Methodologies Suck - Continuous Delivery

尾注

1      参见:http://en.wikipedia.org/wiki/Agile_software_development#Agile_principles  

3      图片来源:http://en.wikipedia.org/w/index.php?title=File:Scrum_process.svg&page=1

4      参见:Collaborate [redirected] | Microsoft Docs

5      这里有几个 现代软件工程学生小组的Daily Scrum的过程:beta:scrum4 - ustc_msra_ase - 博客园Daily scrum beta 第九天! - SouthSeven - 博客园Daily Scrum 9.29 - Gun N' Rose - 博客园

6      忽悠敏捷流程的一个例子:scrum–yesterday once more - SoftwareTeacher - 博客园

8      参见:微软学术搜索项目 10个版本的历程 - SoftwareTeacher - 博客园

9      参见:http://en.wikipedia.org/wiki/Six_Sigma

10       大家可以观赏Scrum视频培训:Scrum Training Series: Free Scrum Master Training from Seattle

12    参见国外漫画系列Dilbert 的讽刺:Dilbert Comic Strip on 2007-11-26 | Dilbert by Scott Adams  

13    例如这篇文章描述了 Boehm 在1980年代提出的软件工程原则和二十年后的敏捷原则的关系:杂谈Barry Boehm的软件工程七原则与敏捷实践_麦哲思科技-CSDN博客

14    参见:http://en.wikipedia.org/wiki/Hawthorne_effect

15    网上关于敏捷流程中执行的具体问题描述例子:C项目敏捷实施(3)-5个迭代了 - 大卫张 - 博客园

16    参见:Manifesto for Software Craftsmanship

17    参见:软件工艺宣言发布最新的简体中文版-InfoQ

练习与讨论

更多内容与讨论请参见:现代软件工程 第七章 【MSF】练习与讨论 - SoftwareTeacher - 博客园

尾注

2         参见:2014年的介绍网页,Microsoft Solutions Framework (MSF) Overview | Microsoft Docs

3         参见:大松博文_百度百科

6      参见:Joel Spolsky, http://www.joelonsoftware.com/articles/Micro-ISV.html

9      参见:Seven Basic Principles of Software Engineering, Barry W. Boehm, 链接:Redirecting

10       北京禁止售货员用轻蔑审视眼光扫视顾客_新闻中心_新浪网

练习与讨论

更多内容与讨论请参见:现代软件工程 第八章 【需求分析】练习与讨论 - SoftwareTeacher - 博客园

1         Steve McConnell 软件估计的10宗罪http://www.ewh.ieee.org/r5/central_texas/austin_cs/presentations/2004.08.26.pdf           Quora精选: 为什么软件开发周期总是预估的2~3倍http://jandan.net/2013/07/16/quora-software-development.html

3         具体项目练习:现代软件工程 团队作业 - 软件分析和用户需求调查 (2013 - 2014) - SoftwareTeacher - 博客园

尾注

3      参见:Tree Swing Cartoons (New Versions)  

4      如何做好深入面谈,也有各种诀窍:http://www.gv.com/lib/get-better-data-from-user-studies-16interviewing-tips

5      参见:http://en.wikipedia.org/wiki/Card_sorting  

6      参见:http://www.emarketing.net.cn/magazine/adetail.jsp?aid=1354

7      参见:Home Page | Sony Pictures Entertainment  

8      参见:真实的用户,真实的中国互联网 - meng-meng(萌萌) - 博客园

9      参见:春节回乡:三线城市三线小镇的数字生活_狂云子_新浪博客

10    参见:Eye tracking Web usability | ZDNet

11    参见:http://en.wikipedia.org/wiki/Participatory_design  

12    参见:http://en.wikipedia.org/wiki/Palm_(PDA)  

13    参见:The A/B Test: Inside the Technology That's Changing the Rules of Business | WIRED  

14    参见:http://glinden.blogspot.com/2007/06/ab-testing-at-amazon-and-microsoft.html  

15    参见:http://exp-platform.com/Documents/GuideControlledExperiments.pdf

16    参见:Web Experimentation with New Visitors - Code as Craft

17    参见:http://news.cnet.com/google-designer-leaves-blaming-data-centrism/#!  

18    参见:http://caddellinsightgroup.com/blog2/category/strategic-planning/

19    参见:有关创新的书

21    参见:http://en.wikipedia.org/wiki/Switching_costs  

24    参见:http://www.amazon.com/Software-Estimation-Demystifying-Practices-Microsoft  

25    参见:《...第八次全国代表大会第二次会议文件》,人民网--404页面

29       请看网上的方法介绍:http://www.stellman-greene.com/aspm/content/view/23/38/   http://en.wikipedia.org/wiki/Wide-band_delphiStop Promising Miracles | Dr Dobb's  

31    参见:四川老人198天骑行2.5万公里环游中国-骑行资讯-绿野户外网

32    参见:真人拳皇项目Alpha阶段的回顾——史经浩 - MSRA_SE_TEAM - 博客园

33    参见:http://lostgarden.com/2006/04/managing-game-design-risk-part-i.html 。该图参考了Danc的“Managing game design risk : Part I”

34    参见:http://en.wikipedia.org/wiki/Planning_poker

35    关于时间估计,这里有更多相关内容:Agile Estimating – Estimation Approaches - PMHut - Project Management Articles for Project Managers

36    参见:软件工程——homework1 - 霸王移山 - 博客园

37    参见:Team Homework 1 / 采访以往的软件工程项目:通用在线棋盘类游戏平台 - se2012 - 博客园

38    参见:http://www.linux.com/learn/resource-center/376-linux-is-everywhere-an-overview-of-the-linux-operating-system?start=2  

39    参见:The Innovation Mindset | Leading Blog: A Leadership Blog

练习与讨论

更多内容与讨论请参见:现代软件工程 第九章 【项目经理】练习与讨论 - SoftwareTeacher - 博客园

1         http://v.youku.com/v_show/id_XMzE1Mzc2NTE2.html  

4         现代软件工程 团队作业 - 软件分析和用户需求调查 (2013 - 2014) - SoftwareTeacher - 博客园Sina Visitor System

尾注

1      参见:http://en.wikipedia.org/wiki/Charles_Simonyi  

2      参见:http://en.wikipedia.org/wiki/Wysiwyg  

4      参见:http://en.wikipedia.org/wiki/MITS_Altair_8800  

5      参见:How to be a program manager – Joel on Software  

6      参见:DevBlogs - Microsoft Developer Blogs

7      在别的团队中,也有产品经理的职位,例如这个博客(和书):人人都是产品经理——iamsujie 但不是每个人都能成为产品经理的。

8      参见:产品设计体会(0013)产品经理应该是管理者么 | 人人都是产品经理——iamsujie  

10    参见:DevBlogs - Microsoft Developer Blogs

11    斯科特·伯昆(Scott Berkun)也谈到了一些PM的副作用:The lost cult of Microsoft program managers | Scott Berkun  

12    参见:http://v.youku.com/v_show/id_XMTEzNDA4NDg4.html  

13    可以阅读很多相关博客和书籍,例如:The book: Making Things Happen | Scott Berkun  和 DevBlogs - Microsoft Developer Blogs

正文

关于这个“系鞋带的Spec”练习的完整说明,可以参见相关网页:现代软件工程 第十章 【典型用户和场景】 练习与讨论 - SoftwareTeacher - 博客园

练习与讨论

更多内容和讨论请参见:现代软件工程 第十章 【典型用户和场景】 练习与讨论 - SoftwareTeacher - 博客园

尾注

1      关于典型用户的讨论,参见:A Mort by Any Other Name … -- Visual Studio Magazine  以及 Mort, Elvis, Einstein, and You  

2      在TFS项目的门户网站中有定义典型用户的模板(路径一般是<网站名>Requirements/Persona.doc),可资参考。

3      参见电子书: Use-Case 2.0 ebook | Ivar Jacobson International

4         参见:三峡大坝到底可防几年一遇洪水|百年一遇_网易新闻

5      参见:http://www.nebulon.com/articles/fdd/latestfdd.html  以及 http://en.wikipedia.org/wiki/Feature_Driven_Development  

6      参见:本书“分而治之(Work Breakdown Structure)”一节

7         How to tie shoe laces - DOOM_buaascse - 博客园

8         [Sui Yuhao]完成任务(番外篇,与团队项目无关)——How To Tie Your Shoes - teamshit - 博客园

练习与讨论

        更多内容与讨论请参见:现代软件工程 第十一章 【软件设计与实现】 练习与讨论 - SoftwareTeacher - 博客园

4     在这个时候是否碰到“团队成员不给力”的问题?请看别的同学的吐槽:现代软件工程系列 学生的精彩文章 (5) 其实还是人的问题 - SoftwareTeacher - 博客园  

5     我们是在写代码解决问题呢,还是在搭建宏伟的架构?        请看:痛苦的Java程序员 | OurJS          英文版:http://nsainsbury.svbtle.com/java-developers  

6     好的修改/重构是什么样的?请看几个例子:http://world.kankanews.com/w/2014-11-22/0015946771.shtml从把三千行代码重构成15行代码谈起 - 马非码 - 博客园  

尾注

1         图片来源于http://commons.wikimedia.org/wiki/File:MindMapGuidlines.svg  

2         请参考网上关于安全设计,威胁模式分析(Threat Modeling)的文章,例如: Uncover Security Design Flaws Using The STRIDE Approach | Microsoft Docs  

4         参见 文章 Death by UML Fever  作者 ALEX E. BELL, 和Grady Booch 在文章后的评论。  Death by UML Fever - ACM Queue

7         VS2010以及之后的版本还提供了燃尽图等功能,请参见相关同学的博客,例如

           [scrum]2011/9/30-----第九天 - OMG! 日记 - 博客园

练习与讨论

更多内容与讨论请参见:现代软件工程 第十二章 【用户体验】练习与讨论 - SoftwareTeacher - 博客园  

1         究竟什么是用户体验呢?请看:What UX is and isn't?            (中文版)什么是用户体验,什么不是?_知识库_博客园

2         Graphical User Interface Timeline            Windows File Explorer 的界面的演化:DevBlogs - Microsoft Developer Blogs

3         http://reynold.cn/archives/1314.htmlforms - Should I use Yes/No or Ok/Cancel on my message box? - User Experience Stack Exchange             

4         http://www.digitaljournal.com/article/317856

           Daring Fireball: On the Behavior of the iPhone Mute Switch

           Microinteractions (豆瓣)

5         产品设计的细节—汉堡包           一些历史: 汉堡图标编年史-规范/资料-UICN用户体验设计平台           它真的是普遍适用么?为什么要避免使用汉堡包菜单 - 手机界面设计,手机UI设计,手机图标设计,UI设计教程 - MobileUI莫贝网

6         请看VI编辑工具的设计是怎么来的:Here is why vim uses hjkl keys as arrow keyshttp://blog.jobbole.com/18650/  

尾注

1      参见:Amazon.com

2      参见:Sina Visitor System  

3      参见:http://dict.bing.com.cn/#empathy  

4      参见:必应  

5      参见:Malcolm Gladwell. Blink(ISBN 9780316172325). Back Bay Books, 2007.

6      参见:http://www.reuters.com/article/2011/06/21/us-airshow-button-idUSTRE75K1XR20110621

7      参见:Bad Designs - Yikes! I pressed the call button again!    

8      参见:The Opposite of Fitts' Law

9         图片来源:Amazon.com

10    参见:Kerry Patterson. Influencer: The Power to Change Anything(ISBN 007148499X). McGraw-Hill,2007.

11    参见:We are sorry, the resource you requested cannot be reached  

12    参见:http://blog.xiqiao.info/2010/12/21/917  

13       2013年,专家们在讨论新型的USB接头是否也将采取类似的设计。

14       参见 “防呆” 条目: http://zh.wikipedia.org/wiki/%E9%98%B2%E5%91%86

19    参见:http://en.wikipedia.org/wiki/Fitts_law  

20    参见:http://en.wikipedia.org/wiki/Heuristic_evaluation  

21       参见:Steve Jobs: You have to start with the customer experience and work backwards to the technology | iMore

练习与讨论

更多内容与讨论请参见:现代软件工程 第十三章 【软件测试】 练习与讨论 - SoftwareTeacher - 博客园  

         计算机程序在处理闰年这个问题上出现过很多bug,请看相关的博客:现代软件工程讲义 9 测试 关于闰年的测试 - SoftwareTeacher - 博客园

历史上的20 大bug20 Famous Software Disasters20 Famous Software Disasters – Part 2  20 Famous Software Disasters – Part 3  20 Famous Software Disasters – Part 4

           http://www.safetyresearch.net/blog/articles/toyota-unintended-acceleration-and-big-bowl-%E2%80%9Cspaghetti%E2%80%9D-code

           http://www.safetyresearch.net/Library/BarrSlides_FINAL_SCRUBBED.pdf  

这是什么样的bug?要过37年才修复?src/usr.bin/head/head.c - view - 1.18src/usr.bin/head/head.c - diff - 1.18http://www.reddit.com/r/programming/comments/2ind4f/fix_a_37_year_old_bug_introduced_by_bill_joy_on/

正文

“我们需要专职的QA 吗?”:我们需要专职的QA吗? | 酷 壳 - CoolShell

如果要以“产出”来评价某个角色的绩效,可以看看这个包装设计的视频:http://v.youku.com/v_show/id_XMzQ3NTUxOTU2.html

引起网上讨论的两篇文章在这里:关于测试和测试人员 –,

          http://www.quora.com/Is-it-true-that-Facebook-has-no-testers  

练习与讨论

更多内容和讨论请参见:现代软件工程 第十四章 【质量保障】 练习与讨论 - SoftwareTeacher - 博客园

尾注

2      参见:http://en.wikipedia.org/wiki/Precision_and_recall

6      参见:关于测试和测试人员 –

7         参见:密码外泄门_百度百科

9         参见:http://www.wooyun.org/bugs/wooyun-2010-04728

10       参见:亚当·斯密_百度百科

11    参见:OpenSSL新漏洞曝光:可被用于“中间人”攻击|OpenSSL|心脏流血_互联网_新浪科技_新浪网

12    参见:http://en.wikipedia.org/wiki/Heartbleed

13    参见 http://en.wikipedia.org/wiki/Shellshock_(software_bug)   和  bash代码注入的安全漏洞 | 酷 壳 - CoolShell

练习与讨论

更多内容和讨论请参见:现代软件工程 第十五章 【稳定和发布阶段】练习与讨论 - SoftwareTeacher - 博客园  

4         Denver Airport Baggage System Case Study – Why Do Projects Fail?http://www.nytimes.com/2005/08/27/national/27denver.htmlUnited axes troubled baggage system at Denver airport | Computerworld  

尾注

1      参见:http://www

标签: 二极管cmsc

锐单商城拥有海量元器件数据手册IC替代型号,打造 电子元器件IC百科大全!

锐单商城 - 一站式电子元器件采购平台