2012

转眼又来到了2013年,是时候反省一下整个去年的成长以及设定一下2013的目标。

主要领域
回顾一下去年的回顾,主要的努力方向有三个,分别是:
* 用户中心设计 (User Centric Design)
* 需求方面的团队合作 (Requirement Collaboration)
* 技术

用户中心设计方面,主要针对Jeff Patton的用户中心设计,Kent McDonald的特征注入(Feature Injection),Gojko Adzic的Effect Map,Alan Cooper的情景人物(Persona)下了不少功夫,并把这些概念和工具与精益创业(Lean Startup)结合,与Jackson Zhang设计出了一个“从想法到产品Backlog的工作坊”。在多个客户项目中,已经帮助数个团队以这个工作坊为基础的启动工作坊(Liftoff workshop)启动了项目,确定了初始的项目目标、情景人物、根据情景人物的需要延伸出了需求,并排出了优先级,做出了发布计划。2012年年底我们也把该工作坊做成公开课形式,已经发布过三次,接下来还会以大约每个月一次的频率持续的发布。

需求方面的团队合作方面,主要是体现在客户项目中,促进团队的各个角色。主要是做了几方面的尝试,包括团队工作坊以及小范围个体工作坊。在产品Backlog梳理,发布计划以及Sprint计划会议中,主要是通过需求工作坊和设计工作坊,写用户故事工作坊、三个伙伴(Three Amigo)工作坊等。需求的定期梳理变成了很多团队的习惯。

因为其他高优先级项目的引入,技术方面方面投入的精力不够。主要是年初研究了一阵子Metrics-fu,年底的时候研究了ApprovalTest,并开始在项目中尝试通过ApprovalTest实现XSLT项目的测试驱动开发。技术方面另一个有趣的尝试,是与RubyChina的吕国宁(Daniel Lv)同学一起准备了七周七语言之Ruby的活动,并由此激发我们把准备过程录制成系列视频([1]不要只展示代码,展示如何演进代码,[2]视频: 两个Daniel结对写 Game of Life – 2),获得了很多不错的反馈。另外在一个客户项目中,有机会全程参与并指导了一个跨地域、大规模团队的持续集成导入,经历了从最初的代码和自动化脚本管理到最后的各种各样自动化测试以及环境的自动化部署和配置。

除了计划好的领域,另外几个主要着力的领域包括:
* 教授(Teaching)技术。
* 教练(Coaching)技术。
* 个人的修养提高。

教授(Teaching)技术方面,出了读书之外,2012年有更多的机会参加了一些培训、工作坊以及Co-coaching。今年参加了不少有意思的培训,对我个人影响比较大的包括Odd-e的认证Scrum开发人员培训、Jerry Weinberg&Ester Derby&Johanna Rothman的Problem Solving Leadership工作坊、Bas的认证ScrumMaster课程、Pete Behrens的认证Scrum产品负责人课程。

  • 尽管自己也是Odd-e认证Scrum开发人员培训的讲师,参加了三次包括Java和C++版本的培训,还是从中学到了很多东西,主要加深了包括对具体技术、测试驱动开发、演进式设计、重构的认识;除了技术,另一个有趣的方面是团队调教,如何在短时间内,把互相不认识的团队成员糅合成一个整体,促进其自管理,自我反思,如何通过培训+在适当时机抓住机会干涉(Intervene)去帮助团队成长。
  • Problem Solving Leadership工作坊对我来说是一个自我反省和演进的工作坊,让我更好的认识到我自己,以及如何在客户项目和社区发展中影响别人;另外一个重要的Learning是关于问题的设计,好的领导应该花更多的精力去设计问题而不是冲到前台去解决问题。
  • Bas的CSM培训具有极强的Bas特色,首先是极其丰富和深刻的教授、案例分析以及实时的问题解答总是相当精彩,每次参加或者Co-train都会有新的认识。
  • Pete Behrens是Scrum联盟原来CSC的Lead,他基本不做公开课,很幸运有机会跟他在同一个客户项目中合作,并在波士顿与他一起做了一次CSM和CSPO的课程。十分惊叹于Pete整个培训的整体设计,以及通过”Training From the Back of the Room”方式并结合多种引导技术、图像记录等引导学员自我觉醒、自我学习。

教练(Coaching)技术方面,今年有机会跟更多不同领域、多种背景的客户,系统的实践了如何组合多种敏捷教练的工具包括建议(Advise)、例子(Set example)、提高Awareness、以及激励持续学习。通过Create Awareness -> Set example -> Pair create -> Individual-exploring -> Feedback -> Let coachee teach的方式成功引导了多个组织的敏捷转型。

