学习敏捷 构建高效团队pdf

图书网 2018年9月8日20:17:50
评论
2.6K

本书将帮你确定应采用哪些原则来解决你的团队、公司、项目的具体开发问题。你将发现如何使用那些信息指导方法论和实践的选择。

通过本书你将学到:

软件开发团队的价值观;

体现这些价值的方法论;

组成这些方法论的实践;

帮助你将这些价值观、方法论和实践都应用到你的团队和公司的原则。

学习敏捷 构建高效团队 内容简介

本书以敏捷软件开发为中心,系统阐述了敏捷原则和实践的先进理念和重要意义,并分别讲解了Scrum、极限编程、精益和看板四套敏捷实践的应用。作者从开发团队的日常困境入手,用讲故事的形式展开问题,由表及里,层层讲解,并在每一章后附上参考书,便于读者进一步查找学习。本书内容生动,语言通俗易懂,集趣味性和实用性于一体,是学习敏捷开发、提升团队效率的最佳参考书。

学习敏捷 构建高效团队 目录

序 xv

前言 xvii

第1章 学习敏捷 1

1.1 什么是敏捷 2

1.2 本书的读者对象 5

1.3 本书的目标 6

1.4 努力建立敏捷思维 6

1.5 本书结构 9

第2章 理解敏捷价值观 11

2.1 团队主管、架构师和项目经理走进了一间酒吧…… 12

2.2 没有银弹 14

2.3 敏捷可以拯救乱局吗 16

2.3.1 引入敏捷,带来变化 17

2.3.2 “聊胜于无”的结果 18

2.4 视角割裂 19

2.4.1 视角割裂带来的问题 21

2.4.2 为什么视角割裂只能做到“聊胜于无” 22

2.5 敏捷宣言帮助团队认识实践的目的 24

2.5.1 个体和互动高于流程和工具 25

2.5.2 可工作的软件高于详尽的文档 25

2.5.3 客户协作高于合同谈判 26

2.5.4 响应变化高于遵循计划 26

2.5.5 原则高于实践 27

2.6 理解敏捷的“大象” 28

2.7 着手采用一套新方法 32

第3章 敏捷原则 37

3.1 敏捷软件开发的12条原则 38

3.2 客户总是对的吗 38

3.3 交付项目 40

3.3.1 原则1:最优先要做的是尽早、持续地交付有价值的软件,让客户满意 40

3.3.2 原则2:欣然面对需求变化,即使是在开发后期。敏捷过程利用变化为客户维持竞争优势 41

3.3.3 原则3:频繁交付可工作的软件,从数周到数月,交付周期越短越好 42

3.3.4 改进电子书阅读器团队的项目交付计划 44

3.4 沟通和合作 46

3.4.1 原则4:在团队内外,面对面交谈是最有效、也是最高效的沟通方式 48

3.4.2 原则5:在整个项目过程中,业务人员和开发人员必须每天都在一起工作 49

3.4.3 原则6:以受激励的个体为核心构建项目,为他们提供环境和支持,相信他们可以把工作做好 51

3.4.4 在电子书阅读器项目中采用更好的沟通方式 52

3.5 项目实施——推进项目 53

3.5.1 原则7:可工作的软件是衡量进度的首要标准 53

3.5.2 原则8:敏捷过程倡导可持续开发。赞助商、开发人员和用户要能够共同、长期维持其步调,稳定向前 54

3.5.3 原则9:坚持不懈地追求技术卓越和设计优越,以此增强敏捷的能力 55

3.5.4 改善电子书阅读器团队的工作环境 55

3.6 项目和团队的持续改进 56

3.6.1 原则10:简单是尽最大可能减少不必要工作的艺术,是敏捷的根本 56

3.6.2 原则11:最好的架构、需求和设计来自自组织的团队 57

3.6.3 原则12:团队定期反思如何提升效率,并依此调整 57

3.7 敏捷项目:整合所有原则 58

第4章 Scrum 和自组织团队 62

4.1 Scrum 的规则 64

4.2 第1 幕:Scrum 的适用条件 65

4.3 Scrum 团队中每个人都要对项目负责 67

4.3.1 Scrum 主管指导团队的决策 67

4.3.2 产品所有者帮助团队了解软件的价值 68

4.3.3 每个人都对项目负责 69

4.3.4 Scrum 有一组自己的价值观 75

4.4 第2幕:状态更新只是社交网络的玩法 78

4.5 整个团队参与每日Scrum 例会 80

4.5.1 反馈和“可见 检查 调整”周期 80

4.5.2 最后责任时刻 81

