《学习敏捷》精读笔记
2.理解敏捷价值观
- 1.团队主管、架构师和项目经理的讨论
- 2.没有银弹
- 3.敏捷可以拯救乱局吗
- 4.视角割裂
- 5.敏捷宣言帮助团队认识实践的目的:1.个体和互动高于流程和工具;2.可工作的软件高于详尽的文档;3.客户协作高于合同谈判;4.响应变化高于遵循计划;5.原则高于实践
- 6.理解敏捷的“大象”
- 7.着手采用一套新方法
3.敏捷原则
- 1.敏捷软件开发的12条原则
- 2.客户总是对的吗?
- 3.交付项目:1.原则1:最优先要做的是尽早,持续地交付有价值的软件,让客户满意;2.原则2:欣然面对需求变化,即使是在开发后期。敏捷过程利用变化为客户维持竞争优势;3.原则3:频繁交付可工作的软件,从数周到数月,交付周期越短越好
- 4.沟通和合作:1.原则4:在团队内外,面对面交谈是最有效、也是最高效的沟通方式;2.原则5:在整个项目过程中,业务人员和开发人员必须每天都在一起工作;3.原则6:以受激励的个体为核心构建项目,为他们提供环境和支持,相信他们可以把工作做好
- 5.项目实施-推进项目:1.原则7:可工作的软件是衡量进度的首要标准;2.原则8:敏捷过程倡导可持续开发。赞助商、开发人员和用户要能够共同、长期维持其步调,稳定向前;3.原则9:坚持不懈地追求技术卓越和设计优越,以此增强敏捷的能力
- 6.项目和团队的持续改进:1.原则10:简单是尽最大可能减少不必要工作的艺术,是敏捷的根本;2.原则11:最好的架构、需要和设计来自自组织的团队;3.原则12:团队定期反思如何提升效率,并依此调整
- 7.敏捷项目:整合所有原则
4.Scrum和自组织团队
- 1.Scrum的规划
- 2.第一幕:Scrum的适用条件
- 3.Scrum团队中每个人都要对项目负责
- 4.第2幕:状态更新只是社交网络的玩法
- 5.整个团队参与每日Scrum例会
- 6.第3幕:将冲刺计划写到墙上
- 7.冲刺、计划和回顾会议
- 8.第4幕:尽力之后
5.Scrum计划和集体承诺
- 1.第5幕:出乎意料
- 2.用户故事、速度和普遍接受的Scrum实践:1.提升软件价值;2.以用户故事构建用户真正会用到的功能;3.满意条件;4.故事点和速度; 5.燃尽图;6.通过用户故事、故事点、任务和任务板来计划并实施冲刺;7.广受认可的Scrum实践
- 3.第6幕:第一次胜利
- 4.回顾Scrum价值观
6.极限编程和拥抱变化
- 1.第1幕:开始加班
- 2.极限编程的主要实践:1.编程实践;2.集成实践;3.计划实践;4.团队实践
- 3.第2幕:计划有变,但我们还是看不到希望
- 4.极限编程的价值观帮助团队改变心态:1.极限编程帮助开发人员学会用户协作;2.开发团队的怀疑会破坏实践的效用
- 5.正确的思维从极限编程的价值观开始:1.极限编程的价值观;2.以善意铺就
- 6.第3幕:势头的变换
- 7.理解极限编程价值观,拥护变化:1.极限编程的指导原则;2.极限编程指导原则可以加深对计划的理解;3.极限编程指导原则与实践相互促进;4.反馈循环
7.极限编程、简化和增量式设计
- 1.第4幕:再次加班
- 2.代码和设计:1.代码异味和反模式;2.极限编程团队主动寻找和修复代码异味;3.钩子、边界情况以及功能过多的代码;4.代码异味会增加复杂性
- 3.把编码和设计决定留到最后责任时刻:1.决然重构,偿还技术债务;2.持续集成,排查设计问题;3.避免一体式设计
- 4.增量式设计与极限编程的整体实践:1.有时间进行思考,团队才能做好工作;2.团队成员彼此信任并共同作出决定;3.极限编程的设计、计划、团队和整体实践形成了一个带动创新的系统;4.增量式设计与为了复用而设计;5.简化单元交互,系统实现增量式成长;6.优秀的设计源自简单的交互
- 5.第5幕:最终得分
8.精益、消除浪费和着眼全局
- 1.精益思维:1.已经理解了很多精益价值观;2.承诺、选择意识和集合式开发
- 2.第1幕:还有一件事
- 3.创造英雄与神奇思维
- 4.消除浪费
- 5.加深对产品的理解:1.着眼全局;2.找到问题的根本原因
- 6.尽快交互:1.使用面积图可视化工作进度;2.限制进行中的工作,控制瓶颈;3.拉动式系统帮助团队消除约束
9.看板方法、流程和持续改进
- 1.第2幕:紧赶慢赶的游戏
- 2.看板方法的原则:1.找到一个出发点并由此进行实验性的演进;2.用户故事进去,代码出来
- 3.用看板方法改进流程:1.将工作流程可视化;2.限制进行中的工作
- 4.测量并管理流程:1.用CFD和进行中工作面积图测量并管理流量;2.用利特尔法则控制系统的测量;3.用进行中工作上限管理流量,自然地创造缓冲;4.让过程策略明确统一
- 5.看板方法下自然发生的行为
10.敏捷教练
- 1.第3幕:还有一件事
- 2.教练要理解人们为什么不想改变
- 3.教练要理解人们如何学习
- 4.教练清楚如何让一套方法起作用
- 5.进行敏捷指导时的原则