`
chelsea
  • 浏览: 111562 次
  • 来自: ...
社区版块
存档分类
最新评论

CoC: Context over Code, Coaching Pattern Series

阅读更多

Code is cheap, show me the talk. -- from 力岩.


模式名称

  • CoC, Context over Code

意图

  • 通过讲解背景问题和历史, 而不是目前的方案, 使新人(新换入的pair)更快速和透彻的理解目前的代码

动机

当新人加入项目开始Pair, 或者交换Pair后, 留守Feature的人要负责向新Pair讲解目前的设计和代码. 而一个坏味道是, 留守的人往往急于开始编码, 草草带着新人过一遍代码就开始新任务了. 我们可以使用Navigator/Observer的结对模式来降低新人写代码的难度, 可新人对于代码的粗浅的理解, 长久的困惑, 始终会影响着效率以及设计质量. 这个影响在以下情况下会更明显:

  • 软件功能越来越强大, 内置的业务逻辑/corner case越来越多, 而现有代码的表达能力无法使高层的需求直接映射到底层实现上, 即从代码中难以看出"为什么这么做"的意图
  • 在两个相对独立的Feature Team中交换pair时
  • 新人刚加入项目组开始编码时

这时, 我们需要更好的coaching的技巧

方案

穿透历史的迷雾才能看清现状. 而在描述历史方面, 自然语言比编程语言和版本控制系统的log更为高效, 故事比代码更新引人.

讲讲之前的故事, 讲讲面临的约束和众多的可选方案, 代码中只有最后的设计决定, 而没有当时面临的设计约束. 把五分钟的介绍扩展成半个小时的聊天, 来龙去脉都讲一下. 可以问新人问题, 当碰到这种约束时你会怎么做? 你这么做了又引入了别的问题, 然后怎么改进? 引导新人自己推导出当前的设计, 这样自然就解决了理解问题.

已知应用

相信很多Team都在用. 在做CWP IAS Plaform时, 我们花在讲解Context上的时间大约占整个开发过程的1/4到1/3.

相关模式

  • SoS, Story over Solution. 该模式同样强调讲故事, 不过其意图是降低Team成员对一些新的改变的抵触情绪, 引导他人接受改变
分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics