发表于2024-12-18
这是一本介绍软件管理的小品文集。全书分为45章,内容十分丰富全面,小到项目负责人制订进度表,大到软件执行总裁提出富有竞争性的战略,都在本书的介绍之列。作者Joel Spolsky以个人经验和感悟,用幽默风趣的笔法深入介绍软件开发项目管理的细节,帮助读者改进软件开发中的误区,提高效率。《软件随想录 卷1》是Joel Spolsky的首部博客文集,涵盖了最重要的博文,以及独到的评述和洞见。从不同侧面满足了软件开发人员、设计人员、管理人员及从事软件相关工作的人员的学习与工作需要。
乔尔·斯波尔斯基(Joel Spolsky),是一名软件行业的资深人士,他的开设的个人博客“乔尔谈软件”深受程序员们的欢迎,被誉为“反呆伯特宣言”。斯波尔斯基设计和开发了许多广为使用的软件,参与过的软件产品包括微软Excel和朱诺邮件客户端的用户界面。他还创立了位于纽约市的Fog Creek软件公司。
第一部分 比特和字节:编程实践 1
01 选择编程语言 2
02 回归本原 4
03 乔尔测试 12
04 软件开发者不可不知的Unicode和字符集知识(别找借口!) 24
05 轻松撰写功能规格书 第一部分:为什么要写 34
06 轻松撰写功能规格书 第二部分:什么是规格书 40
07 轻松撰写功能规格书 第三部分:但是……怎么做 49
08 轻松撰写功能规格书 第四部分:写作技巧 53
09 轻松掌控软件开发进度 60
10 每日编译是你的朋友 70
11 完美主义者是如何修复bug的 75
12 五个世界 80
13 纸上原型设计 87
14 别被架构航天员忽悠了 89
15 干扰射击 93
16 软件开发是一门手艺活 96
17 计算机科学的三个错误观念 100
18 二元文化主义 105
19 自动从用户那里收集崩溃报告 111
第二部分 管理开发者 121
20 非正式面试指南 122
21 奖励有害论 134
22 不设专职测试人员的5条(错误)理由 137
23 任务切换有害论 143
24 永远不要做的事情(第一部分) 146
25 揭开冰山之谜 150
26 抽象必漏定律 156
27 帕默斯顿勋爵谈编程 161
28 评估机能失调 166
第三部分 乔尔语录:中心明确的胡思乱想 169
29 里克?查普曼在“寻找愚蠢” 170
30 这个国家的狗要做什么工作 174
31 普通程序员如何改善团队工作方式 179
32 两个故事 184
33 巨霸汉堡vs.“原味主厨” 188
34 凡事没有看上去的那么简单 193
35 为NIH综合症说两句 197
36 企业发展战略系列一:本杰瑞vs.亚马逊 200
37 企业发展战略系列二:先有鸡还是先有蛋 207
38 企业发展战略系列三:让我回到过去 214
39 企业发展战略系列四:膨件和二八法则 219
40 企业发展战略系列五:开源软件经济学 223
41 祸不单行的一周 231
42 微软是如何输掉API战争的 235
第四部分 关于.NET的闲言碎语 249
43 走火入魔的微软 250
44 我们向.NET迁移的策略 255
45 能给我一个链接器吗 258
第五部分 附录 261
“乔尔问答”精选 262
你从没想过要当一名开发经理。和我认识的大多数软件开发者一样,如果能一直坐在那里安静地写代码,你可能会比现在快乐得多。但你是最棒的开发者,自从团队之前的老大奈杰尔发生了那场不幸的事故(与蹦极绳和笔记本电脑有关),作为团队技术明星的你,被顺理成章地提拔为了开发经理。
现在,你有了自己独立的办公室(而不是和那些赖着不走的暑期实习生挤在一个小隔间里),不得不填写每年两次的绩效考核表(而不是每天盯着CRT显示器来自毁双目),还得经常想办法满足明星级程序员们的各种古怪要求,和过分亲热的销售人员称兄道弟,和异想天开的“用户界面设计师”们(天啊!他们是以图形设计师的身份被招进公司的)讨论设计稿——他们想让确定和取消按钮闪闪发亮并且带有倒影效果,天啊,“倒影效果”对应的RGB颜色值是多少?还要硬着头皮回答高级副总裁提出的各种愚蠢问题,他们对于软件的那点了解全部来自于旅途中翻阅达美航空公司提供的旅行杂志。“我们为什么不用Java来代替Oracle呢?听说它一致性更好。”
恭喜你荣升管理岗位!你猜怎么着?软件项目管理和编程其实一点关系都没有。如果这辈子除了写代码什么都没干过,你可能会突然发现,人类行为比最普通的Intel CPU还难以预测。
其实,之前的团队老大奈杰尔也不是非常称职。“我并不想变成一个整天泡在无聊会议里的经理,”他在发表这种宣言的时候总显得有些虚张声势,“我认为自己还是可以把85%的时间花在编程上,剩下的时间用来管理团队。”
奈杰尔其实想说的是:“我完全不懂如何管理项目,但愿只要像被委以重任之前一样老老实实地写代码,所有事情就都能顺利地完成。”这当然不可能。这种心态可能有助于解释,为什么奈杰尔会在命中注定的那一天,带着一台IBM ThinkPad去蹦极。
故事的细节不必多说,总之后来奈杰尔奇迹般地恢复了健康,与一起玩蹦极的朋友合开了一家小公司,出任CTO。这家公司叫“今夕何夕”(WhatTime- IsIt.com)。他只有六个月的时间,要从头编写一个新系统,而且这次再也不能靠事故来脱身了。
管理的艺术
软件项目管理是一门很少有人了解的艺术。没有人获得过软件项目管理的相关学位,这方面的图书也很少。只有极少数人带领软件开发项目取得了真正的成功,其中绝大多数都在发财后早早退休去钓鱼,没来得及把积攒的经验教训传给下一代项目经理。剩下的人燃烧尽了自己的青春,改行去做其他压力稍小一点的工作,比如帮市中心的小混混辅导英语。
这导致了许多软件开发项目都因为种种原因而中途夭折,有的失败得轰轰烈烈,有的则无声无息,原因是团队里没有人知道如何带领一个软件项目走向成功。有太多的开发团队无法交付像样的产品,或者拖了太久才交付,或者交付了一个谁都不想用的软件。但是最让我感到愤怒的,是那些在团队中闷闷不乐,痛恨每一分钟工作时间的人。人生苦短,怎么可以浪费时间去痛恨自己的工作。
几年前我在网站上发表了“乔尔测试”,这份清单包含优秀软件团队必须要做到的12件事,包括维护一个bug跟踪数据库,让面试候选人现场写代码,等等(不要着急,这本书会拿出大量的篇幅来介绍这些内容)。让我感到惊讶的是,很多人发来电子邮件,说自己所在的团队只能在满分为12分的测试中得到2~3分。
2~3分!
这太不可思议了!就好像一群木匠聚在一起做家具,结果谁都没听说过螺丝钉。他们只会用踢踏舞鞋把钉子敲进木头里,因为没人告诉他们世界上还有一种东西叫锤子。
要做好软件项目管理工作,需要一整套和写代码完全不同的工作技能和技术储备。项目管理和软件开发是两个完全不同、几乎没有交集的领域,二者之间的差别几乎相当于脑外科手术和烹饪椒盐卷饼之间的差别。一名脑外科手术医生完全想不到,自己会被传送到一个制作椒盐卷饼的工厂里,这很可能是时空裂隙造成的结果。即使是接受过哈佛医学院教育的外科医生,也完全对如何烹饪椒盐卷饼没有一点概念。但是人们通常认为,一位顶尖的开发者不经过任何岗前培训,就能自动胜任项目管理工作。
和刚刚提到的脑外科医生一样,你和奈杰尔都被安排到了一个新岗位——管理。这个岗位要求你和人类而不是编译器打交道。如果你觉得现在的Java编译器bug丛生、行为不可预料的话,说明你还没有作为开发经理和团队中的明星程序员打过交道。管理由人类组成的团队,难度要大大超出编写C++模板函数。
要实现成功的软件项目管理,也并非无迹可寻。这门艺术发展到今天,已经脱离了钉子和踢踏舞鞋的阶段。我们现在有锤子、螺丝刀和双斜面组合条锯。本书的目标就是介绍我知道的所有管理方法和技术,涉及各个层面,包括团队管理者需要预估时间和开发计划,软件公司CEO要筹划市场竞争战略,等等。你将学到:
如何聘用并激励最优秀的人才——这是软件项目取得成功的最关键因素;如何让开发时间预估和进度规划变得切实可行,以及为什么有必要这样做;如何设计软件的功能,写出能真正指导开发的规格说明书,而不是制造那种“一次编写、永不阅读”的无用文件,只能拿来把办公室隔间的隔板垒得更高;如何绕开软件开发中常见的陷阱,以及为何程序员编程的时候总喜欢犯“推倒重来”的错误;如何组织和激励团队,为什么程序员需要独立的工作空间和关闭的门;在哪些情况下必须从头开始写每一行代码,抵制从网上下载足够好用软件的诱惑;为什么软件项目总是在过了最初的几个月之后,看起来像是陷入了停滞状态;对于软件公司,发展战略意味着哪些思考和行动,为什么BeOS从一开始就注定了失败;除了以上几条之外,还有更多内容。
本书的观点带有强烈的主观色彩。为了行文简洁,我无法在每句话的开头加上“在我看来”这几个字,但实际上你要知道,这本书里的每句话都是我个人的观点。本书也许并不完善,然而是一个不错的开头。
啊,你是我网站的读者……
本书的很多内容都来自我个人网站上的专栏文章,这些文章统称为“乔尔谈软件”,记录了我在这几年中的很多思考。希望这本让你捧在手中的书,能比网站上松散的文章在形式上显得更为紧凑,这个词的另一个含义是,“可以在浴缸里阅读而不用担心遭到电击”。
我们把本书分为三大部分。第一部分从小处着眼,探讨了软件开发的方方面面:要想开发出不危害人间的软件,每一个开发团队都应该遵循哪些良好的开发习惯。第二部分包含了一系列关于如何管理程序员和编程团队的文章。第三部分的内容则更松散一些,但大致上围绕着“如何长久地在软件开发行业生存下去”这一主题。你将了解到为什么“膨件”(bloatware)大行其道,为什么本杰瑞公司(Ben & Jerry’s)和亚马逊公司如此不同,以及为什么软件开发方法论的出现标志着这个行业缺乏足够数量的优秀人才。
本书的内容当然远不止以上介绍的这些,所以闲言少叙,书归正传。
软件随想录 卷1 下载 mobi pdf epub txt 电子书 格式 2024
软件随想录 卷1 下载 mobi epub pdf 电子书无产阶级。现代工业无产阶级约二百万人。中国因经济落后,故现代工业无产阶级人数不多。二百万左右的产业工人中,主要为铁路、矿山、海运、纺织、造船五种产业的工人,而其中很大一个数量是在外资产业的奴役下。工业无产阶级人数虽不多,却是中国新的生产力的代表者,是近代中国最进步的阶级,做了革命运动的领导力量。我们看四年以来的罢工运动,如海员罢工、铁路罢工、开滦和焦作煤矿罢工、沙面罢工以及“五卅”后上海香港两处的大罢工所表现的力量,就可知工业无产阶级在中国革命中所处地位的重要。他们所以能如此,第一个原因是集中。无论哪种人都不如他们的集中。第二个原因是经济地位低下。他们失了生产手段,剩下两手,绝了发财的望,又受着帝国主义、军阀、资产阶级的极残酷的待遇,所以他们特别能战斗。都市苦力工人的力量也很可注意。以码头搬运夫和人力车夫占多数,粪夫清道夫等亦属于这一类。他们除双手外,别无长物,其经济地位和产业工人相似,’惟不及产业工人的集中和在生产上的重要。中国尚少新式的资本主义的农业。所谓农村无产阶级,是指长工、月工、零工等雇农而言。此等雇农不仅无土地,无农具,又无丝毫资金,只得营工度日。其劳动时间之长,工资之少,待遇之薄,职业之不安定,超过其他工人。此种人在乡村中是最感困难者,在农民运动中和贫农处于同一紧要的地位。
评分这是一本很好的书啊!
评分好书买了绝不会吃亏的。。。
评分刚买呢,还没看
评分不错的书。大牛写的,虽然不是讲技术的但还是有收获。
评分真心不错,而且物流特别快
评分内容丰富,值得一看。。。
评分纯学术类型书籍,比较无聊。
评分大神推荐的,肯定没错!
软件随想录 卷1 mobi epub pdf txt 电子书 格式下载 2024