本文转自: https://blog.csdn.net/xiaozhi239/article/details/108163138

文章目录

  • 关于团队管理的常见误解
  • 团队设计基本原则
    • 康威定律
    • 系统设计从团队设计开始
    • 团队是执行任务的最小单元
  • 四种团队类型
  • 三种团队交互模型

关于团队管理的常见误解

从我个人的感觉,国内互联网公司开始越来越注重团队的管理。一方面是人口红利的消失,互联网从跑马圈地到精耕细作,需要更加精细化的管理,和竞争对手之间的竞争往往是在一点点细节上的差异,而这些细节的差异很大程度上即是执行力的差异,而团队的打造是执行力的基础。另一方面是软件开发本身的属性和人力成本的增加。软件开发是一个富有创造性的职业,产品的质量、产品的迭代速度有很大程度上依赖于架构师和工程师的水平。如何让人更高效的发挥自己的价值,并且让个人价值更好的服务于整个团队需要,绝对是一项很重要也很体现个人水平的技能。

如果在现在这样的背景下,依然认为技术管理还只是软件开发里的附属品、只要技术好技术管理能力就自然而然的好、技术管理非常务虚、技术管理没有什么难度,我觉得其实就有点对不起认知升级的成长趋势了。

从我个人非常有限的认知,我觉得我接触到的不是很成功的团队管理有两种常有的倾向,一种是管理过分务虚,一种是过分务实。前者对于业务和技术都比较缺乏深入的见解,运用了许多组织模型但却缺乏明确的解决问题的方向,我相信这些团队长期一定难以做出应有的影响力。过于务实的情况指的是更关注于底层技术细节的准确性,但是缺乏更深层次更高维度的对业务整合的理解、对解决什么问题的解构、对团队协作和团队文化的建设;这种类型很容易很吃力但没什么真正的影响力、或者人心涣散。

这篇博客基于Team Topologies这本书和我对书中内容的理解。讨论的是团队管理里最基础的内容之一:团队架构,即你该创立什么样的团队,这个团队负责什么事情,这个团队怎么接入整个公司。个人认为这本书还是非常值得推荐的。

团队设计基本原则

康威定律

康威定律最早是在1967年Conway发表的论文《How Do Committees Invent?》被提出,之后《人月神话》里引用并将其命名为康威定律(Conway’s law)。

康威定律说的大致是:设计系统的组织,其产生的设计和架构等价于组织间的沟通结构。或者更进一步就是系统是设计该系统的组织结构的映射。比方说如果将设计开发一个compiler的任务交给三个团队,最终出来的结果很可能就会是一个3-step compiler。

康威定律是Team Topologies整本书的核心。

系统设计从团队设计开始

这是根据康威定律很自然的一个延伸,当年决定团队架构的时候,你就已经在决定系统架构了。

所以回到上文的务实和务虚的讨论,管理者是不是需要懂技术?根据这条原则管理者是需要懂她负责的业务的,而且需要非常懂。当然业务在这里很多情况下指的就是技术,但不仅限于技术本身,还包括技术和产业的结合,需要解决什么样的问题,技术、资源配置和优先级之间的权衡等。管理者不一定是团队里最精通相关业务的,但一定是业务大局观最好的。

至于懂业务或者说更具体点懂“技术”是不是指写不写代码, 是不是hands-on,我觉得就太狭隘了。我个人是崇尚还是需要保持hands-on一些的,因为这对我个人来说可以帮助我去了解细节和促进学习;但实在不敢认同以此作为judge别人技术能力的指标。感觉这和问一个人读书多不多类似,读得多的人不见得见识一定更好、读得少的也不见得认知会更少。还是希望心态更开放一些。

团队是执行任务的最小单元

书中的另外一个原则就是团队是执行任务的最小单元。“团队”这个词在书中有明确的概念:一个拥有5到9人、有共同目标的稳定小组。作为执行任务的最小单元,公司应该把任务分配给团队而不是个人。

高效的团队有以下的特征:

四种团队类型

书中认为所有高效的公司,团队类型需要最终都能被四种类型覆盖:

  1. Stream-aligned team:迭代业务输出、交付用户价值的主要团队类型。一个公司里大部分团队都应该属于这个类别。其它团队都是围绕着怎么支持stream-aligned team来构建的——减少Stream aligned team的Cognitive Load,使之更高效。(对于Stream的理解。Stream就是用户value在产品中从设计到交付的一个过程/流/周期。Stream-aligned 的这种团队设计方式,有利于团队对最终交付负责,并得到用户反馈,持续改进提供给用户的价值。)
  2. Enabling team: 赋能团队,一般是由专家、顾问或者培训师组成,帮助另外的团队onboard某个新系统或者建立某种能力。一般来说都会有一个明确的赋能exit criteria和任务时间,最终的目的是让被赋能的团队可以独立运行。比如team A开发了一套新框架,某个stream-aligned team B决定采纳,team A决定在一个quarter的时间里协助他们迁移到新框架上并且培训team B让他们可以独立运行(exit criteria)。
  3. Complicated system team: 专业领域团队,负责某个具体高门槛的核心技术的实现、维护和提升,并通过提供工具或接口的方式赋能其它团队。比如一个具体的数学库、或者语音识别的算法库,如果普通的团队要掌握的话一般需要付出很多的精力。这个时候我们可以招募一批专家负责封装细节和提供self-serviced服务。
  4. Platform team: 平台组,实现对底层细节的屏蔽,帮助Stream-aligned team更高效的关注业务层面。

这些听起来可能比较抽象,我后续应该会单独发文章介绍一些它们的实战事例。有些区分其实还挺隐晦的,比如infra team和platform team其实有着本质的区别,而清醒的认知这些区别,对于团队效率经常都有很好的影响。理解这四种团队类型的划分、并且明确自己所在的团队和打交道的团队类型是非常重要的。

三种团队交互模型

书中将团队和团队之间合理的交互总结为三种类型:

  1. Collaboration: 即两个团队直接紧密合作。不过虽然这种方式往往能带来快速的思想交流,同时它也需要付出更大的代价:比如更多的交流,需要说服更多的人,两个团队之间要有更多的协调,两个团队之间产生互相的依赖等等。所以一般建议一个团队在同一个时间最多只和另一个团队以collaboration的方式合作;同时最好提前明确collaboration的时长和要达成的结果。
  2. X-as-a-service: 将团队产生的价值通过(内部)产品、服务的方式推广出去;接受方同理。服务指可以让对方以self-service方式consume的价值,可以是API,可以是library,可以是一套工具,可以是文档等等。上面提到的platform team和complicated system team一般情况下最终目的都是以这样的方式去服务stream-aligned team。
  3. Facilitating: 帮助另一个团队扫清障碍、建立能力;接受方同理。这种方式的直接代价就是提供facilitation的团队的工程师需要占用自己用在维护或产出新功能的时间,不过好处是可以进行宣传和教育、增强公司内对相应技术、工具等的认知。一般建议一个团队同时不要facilitate很多个团队;提前协调好时长;并且以被facilitate的团队最终可以独立运行为目的(自主掌握、可以自己解决这方面的问题,或者说不用再考虑这方面的问题)。

这篇文章到现在分享了我个人认为Team Topologies这本书的一些主要概念。后续我应该会结合一些实战事例再对书里的内容进行讨论。不过还是非常建议读一读这本书,应该会有更多共鸣和收获。