个人修养提高方面,最主要提高的是持续反思的实践。过去几年总会花很多时间去读书。今年总的读书量相对于前几年减少不少,但是我发现通过持续的反思,包括对读过的书、组织的活动,我获得的反而更多。感觉过去总是在不停的丢西瓜捡芝麻。另一个强化的方面是个人backlog、优先级,会更有意识地控制自己的工作项目,当然也意味着鼓起勇气不做不少事情。另外就是又尝试了不少有意思的工具和实践,不少是从吕国宁同学、Odd-e的同事们、柴锋以及Andy Hunt那里偷来的。更有意思的是把这系列工具和实践做成了一个工作坊,成了我的一个有用的影响别人的工具。

书籍
与往年一样,也有必要回顾一下去年读过的书。由于花了相当的精力去反思和回顾,今年的读书量大大减少。我尝试按照对我的影响程度去年读过的书排序。
* Lean Startup。很多朋友都给我推荐这本书,果然名不虚传。它是对敏捷开发灰色地带一个强有力的补充。有了它,让我对产品设计和开发有了更全面地认识,有一种醍醐灌顶的感觉。书中同时也给我很多有意思的思考。
* Leading Teams。这不是一本关于敏捷的书。但是它其实就是整个敏捷团队实践、合作的理论基础。哈佛大学教授Richard Hackman研究了全世界各种各样的团队,提出了系统地总结、比较和分析,并提供了很多实际可行的工具。我成了Richard的粉丝,迫切希望读他的新书”Collaborative Intelligence”。
* Drive。终于静下心来把著名TED视频”The Surprising Science of Motivation”作者Dan Pink的书好好读了三遍。无论是对于直到团队甚至教育自己的儿子都十分有效,我们想在常用的很多激励的方法其实是会带来很多副作用的。
* Pragmatic Thinking and Learning – Refactoring your web ware。作为敏捷宣言的签署人之一, Andy Hunt有很多好的工具和工作习惯值得我们学习。
* How to Solve It。这是一本著名数学书。主要学到了:1. 如何象好的数学老师那样一步一步引导学生自学;2. 为以测试驱动开发和重构为基础的演进式设计找到了理论基础;3. 数学家们的思考方式,包括简化问题、归纳、演绎、类比等等。
* 重构到模式。一本经典的重构书,如何具体实现中抽象,并一步一步推出设计模式。设计模式应该是从最基本的代码和硬编码中发现并推导出来的,而不是一开始想出来的。这跟How To Solve It的思维模式是一样的。
* Behind Closed Door。一本很实际的敏捷经理菜谱。
* Leadership Agility。在敏捷大会遇到了Pete Behrens和Brad Swanson,他们都给我推荐了这本书。尽管从书名看这是本敏捷书,但是其实作者并不知道敏捷软件开发。而好的Leader会经历个人英雄主义阶段包括Expert level、Achiever level和后英雄主义阶段包括Catalyst level, Co-creator level, Synergist level。
* The Power of Now。只有当下才是我们应该关注的东西。Yesterday is history, tomorrow is mystery, today is a gift.
* How Google Test Software。通过测试专家James Whittaker洞察了Google测试的方式以及质量团队的架构。
* The Cucumber Book。学习Cucumber的最佳指导。
* Agile Product Development with Scrum。如果希望了解Scrum产品负责人的话,这是必读的一本书。
* Software Requirement Memory Jogger。很多的需求建模以及团队合作的工具。
* Liftoff。十分实际的项目启动手册。
* Maven The Definitive Guide。Maven大全
* Visual Teams。是Visual Meeting作者的新书,把图像技术应用到了团队建设方面。
* Blink – The Power of Thinking Without Thinking。如何利用“急中生智”。

新习惯
* 个人Backlog。严格通过Things来管理个人的工作项目及优先级。对工作项目列表做经常性梳理。确保所有任务从列表中来,我变得更加专注了。
* 及时及持续反思。

  • 主要是针对过去的learning和组织的培训、活动等做及时的总结和反思。
  • 对自己过去笔记的复习以及重新整理,每个周五不会阅读新的东西,而把精力集中于“反刍”。

不足
* 持续发布,老问题,博客更新不够,在新的一年中需要假如一些强制性习惯。谢谢Bill、王宇组织了一个敏捷教练的圈子,可以有更多的群体压力了。
* 技术与开源项目。参与一个开源工具的编写。

新年新目标
* CST。2013年最主要的目标是成为认证Scrum讲师。通过实现这个目标,系统地提高教授的功力。
* 国际性发表与分享。去年收到了越南和印度的分享邀请。今年要做更多的尝试,系统提高自己英文演讲的能力。另一个方向是发表至少一篇英文文章。
* 技术与开源项目。参加一个Github开源项目,并发布可用版本。
* 博客争取两周一篇。
* 把Meditation变成一种习惯。

 

Share