4.5.3 召开有效的每日Scrum 例会 83

4.6 第3幕:将冲刺计划写到墙上 86

4.7 冲刺、计划和回顾会议 87

4.7.1 迭代式与增量式 87

4.7.2 冲刺成也在于产品所有者,败也在于产品所有者 89

4.7.3 可见性和价值观 89

4.7.4 计划并执行有效的Scrum 冲刺 93

4.8 第4幕:尽力之后 94

第5章 Scrum 计划和集体承诺 99

5.1 第5 幕:出乎意料 100

5.2 用户故事、速度和普遍接受的Scrum实践 102

5.2.1 提升软件价值 102

5.2.2 以用户故事构建用户真正会用到的功能 103

5.2.3 满意条件 105

5.2.4 故事点和速度 106

5.2.5 燃尽图 108

5.2.6 通过用户故事、故事点、任务和任务板来计划并实施冲刺 111

5.2.7 广受认可的Scrum实践 115

5.3 第6幕:第一次胜利 116

5.4 回顾Scrum价值观 116

5.4.1 具体实践没有价值观也有效果(只是别管它叫Scrum) 117

5.4.2 你的公司文化与Scrum的价值观兼容吗 119

第6 章 极限编程与拥抱变化 128

6.1 第1幕:开始加班 129

6.2 极限编程的主要实践 130

6.2.1 编程实践 130

6.2.2 集成实践 131

6.2.3 计划实践 132

6.2.4 团队实践 133

6.2.5 为什么开发团队抵制变化,上述实践如何提供帮助 134

6.3 第2幕:计划有变,但我们还是看不到希望 137

6.4 极限编程的价值观帮助团队改变心态 139

6.4.1 极限编程帮助开发人员学会与用户协作 141

6.4.2 开发团队的怀疑会破坏实践的效用 142

6.5 正确的思维从极限编程的价值观开始 144

6.5.1 极限编程的价值观 144

6.5.2 以善意铺就 144

6.6 第3幕:势头的变换 147

6.7 理解极限编程价值观,拥抱变化 148

6.7.1 极限编程的指导原则 149

6.7.2 极限编程指导原则可以加深对计划的理解 151

6.7.3 极限编程指导原则与实践相互促进 152

6.7.4 反馈循环 154

第7章 极限编程、简化和增量式设计 163

7.1 第4幕:再次加班 164

7.2 代码和设计 165

7.2.1 代码异味和反模式(如何判断你是不是聪明过头了)166

7.2.2 极限编程团队主动寻找和修复代码异味 168

7.2.3 钩子、边界情况以及功能过多的代码 170

7.2.4 代码异味会增加复杂性 175

7.3 把编码和设计决定留到最后责任时刻 175

7.3.1 决然重构,偿还技术债务 177

7.3.2 持续集成,排查设计问题 179

7.3.3 避免一体式设计 180

7.4 增量式设计与极限编程的整体实践 182

7.4.1 有时间进行思考,团队才能做好工作 184

7.4.2 团队成员彼此信任并共同作出决定 186

7.4.3 极限编程的设计、计划、团队和整体实践形成了一个带动创新的系统 186

7.4.4 增量式设计与为了复用而设计 188

7.4.5 简化单元交互,系统实现增量式成长 190

7.4.6 优秀的设计源自简单的交互 190

7.5 第5幕:最终得分 192

第8章 精益、消除浪费和着眼全局 200

8.1 精益思维 201

8.1.1 你已经理解了很多精益价值观 201

8.1.2 承诺、选择意识和集合式开发 203

8.2 第1幕:还有一件事…… 207

8.3 创造英雄与神奇思维 209

8.4 消除浪费 210

8.5 加深对产品的理解 214

8.5.1 着眼全局 216

8.5.2 找到问题的根本原因 218

8.6 尽快交付 219

8.6.1 使用面积图可视化工作进度 221

8.6.2 限制进行中的工作,控制瓶颈 225

8.6.3 拉动式系统帮助团队消除约束 226

第9章 看板方法、流程和持续改进 233

9.1 第2幕:紧赶慢赶的游戏 234

9.2 看板方法的原则 236

9.2.1 找到一个出发点并由此进行实验性的演进 236

9.2.2 用户故事进去,代码出来 238

9.3 用看板方法改进流程 240

9.3.1 将工作流程可视化 241

9.3.2 限制进行中的工作 246

9.4 测量并管理流量 251

9.4.1 用CFD 和进行中工作面积图测量并管理流量 252

9.4.2 用利特尔法则控制系统的流量 259

