背景
公司全面普及敏捷,TDD、Pair Programing在各个部门兴起。这次普及力度实在够劲,还准备打造内部敏捷教练团队,我也成为了内部敏捷教练的培养对象。一时觉得压力山大,但又很有意思。一方面,是给自己的平时的项目工作来点不一样的刺激,另一方面,能够深入与外部敏捷咨询师的合作和学习,实在机会难得,是个很好的充电机会。
流程和目标
整个过程包括:看书、分享、练习、实践和答辩。总的目的是从全位培养你的敏捷相关的技能,包括:
- Scrum、Kanban,掌握Agile的概念、原则、价值及具体实践;
- 技术实践,TDD、Pair Programing、Clean Code、重构的能力;
- 业务能力,知道一些方法论,帮助团队扩大产品业务价值。
而做为未来的内部教练,当然少不了一Coaching的技能,包括:引导能力,指导能力和演讲能力。
要求
这么多的能力要培养,首先得看书补充知识。以下是对应相关能力培养的书单:
- 构建知识体系的能力
- 管理实践
- 硝烟中的Scrum和XP★
- Agile 敏捷宣言★
- 看板方法
- 敏捷估算与计划
- Scrum精髓
- Agile 敏捷宣言★
- 技术实践
- 代码整洁之道★
- 重构-改善既有代码的设计★
- 敏捷软件测试:测试人员与敏捷团队的实践指南
- 敏捷软件开发原则、模式与实践
- 编写可读代码的艺术
- Google软件测试之道
- 持续交付:发布可靠软件的系统方法★
- 修改代码的艺术★
- 测试驱动开发★
- 程序员的职业素养
- 持续集成:软件质量改进和风险降低之道
- 发布!软件的设计与部署
- 领域驱动设计
- 微服务设计
- 硝烟中的Scrum和XP★
- 业务能力
- 用户故事与敏捷方法★
- 用户故事地图
- 实例化需求
- Cucumber:行为驱动开发指南
- 管理实践
- 教练能力
- 引导能力
- 学会提问
- 敏捷教练:如何打造优秀的敏捷团队
- 敏捷回顾:团队从优秀到卓越之道
- 你的灯还亮着吗?
- 如何构建敏捷项目管理团队
- 指导能力
- 关键对话
- 卓有成效的管理者
- 高效能人士的七个习惯
- 罗伯特议事规则
- 转型能力
- 敏捷IT组织设计
- 重新定义团队
- 重新定义管理
- DevOps实践
- 凤凰项目
- 演讲能力
- 金字塔原理
- 引导能力
除了读书,当然少不了实践。我们的训练实践包括:每周读书分享、外部咨询师提供的相应课程、每周的编程作业以及工作项目中的实际应用(包括技术的引进和团队的合作方法改进)。
计划与想法
输出是最好的验证输入的方法。我想把学习到的东西记录到笔记中,然后整理到博客上,这样就能很好的梳理学习到的概念。另外,技术的学习最好的方法自然是动手写代码,我将会在GitHub上建立代码库,把这次培训过程中用的的案例和作业都整理到上面,这样也是为日后的分享作素材储备。考虑到,我现在的项目主要以node.js居多,而训练中大多的例子都是JAVA为主,我打算建立两个代码库,先做完JAVA的做业,然后再自己寻找JavaScripts的例子,实践一遍。至于,在实际工作实践的话,那就相对简单了,我们团队每周都会组织内部分享。我只要把学到的东西整理好,在内部分享一次,这样既可以锻炼一下演讲能力,也可以收集同事给的反馈和建议,并落实到实际工作中。
为保证训练按部就班地进行,外部导师会协助我定制Coaching Kata,这也是一个很有效的手段,以后可以应用到团队中。