如何打造高效的团队(一) - 团队架构相关推荐

  1. 如何打造高效的项目交付团队︱中国联通(江西)工业互联网研究院熊小云

    中国联通(江西)工业互联网研究院高级咨询顾问熊小云受邀为由PMO评论主办的2022第十一届PMO大会(线上会议)演讲嘉宾,演讲议题为"如何打造高效的项目交付团队".大会将于8月13 ...

  2. 打造高效研发团队 (1) —— 组织架构篇

    原文:https://my.oschina.net/huangyong/blog/1812037 2015 年,我加入特赞,带领了一支小规模研发团队.那时公司还在天使轮,团队最大的目标是能让产品上线, ...

  3. 打造高效研发团队 (4) —— 团队文化篇

    原文:https://my.oschina.net/huangyong/blog/1823660 软件开发是一场需要集体智慧的运动,它的成功不完全属于团队中任何一个人.然而,团队成员们做人做事的风格却 ...

  4. 如何打造高效的团队(五)- 文化

    文章目录 为什么需要团队文化 什么样的文化能带来更高效的团队 提高业务契合程度 提高资源利用率 提高执行速率 减少团队阻力 为什么需要团队文化 如何打造高效的团队(一) - 团队架构 如何打造高效的团 ...

  5. 如何打造高效的团队(四)- 团队效能度量

    文章目录 为什么效能度量很重要 度量什么 怎么度量 定性指标 定量指标 发挥效能度量的价值 为什么效能度量很重要 如何打造高效的团队(一) - 团队架构 如何打造高效的团队(二) - Android平 ...

  6. 如何打造高效的团队(三) - 领导力

    文章目录 综述 管理和领导的区分 影响力的来源 合适的团队领导力 因地制宜 因人而异 1. 情景领导模式 2. 需求三角 3. Project Oxygen 适合自己 常见最佳实践 相关博客 综述 如 ...

  7. 打造高效的项目团队,促进项目进度管理

    项目管理是项目的管理者,在有限的资源约束下,运用系统的观点.方法和理论,对项目涉及的全部工作进行有效地管理.从项目的投资决策到项目结束的全过程进行计划.组织.指挥.协调.控制和评价,以实现项目的目标. ...

  8. 打造高效团队的四个着力点

    转自:https://www.fx361.com/page/2021/0630/8521470.shtml 精准目标.精湛专业.精化机制.精铸共识是打造高效团队的四个着力点. 高质量发展必然对企业提出 ...

  9. 如何打造高效的团队协作

    "如果干得好,管理是最崇高的职业之一.没有哪一个职业能像管理一样为他人提供学习和成长的机会,让他们懂得承担责任并取得成绩,以及为团队的成功做出贡献" <你要如何衡量你的人生& ...

最新文章

  1. 稳定性专题 | Spring Boot 常见错误及解决方法
  2. 软件测试人员需要掌握的linux命令(一)
  3. 第十六周程序阅读(6)
  4. PCA--主成分分析(Principal components analysis)-最大方差解释
  5. java 线程---成员变量与局部变量
  6. [项目更新] 集成RabbitMQ队列与EventBus总线
  7. 【并查集】打击犯罪(ssl 2342)
  8. 稍微有点难度的10道java面试题,你会几道?
  9. centos移动文件到指定目录_Dynamo批量分离中心文件并另存到指定目录
  10. cordova 项目添加splash启动界面
  11. 前端学习(1670):前端系列实战课程之核心运动原理
  12. 之前画得太丑了,再来张好看的.我试着改小点.但是就看不清了
  13. manacher 背诵用模板
  14. powershell 常用命令之取磁盘分区信息
  15. Android 读取手机归属地
  16. JavaSE 字符串
  17. 中国专利申请CPC客户端软件问题解决方案
  18. stm32 W25QXX系列驱动 W25Q80 W25Q16 W25Q32 W25Q64 W25Q128 W25Q256
  19. 技术美术个人笔记(三)——各贴图格式
  20. 线性回归分析步骤总结

热门文章

  1. STM32写FLASH期间导致中断无法响应的解决思路
  2. 长期坐着使用计算机会导致,安全生产知识竞赛题库体力处理操作
  3. 软件测试过程中有哪些风险?
  4. 同时爱上一个男人的两个女人
  5. java多线程之--(1)深入理解多线程的原理以及使用线程的方法--(原理图+内存图)
  6. 学习Linux内核必读的五本书
  7. 小寒也会写程序(四)
  8. shell脚本:删除文本中的字母、找单词、筛选,匹配,删除,替换
  9. go语言中pdf转图片功能的实现(CentOS)
  10. Linux系统中如何查找大文件或目录文件夹的方法