9.4.3 用进行中工作上限管理流量,自然地创造缓冲 263

9.4.4 让过程策略明确统一 265

9.5 看板方法下自然发生的行为 266

第10章 敏捷教练 275

10.1 第3 幕:还有一件事(又来了?!)…… 276

10.2 教练要理解人们为什么不想改变 277

10.3 教练要理解人们如何学习 280

10.4 教练清楚如何让一套方法起作用 284

10.5 进行敏捷指导时的原则 285

关于作者 288

关于封面 288

学习敏捷 构建高效团队 精彩文摘

1.1 什么是敏捷

敏捷是指能够让团队思考更加有效、工作更为高效,并且作出更好决策的一组方法和相关理念。

这些方法和理念适用于传统软件工程的所有领域,例如项目管理、软件设计、软件架构和流程改进。每种方法和理念都包括实践。这些实践经过了精简和优化,应用起来非常方便。

敏捷也是一种思维模式,思维模式的正确与否会影响团队具体实践的高效程度。正确的思维模式有助于团队成员共享信息,从而共同作出重要的项目决策,而不是让经理独自负责所有的决策。敏捷思维模式涉及整个团队的开工计划、设计和流程改进。在敏捷团队所采用的实践方式中,大家不仅共享信息,而且对实践的应用方式都有发言权。

敏捷在有些团队中还没有取得成功,这造成了现实和承诺之间的差距。这种差距形成的关键往往在于项目团队的思维模式。很多构建软件的公司都尝试过敏捷开发。许多团队尝到了成功的甜头,而一些团队却结果平平。尽管这些团队在项目运作上有所改善,这些改善也足以证明采用敏捷的努力是值得的,但是他们并没有看到敏捷方法承诺的那些实质性改变。这就是改变思维模式的意义所在。走敏捷路线意味着帮助团队找到一种高效的思维模式。

那么,改变思维模式到底意味着什么?如果你是软件团队中的一员,那么你每天的工作就是规划、设计、构建和发布软件。思维模式与这些有什么关系呢?事实证明,你在日常工作中采取的实践很大程度上取决于你和其他团队成员对待实践的态度。

举个例子:每日站立会议(daily standup)是很多团队都采用的一种最常见的敏捷实践。在每日站立会议上,每一位成员都会讲述自己手头的工作以及面临的挑战。为了使会议简短,大家在会议期间全程站立。很多团队在项目中引入每日站立会议,因而获得了很大成功。

假设有一位刚开始学习敏捷的项目经理,他想在项目中引入每日站立会议。令他意外的是,并不是所有人都像他那样对这一新实践欣喜若狂。组里的一位开发人员非常气愤,项目经理竟然要增加一种新的会议,而且他似乎也感觉很不舒服,因为每天都要在会上被问及自己的工作情况。

那么这里到底出了什么问题?是开发人员不讲道理,还是项目经理要求太多?为什么这样一项被广泛接受的简单实践会引发一场冲突?

项目经理和开发人员双方各执一词,言之凿凿。项目经理面临的最大挑战之一是项目规划,这需要投入大量的精力。如果在构建软件时遇到问题,那么团队就有可能偏离当初的计划。项目经理必须努力了解每个人的工作情况,这样才能调整计划,帮助大家解决问题。

图书网:学习敏捷 构建高效团队pdf

继续阅读

→→→→→→→→→→→→→→→→→→→→查找获取

软件工程/开发项目管理

软件设计重构pdf

以4个设计原则为中心,全面呈现25种在软件项目中导致技术债务的设计坏味 提供一种独特的坏味命名方法,帮助理解坏味的由来并指出潜在重构方法 包含丰富的例证,展现糟糕设计实践的潜在坏味...
软件工程/开发项目管理

DevOps 最佳实践pdf

DevOps 最佳实践 作者: Bart de Best(巴特・德・贝斯特) DevOps 最佳实践 出版社:电子工业出版社 DevOps 最佳实践 内容简介 近年来,许多组织都体会到了使用敏捷方法的...
软件工程/开发项目管理

Android组件化架构pdf

Android走过的十个年头,其技术演进也是有迹可循的,本书作者基于自己在大型App架构的技术演进中成长的经历,将遇到的相关问题进行深入剖析,包括Android 组件化架构、模块化...
匿名

发表评论

匿名网友

:?: :razz: :sad: :evil: :!: :smile: :oops: :grin: :eek: :shock: :???: :cool: :lol: :mad: :twisted: :roll: :wink: :idea: :arrow: :neutral: :cry: :mrgreen: