书籍作者:凯特琳·萨多夫斯基 | ISBN:9787302561156 |
书籍语言:简体中文 | 连载状态:全集 |
电子书格式:pdf,txt,epub,mobi,azw3 | 下载次数:7617 |
创建日期:2024-04-05 | 发布日期:2024-04-05 |
运行环境:PC/Windows/Linux/Mac/IOS/iPhone/iPad/Kindle/Android/安卓/平板 |
本书共5部分25章,核心主题为工程效能,即软件工程中的生产力,具体内容包括:生产力的度量,何为生产力,软件工程中的生产力框架,具体场景下的软件生产力及其度量,如何消除浪费以提升生产力等可以推广到行业应用中去的最佳实践。
在软件开发百花齐放的当下,重新思考软件开发的生产力是必要而且可行的,书中包含丰富的思考与行动建议。来自产学研和各个学科的碰撞,构建出来一个大致可行的软件生产力认知、衡量和改善框架,对全球,尤其是互联网企业具有非常重要的现实意义。
凯特琳·萨多夫斯基(Caitlin Sadowski)博士,谷歌(加州山景城总部)工程师,致力于研究和改进开发人员的工作流程。她目前担任Chrome度量团队的主管,帮助Chrome开发人员做出数据驱动的决策。她创建的Tricorder程序分析平台使静态分析在Google被广泛采用,参与创建了工程生产力研究团队,研究开发人员的时间分配以及使他们高效工作的原因。她是顶级软件工程和编程语言研讨会(ICSE、ESEC/FSE、OOPSLA和PLDI)的委员会成员。
她在加利福尼亚大学圣克鲁兹分校做跨学科研究(编程语言、软件工程和人机交互)并获得博士学位。她喜欢和她三岁的纳鲁(Naru,也叫Mr.Wiggles)一起烤面包。
结合全球软件工程师的现状,从人数、性别以及编程语言和程序类别等角度来分析生产力衡量和提升的复杂性,重新思考软件工程中的生产力这个迫在眉睫的问题。
《工程效能十日谈》汇集关于软件工程生产力的智慧,从知识经济时代的背景重新思考生产力的定义和度量。涵盖的主题包括但不限于:与生产力相关的定义和核心概念;在特定情况下衡量生产力的准则;最佳实践和陷阱;有关生产力的理论和开放性问题。每一章针对软件工程效率的一个方面进行重点讨论。
《工程效能十日谈》面向许多领域和行业的读者。希望提高个人生产力的开发人员可以从中学到可用于解决干扰工作进度问题的有效策略。考虑建立个人与团队绩效考核的组织可以从行业和研究人员那里学习量化软件工作者生产率的最佳实践。研究人员可以利用书中的概念框架和丰富的文献资料有效地寻求新的研究方向。
正如安德森(Marc Andreessen)所说,软件正在吞噬世界,人们对软件的需求与日俱增。尽管专业软件开发人员的数量出现了巨幅增长,但仍然处于短缺状态。为了满足这一需求,我们需要更多高效的软件工程师。
在过去的几十年,人们对理解和提高软件开发人员与团队的生产力*进行了大量的研究。已经有大量关于软件生产力含义的研究成果。其中很多都引入了生产力的定义(非常多!),考虑了与生产力相关的组织问题,并侧重于提高生产力的具体工具和方法。事实上,大多数关于软件生产力的开创性工作都是在20世纪80年代和90年代进行的(如《人件》、《人月神话》和《个人软件过程》等)。
为什么会有这本书
这本书始于在德国达格斯图尔召开的、为期一周的工作坊。本次研讨会的动机是,自20世纪80年代和90年代以来,许多事情都发生了变化,是时候重新审视什么才是使现代软件工程师具备高生产力的根基。
自20世纪80年代和90年代以来发生了什么变化?今天的软件团队和工程师通常面临着全球化的现状,他们跨越国界和时区进行协作,实践敏捷软件开发,常用诸如Stack Overflow和GitHub等社会化协作工具,并且常用笔记本电脑或个人设备进行工作。今天的软件工程师必须处理前所未有的复杂系统,在云上快速构建大型系统,在单个存储库中存储数百万(甚至数十亿)行代码,能够一天多次频繁地发布软件。他们平均使用11.7个沟通渠道,比如网络搜索、博客、问答网站和社交网站;1984年,软件工程师的主要沟通渠道是电话和面对面的会议。人机交互(HCI)和计算机支持的协同工作(CSCW)社区在支持知识工作者提高生产力方面取得了重大进展,相关进展也波及到了软件工程师。此外,收集更大范围的软件开发数据使得对生产力进行精密分析成为了可能。
本次研讨会的目的是重新思考、讨论和解决软件开发中生产力的开放性问题,从中发现如何度量和培养提高软件开发人员生产力的行为。具体来说,研讨会对以下问题进行了集中讨论:
生产力对个人、团队和组织意味着什么?
生产力的维度及其影响因素?
衡量生产力的目的和意义何在?
生产力研究面临哪些重大的挑战?
这本书探讨了生产力对现代软件开发的意义,由达格斯图尔研讨会的参与者(见下图)和其他许多专家联合撰写,旨在总结和传播业界和学界对软件生产力的经验理解和真知灼见。
2017年3月,“重新思考软件生产力”达格斯图尔研讨会全体成员
本书概述
这本书由五个部分组成。首先是一系列概述衡量生产力挑战的文章(“度量生产力:没有银弹”)。接下来,将生产力分解为几个组成部分(“定义生产力”)和识别生产力要素以及如何从不同的角度看待生产力(“生产力的影响因子”)。虽然生产力一般很难衡量,但我们通过一些具体的案例研究度量生产力的某些方面(“实际度量生产力”)。最后,书中通过一系列文章来探讨如何采取干预措施来提升生产力(“提高”生产力最佳实践”)。
第I部分 度量生产力:没有银弹
传闻中某些程序员的工作效率比其他人高十倍,这是真的吗?第1章通过深入研究的数据来回应这个问题。然后,第2章解释单一的生产力指标的本质性错误。第3章描述一个思维实验来说明监测生产力可能产生的副作用。
第II部分 定义生产力
第4章概述过去对生产力的定义方式。第5章描述了一个将生产力分解为三个维度的框架(质量、速度和满意度)以及在考虑衡量生产力时如何应用该框架。第6章描述从特定的视角考虑生产力的重要性。第7章总结生产力的概念并概述相关背景下的生产力研究(知识工作)。
第III部分 生产力影响因素
有许多不同的因素可能会影响软件工程师的生产力。第8章通过一份完整的清单概述这些因素。在接下来的两章中,深入探讨其中的两个因素。第9章概述对打扰的研究。第10章对幸福感和生产力之间关系的研究进行讨论。第11章通过反面教材来思考社会因素对生产力影响的重要性。
第IV部分 实际度量生产力
第12章深入研究开发人员感知生产力的不同方式,以及对程序员自己报告生产力的量化分析。第13章讨论定性研究方法如何帮助人们应对生产力的挑战。第14章概述了使用眼动追踪器和脑电图(EEG)扫描来量化生产力的好处和局限性。第15章讨论了解更大团队(团队认知)中发生的事情对生产力的重要性,以及如何衡量团队认知。第16章概述在仪表盘中展示生产力指标的好处和挑战。
一些组织使用国际标准化组织(ISO)的标准方法进行生产力基准化分析,最后两章对这部分进行了介绍。第17章概述了一种量化方式(COSMIC)。第18章描述了一个关于组织中使用COSMIC基准方法的案例研究。
第V部分 提高生产力最佳实践
本书包含很多提高软件工程师生产力的“最佳实践”,于是我们对不同干预手段进行了介绍,提供多种视角来描述这些干预手段是什么样的。第19章描述如何改变从“提高生产力”到“减少浪费”的思维方式,使生产力的提高变得容易。第20章描述拥有清晰而成熟的流程之重要性。第21章回答了结对编程的参与度问题。
同时,也可以通过工具支持的干预措施来提高生产力。第22章描述工作中对个人生产力进行监测的好处和挑战。第23章提出一个系统来显示何时可以打断软件工程师。在第24章回顾软件开发过程中涉及的人机交互和信息获取等相关技术的发展。最后,第25章聚焦于内在,概述正念在生产力中所起的作用。
软件生产力的未来
虽然这些论文都是由软件工程所专家撰写的,但很难面面俱到。软件开发总是在变化,我们对软件生产力的知识还有很多的欠缺。在达格斯图尔研讨会上,参会者确定了几个开放性问题和重大挑战。三个最主要的挑战分别是:基于我们已具备的知识建立一个软件生产力的知识体系;改进生产力度量方式;通过干预来影响和提高软件生产力。
1. 建立软件生产力知识体系
以下是构建软件生产力知识体系的建议措施。
开发生产力理论框架。
定义类似于软件演进规律的生产力规律或规则。例如,一个更快乐的开发人员同时也是一个更有效率的开发人员;注重参与的团队效率更高。
检查软件开发与其他类型的知识工作中工作者的区别,研究软件开发的独有特性和共性。
建构生产力问题与相关研究方法的映射关系。
2. 改进生产力度量方式
以下是改进生产力度量的建议措施。
收集好的案例。从收集的信息中提炼出见解和指导方针。
开发一种能够随时进行全方位跟踪的方法,包括公司内部的详细数据、个人的生物特征数据及满意度、情绪、疲劳和动机等方面的数据。用这些数据来分析开发工作和生产力。显然,这样的方法很难(如果方法可行)获得隐私信息的授权。
3. 提高软件工程师的生产力
以下是提高软件工程师生产力的建议措施。
了解如何支持和提高生产力。
对不同公司和采取不同干预措施之后的生产力进行大量数据的比较研究。
激动人心的时代即将来临,我们希望你喜欢这本书!
致谢
本书的问世离不开许多人的努力。我们非常感谢各章的作者和Apress出版社,特别是格林(Todd Green)、巴尔扎诺(Jill Balzano)和麦克德莫特(Susan McDermott)等的广博而专业的工作成果。特别感谢达格斯图尔研讨会的组织者和工作人员(网址为https://www.dagstuhl.de,计算机科学家的聚集地),他们主办的独创性会议是这本书的起源。还要特别感谢易(Jaeheon Yi )和费斯膝(Ambrose Feinstein),没有他们,我们不可能留出时间来研究这个课题。
关于主编
凯特琳·萨多夫斯基(Caitlin Sadowski)博士,谷歌(加州山景城总部)工程师,致力于研究和改进开发人员的工作流程。她目前担任Chrome度量团队的主管,帮助Chrome开发人员做出数据驱动的决策。她创建的Tricorder程序分析平台使静态分析在Google被广泛采用,参与创建了工程生产力研究团队,研究开发人员的时间分配以及使他们高效工作的原因。她是顶级软件工程和编程语言研讨会(ICSE、ESEC/FSE、OOPSLA和PLDI)的委员会成员。
她在加利福尼亚大学圣克鲁兹分校做跨学科研究(编程语言、软件工程和人机交互)并获得博士学位。她喜欢和她三岁的纳鲁(Naru,也叫Mr. Wiggles)一起烤面包。
托马斯·齐默尔曼(Thomas Zimmermann)博士,专注于分析数据的微软研究院高级研究员。他目前致力于提高微软软件开发人员和数据科学家的工作效率。他过去主要分析来自数字化游戏、分支结构和BUG报告的数据。他是Empirical Software Engineering Journal的联合主编,并在IEEE Transactions on Software Engineering、IEEE Software、Journal of Systems and Software和Journal of Software: Evolution and Process的编辑委员会任职。他是顶级软件工程会议(ICSE、ESEC/FSE和ASE)的委员会成员,也是ACM SIGSOFT的主席。他编过推荐系统(Springer)和软件工程中的数据科学(Morgan Kaufmann)方面的书籍。他在萨尔大学从事软件仓库挖掘工作并获得博士学位。他喜欢看电影,喜欢在-21℃的天气下踢足球,喜欢收集独角兽。
简??明??目??录
第Ⅰ部分 度量生产力:没有银弹
第1章 传说中的10倍效率程序员 3
第2章 单一指标无法充分体现生产力 13
第3章 为什么不应该度量生产力 21
第Ⅱ部分 定义生产力
第4章 定义软件工程中的生产力 29
第5章 一种软件开发生产力框架 39
第6章 四大视角:个人、团队、组织和市场 47
第7章 从知识工作角度看软件生产力 53
第Ⅲ部分 生产力影响因素
第8章 生产力影响因素清单 63
第9章 打扰对生产力的影响 79
第10章 软件开发人员的幸福感与生产力 97
第11章 暗敏捷:工程师≠资产=有情感的人 111
第IV部分 生产力度量实践
第12章 开发人员对生产力的认知不同 123
第13章 基于行为分析方法来提高生产力 131
第14章 应用生物识别传感器来量化生产力 139
第15章 团队认知对开发人员生产力的影响 147
第16章 软件工程仪表盘:类型、风险和未来 155
第17章 COSMIC方法:用于度量生产力的产出 167
第18章 基准化分析法:比较同类事物 179
第V部分 生产力最佳实践
第19章 消除软件开发浪费以提高生产力 193
第20章 组织成熟度:影响生产力的“大象” 211
第21章 结对编程有效吗 219
第22章 开发人员的 Fitbit:工作中的自我监控 229
第23章 通过指示灯来减少工作中的打扰 239
第24章 通过改善信息流来实现高效软件开发 247
第25章 正念有望提高生产力 257
详??细??目??录
第I部分 度量生产力:没有银弹
??第1章 传说中的10倍效率程序员 3
一组关于工时的变异数据 3
坚持可比性 4
清楚定义比较规则 5
放弃同一性:不同编程语言各显神通 6
对样本组成提出疑问 6
不只是开发成本 7
慢性子程序员会更细心吗 8
编程语言影响很大 8
重新审视生产力的定义 9
真实工作场景中会是这样的吗 9
回顾:那又怎样 10
关键思想 11
??第2章 单一指标无法充分体现生产力 13
度量个人绩效存在哪些问题 14
为什么要度量开发人员的生产力 14
单一生产力指标存在哪些本质上的错误 15
在谷歌,我们是怎么做的 17
关键思想 18
??第3章 为什么不应该度量生产力 21
意外后果 22
解释生产力 23
应对变化 24
管理者负责度量 25
关键思想 25
第Ⅱ部分 定义生产力
??第4章 定义软件工程中的生产力 29
软件生产力简史 30
一般文献中的术语 31
结语 35
关键思想 36
致谢 36
??第5章 一种软件开发生产力框架 39
软件开发中的生产力维度 40
不同视角 41
有效生产力框架:明确目标、问题和度量 42
关键思想 45
??第6章 四大视角:个人、团队、组织和市场 47
个人 47
团队 48
组织 49
市场 50
全视角生产力 50
关键思想 51
??第7章 从知识工作角度看软件生产力 53
知识工作简史 53
生产力度量方法 54
影响生产力的驱动因素 56
软件开发人员与知识工作者:相似还是不同 58
结语 59
关键思想 59
第Ⅲ部分 生产力影响因素
??第8章 生产力影响因素清单 63
简介 63
生产力影响因素研究 64
技术因素清单 64
软性因素清单 68
个人技能和经验 70
结语 73
关键思想 73
致谢 73
补充说明:设计评审 74
??第9章 打扰对生产力的影响 79
关于打扰 79
受控实验 80
认知模型 84
观察研究 86
关键发现 89
关键思想 90
致谢 90
??第10章 软件开发人员的幸福感与生产力 97
为什么要高薪招募有幸福感的软件工程师 98
什么是幸福感?如何量化 98
快乐而富有成效的软件工程师是否有科学依据 98
幸福感对其他结果的潜在影响 106
未来发展趋势 107
延伸阅读 108
关键思想 108
??第11章 暗敏捷:工程师≠资产=有情感的人 111
重新审视《敏捷宣言》 111
全球外包领域中的敏捷开发 112
跟踪工作方式,提升生产力 113
每日站会,跟踪工作效率 113
工作压力大 114
生产力的代价 114
软件工程效率的开放性问题 116
关键思想 117
致谢 117
第IV部分 生产力度量实践
??第12章 开发人员对生产力的认知不同 123
生产力度量与感知 123
研究软件开发人员对生产力的认知 124
上下文切换成本 124
开发人员富有成效的工作日常 125
开发人员期望用不同的方法来量化生产力 126
通过对生产力的认知来做软件开发人员画像 126
瞄准时机,提高开发人员的生产力 128
关键思想 129
??第13章 基于行为分析方法来提高生产力 131
关键思想 136
??第14章 应用生物识别传感器来量化生产力 139
生产力的度量 139
如何保持关注 140
应用脑电图来观察注意力 141
如何测量反刍思维 142
展望 143
关键思想 144
??第15章 团队认知对开发人员生产力的影响 147
简介 147
认知和生产力 148
提高协同软件开发的认知 149
将信息聚合为数字 150
将信息聚合为文本 150
重新思考生产力和团队认知 152
关键思想 153
??第16章 软件工程仪表盘:类型、风险和未来 155
摘要 155
软件工程中的仪表盘 157
开发人员的行为 157
团队表现 158
项目监控和绩效 159
结语 160
使用仪表盘的风险 160
重新思考软件工作中的仪表盘 162
关键思想 163
??第17章 COSMIC方法:用于度量生产力的产出 167
功能大小的度量 168
COSMIC方法 169
COSMIC模型的讨论 170
复杂度如何度量呢 172
自动化COSMIC大小度量 175
结语 176
关键思想 177
??第18章 基准化分析法:比较同类事物 179
摘要 179
使用标准 180
功能规格度量 180
基准化评估的原因 182
基准化评估的标准方法 183
归一化 184
基准化评估的数据来源 184
ISBSG 数据库 185
内部基准化评估数据库 186
基准化评估实战 186
不良导向 187
结语 188
关键思想 188
第V部分 生产力最佳实践
??第19章 消除软件开发浪费以提高生产力 193
引言 193
软件开发浪费的分类 194
讨论 205
并非所有问题都是浪费 205
结语 208
关键思想 209
??第20章 组织成熟度:影响生产力的“大象” 211
背景 211
过程成熟度框架 212
成熟度对生产力和质量的影响 214
更新成熟度实践适应敏捷DevOps环境 215
结语 217
关键思想 217
??第21章 结对编程有效吗 219
简介:高效编程 219
对结对编程进行研究 221
作为知识工作的软件开发 222
企业内部结对编程中的重要问题 223
如此说来,结对编程有效吗 225
关键思想 226
??第22章 开发人员的 Fitbit:工作中的自我监控 229
通过自通过自我监控来量化我们的生活 229
在软件开发工作中进行自我量化 230
通过个性化定制来满足不同人的需求 232
通过自主汇报来提升开发人员对效率的意识 232
通过回顾工作来提升开发人员的自我认知 233
通过可操作的洞见促进高效的行为变化 233
提升团队意识及消除隐私顾虑 234
在工作中培养可持续的行为 236
关键思想 236
??第23章 通过指示灯来减少工作中的打扰 239
工作中的打扰,成本有多高 239
指示灯:指出什么时候可以接受打扰 240
指示灯评估和收益 241
指示灯成功的关键因素 242
结语 244
关键思想 245
??第24章 通过改善信息流来实现高效软件开发 247
Mylyn:改善软件开发人员的信息流 248
Tasktop Sync:改善开发团队的信息流 250
Tasktop Integration Hub:改善软件开发组织的信息流 252
结语 254
关键思想 255
??第25章 正念有望提高生产力 257
正念的定义 257
正念与生产力 258
正念的认知益处 258
专注力和情商 260
正念的陷阱 260
正念休息 261
结语 262
关键思想 262
JD购物方便快捷,快递给力
2023-05-31 18:50:48