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

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成员对一些新的改变的抵触情绪, 引导他人接受改变
分享到:
评论

相关推荐

    dumb_coaching:简体_coaching_app

    自述文件该自述文件通常会记录启动和运行应用程序所需的所有步骤。 您可能要讲的内容: Ruby版本系统依赖配置数据库创建数据库初始化如何运行测试套件服务(作业队列,缓存服务器,搜索引擎等) 部署说明...

    敏捷Agile开发 敏捷无敌 coaching_agile_teams

    **Coaching Agile Teams** 敏捷教练的角色是指导和支持团队更好地实施敏捷实践。他们通过培训、指导和辅导,帮助团队提升敏捷技能,改进工作流程,解决团队冲突,以及促进跨职能协作。 1. **团队建设**:敏捷教练...

    Agile Coaching 英文版 PDF

    敏捷教练(Agile Coaching)是一种专业角色,其主要职责是帮助团队和个人掌握并应用敏捷实践和价值观,从而提升他们的工作效率和产品质量。敏捷教练不仅需要具备深厚的敏捷方法论知识,还需要具备良好的沟通技巧和...

    the art and practice of leadership coaching

    Leadership coaching has become vitally important to today?s most successful businesses. The Art and Practice of Leadership Coaching is a landmark resource that presents a variety of perspectives and ...

    CoachingReseller_zip_PLR_coaching_

    【标题】"CoachingReseller_zip_PLR_coaching_" 暗示了这是一个与教练指导相关的私有标签权利(PLR)产品包,通常这样的包包含可以被重新品牌化和销售的内容。 【描述】"Coaching PLR package" 表明这个压缩包是一...

    Coaching语言模式.pdf

    Coaching语言模式是一系列用于教练和沟通的技巧,它与NLP(神经语言程序学)有着密切的联系。NLP是一门研究语言和心理学的交叉学科,它认为语言可以影响人们的行为和思维模式,因而通过调整语言使用的方式,可以在很...

    1102 Coaching Skills.ppt

    Swire Beverages 的【1102 Coaching Skills.ppt】是一个旨在提升员工辅导技能的专业课程,适用于那些希望在工作中更好地指导和培育下属的管理者。课程的目标是让学员理解辅导的含义,认识到辅导的重要性,并掌握成为...

    Coaching语言模式[归类].pdf

    1. **语言的力量**:Coaching语言模式强调了语言在塑造思维和行为中的关键作用。通过精准和模糊的语言模式,教练可以帮助个体挑战并改变他们的限制性思维。 2. **精确语言模式**:这种模式的目标是澄清具体细节,如...

    rer-coaching:针对每个读者项目的教练应用程序

    rer-coaching是一个专门为每个读者项目设计的教练应用程序,旨在提供个性化的学习和指导体验。它利用TypeScript作为主要的编程语言来构建,确保了代码的强类型性和可维护性。TypeScript是JavaScript的一个超集,增加...

    1102 Facilitating Guide on Coaching Skills.doc

    文档"1102 Facilitating Guide on Coaching Skills.doc"是一个关于教练技巧的培训指南,旨在提升培训员在辅导员工方面的技能。以下是对该文档主要内容的详细解析: 1. **破冰活动**:培训开始时,通过自我介绍、...

    POLAR IGNITE 2用户使用说明书.pdf

    1. Smart Coaching:POLAR IGNITE 2 的智能教练功能,可以根据用户的训练数据和身体状况,提供个性化的训练计划和建议。 2. Nightly Recharge™:POLAR IGNITE 2 的 Nightly Recharge™ 功能,可以帮助用户恢复体力...

    NLP教练型管理赢的智慧The NLP Coaching University.pptx

    NLP教练型管理赢的智慧The NLP Coaching University.pptx

    Scrum Coaching Whitepaper

    Scrum教练白皮书,介绍认证敏捷教练相关内容

    coaching:教练学院

    为方便起见,将数据库名称创建为target-db或其他任何名称。 通过提供用户名和密码来创建一个管理员集合并创建一个默认用户。 使用该用户名和密码,尝试登录,您将获得一个JWT... 令牌需要在每个API调用中的标头中传递。

    DikshaIITAcademy:JEE Coaching Classes 网站使用 HTML、CSS、JS 作为前端和 Firebase 作为后端

    描述这是一个基于 HTML、CSS、JS 和 Firebase 的网站,用于推广名为 Diksha iit 学院的 JEE 教练课程。贡献者如果你喜欢这个项目,请为这个存储库加星标如果您对此项目有任何疑问和建议,请随时与我联系

    1102 Coaching Skills Exercise.doc

    文档标题和描述中提到的是一个关于辅导技巧的训练课程,主要目标可能是提升员工的辅导能力。这个课程包含多个环节,如小组讨论、辩论、自我评估、问卷调查以及角色扮演,旨在帮助参与者理解辅导的重要性,掌握有效的...

    stupid-coaching:购物车

    自述文件该自述文件通常会记录启动和运行应用程序所需的所有步骤。 您可能要讲的内容: Ruby版本系统依赖配置数据库创建数据库初始化如何运行测试套件服务(作业队列,缓存服务器,搜索引擎等) 部署说明...

    KEYSTONE教练BLOG「KEYSTONE Coaching BLOG」-crx插件

    在KEYSTONE教练博客中,感兴趣的人可以找到教练建议和免费的辅导工具 KEYSTONE教练博客打开它的工具箱。同事,团队和感兴趣的团体会为他们的解决方案找到建议和正确的辅导工具。 安装这个扩展,并使用良好的指导。...

    coaching:用于处理培训文件的有用脚本

    在IT行业中,"coaching"通常指的是为用户提供指导或培训的技术和方法,特别是在软件开发、数据分析、项目管理等领域。在这个场景下,"用于处理培训文件的有用脚本"可能是一系列自动化工具,帮助教育者或学员更高效地...

    coaching::blossom:我的教练业务网站建于2017年

    信心辅导业务我以前的教练业务网站建于2017年。观看演示建于部署状态徽章作者埃诺拉·莱克耶(Enora Lecuyer)执照该项目本身的内容已获得,而用于格式化和显示该内容的基础源代码也已获得。

Global site tag (gtag.js) - Google Analytics