最近在某些朋友的建议下读了一些团队协作相关的书籍,首推的一本就是《凤凰项目:一个IT运维的传奇故事》,读完之后想试着总结一下到底这本书究竟想说明一个什么样的问题?以及在从我个人狭隘的工作经验来说是否有可以借鉴的地方?
凤凰项目是一本什么样的书
首先这本书其实一本适合泛读的书,七八成的内容其实是在讲一个故事,好像电视连续剧一样,主要内容是一个IT运维的技术人员接手了一个汽车配件公司的一个运维部门的烂摊子,通过运用科学合理的devops策略不仅将部门从濒临崩溃的状态中解救了出来,同时将部门开发运维工作与企业业务进行更为深度的整合,帮助公司重新在市场竞争中获取优势的故事。这种类型的叙事方式确实别有新意对于某些读者来说可能更容易潜移默化的理解devops的落地和演进。但是更为重要的其实是本书的后半段,如果是某些人喜欢更为高效的摄取知识内容,可以只读最后的章节。最后一章作者核心突出了自己devops的理念,也就所谓的三步工作法。
因为我本人其实偏爱于更为结构化的和成体系的理念,所以我们这里只讨论下三步工作法: 作者的理念其实是将整体的研发流程类比做一个流水线的加工过程,其实整体的流程模式和制造业中的工作流水线是有很多相似的地方,主要的区别在于it项目更多的交付的是信息流而非实物,但是依然有很多可以借鉴和学习工作流水线的地方。 540966
流动原则
第一步在于建立一个流动的交付流程,核心有这么几个点
- 首先需要将工作内容可视化出来,并且将整个工作流程的阶段划分出来,每个工作在上一个阶段结束后就进入下一个阶段,构建出一套单项的交付流程。在我所经历的公司中这部分其实做得都很好,至少说明在互联网行业已经大规模普及这种工作模式。
- 另一个方面是控制半成品的数量,减小单词加工制成品的数量,减小整体的交付流程中交接的次数,尽可能减少团队的工作的外部依赖,避免过多交接导致信息损失。其实我理解就是将任务尽可能的拆解清晰,尽可能的提高每个任务的完成度,每个任务在建立和排期的过程需要非常明确的交付标准。至于如何减少团队的外部依赖和交接造成的信息损失,其实这个很难避免的问题,最好的是让每个人都具备独立跟进的能力。另一方面很有价值的事情是对工作的类型进行分类,将每钟类型的工作交付流程模板化,形成一种潜移默化的工作模式。
- 识别出来系统中的约束点,并且根据约束点来优化流程,所有针对非瓶颈点的需求其实都没有价值的。所以最重要的工作是识别整个流程中的约束点,作者说了很多的基于运维的优化策略,但是其实我认为更为关键的问题是如何识别约束点,这方面不仅需要对全局的工作负载有足够的理解。另一方面更为困难的问题是约束点在不同的团队的不同阶段都是不一样的,是会变化的,如何预期到约束点可能是更为关键的问题,需要经验和对业务的理解,可能是更为难得的能力。
- 避免浪费。避免制作半成品,避免无效的工作流程、避免手动操作、避免工作等待和工作中心的迁移。其实这些都是很有道理的,但是不同状态的团队中如何取舍可能侧重点会有不同,在我有限的工作经验中确实也经历过整体线上服务技术债非常沉重的阶段,如果同事叠加严重的人力不足和诸多有诸多deadline叠加到眼前的n多紧急任务,确实是会打击到RD自身,本书前半段的故事中也提到过类似的场景。其实我比较赞同的是文中的工作分类方式,你需要首先将工作分为4类,业务工作,非功能性需求,变更及运维操作,救火的工作。在很多的团队中过于乐观的估计整体任务进度主要就是只关心了业务工作,而遗漏了剩下的工作。
反馈原则
- 快速及时的发现问题,从源头解决问题。构建反馈链路是把团队变成一个学习型团队的前提。其实我认为主要应该需要从2个主要的方面去思考问题,一个是如何尽可能早的发现问题,从技术层面比如构建足够的单元测试,构造严格的发布流程、构建足够反馈问题的指标和大盘等等。非技术层面在每个阶段阶段都应该对上游提供足够的反馈信息。
- 群策群力的解决问题,避免把问题带入下一个阶段,作者倡导将群策群力的解决问题,尽可能扩大决策范围。其实这一点我不是太赞同,我觉得群策群力更多的应该体现在设计阶段,或者问题搜集阶段,实际问题可能大部分场景下在单个模块给可以解决。如果解决不了再扩大范围比较好。另外的问题扩大讨论范围可能会影响处理问题的及时性。群策群力的方案可以通过对事故进行复盘来集中式的讨论。
- 为下游工作中心工作,在工作的过程中需要为下游工作者考虑,服务内部客户和外部客户一样重要。
持续学习与试验原则
首先核心的问题是给予员工更多的信任和空间,不要采用一种高压的政策来避免问题,而是应该更着重的讨论如何改进问题。 将改进的逻辑制度化。比如说需要对故障进行复盘,比如预留时间来修复技术债,修复缺陷和重构代码环境。 此外将局部的经验进行总结后转换为全局的经验,让团队的同学都有成长。同事leader倡导学习的文化也是非常重要的方面。
从我个人的有限的工作经验上来看。其实团队管理是一个复杂的事情,凤凰项目的价在于提供了很多的解决问题的思路,对个人成长来说可以提供一个更宏观的视角来解读当前的团队的问题,并且起到一个更为积极的作用。