画说那些被低估的好书 - The Phoenix Project - 这不是一本只写给IT看的IT小说

在IT咨询业, 没有读过这本书都不好意思跟人家谈DevOps, 但它不是一本只写给IT看的IT小说
The Phoenix Project以小说的形式讲IT管理,尤其是在传统企业中的IT管理,但它不是一本只写给IT看的IT小说。豆瓣8.7分,487人读过 - 看上去The Phoenix Project 中文版《凤凰项目》的成绩还不太差 - 但在IT咨询业,没有读过这本书都不好意思跟人家谈DevOps —— 近几年最流行的IT管理方法论之一。
首先,DevOps不是什么技术词汇,如果你还没有听说过也不用慌。DevOps字面的意思不过是开发与运维紧密合作,这本书首先以讲故事的形式叙述了为什么要有DevOps。因为是小说的形式,本书所描绘的企业内部斗争、团队矛盾显得十分现实,戳中了不少公司的痛点。
为什么要有DevOps
如今,越来越多的传统企业意识到,即使是在从前IT只能充当配角的制造业、医疗业、能源和基础设施行业,也不得不把IT推上主角的位置,以在新商业模式和工业4.0的竞争中保留一线生机。但我们在很多国外企业看到,通常是这样一幅画面:
在传统企业的数字转型过程中,核心业务人员依赖于IT却认为自己超然于IT,以创新为名制造了一些IT项目,却并不真心了解IT在做什么;企业高薪聘请来的开发人员视自己为无所不能的钢铁侠,代表了先进技术前进的方向;运维总是抱怨开发团队把半成品交付使用,对核心业务一知半解,一旦IT项目出现问题,很容易成为众人指责的对象。

DevOps是什么
DevOps理念的提出正是为了解决这个问题。

DevOps字面的意思不过是开发与运维紧密合作。The Phoenix Project认为DevOps有三个原则:
- Flow - 团队间的流畅协作:重视整体效率,促进核心业务、开发和运维之间的流畅合作,缩短从开发到市场所需的周期。
- Feedback - 完整的反馈回路:将市场反馈直接提供给研发团队,开发和运维团队可以根据反馈及时调整。
- Learning - 鼓励学习和试错的文化:在个人层面上鼓励学习和提升,在公司层面上允许实验和试错。
所以,DevOps其实是一个组织管理层面的方法论,而不只是通常狭义理解的自动化和敏捷研发。但是,DevOps的三个原则都依赖于敏捷研发 - Agile methodology。
DevOps与Agile
Agile methodology应该是一个大家已经熟知的项目管理层面的方法论。与Agile用来对照的是“瀑布式”(Waterfall)的项目管理。

在传统的Waterfall项目管理方式中,一个项目经过冗长的计划、设计之后,企图一步到位地完成产品开发。而Agile将项目划分成等量的较短周期,为每个周期制定一个目标;每个周期结束之时,都能产生一个相对独立的产品;经过几个周期的迭代,产品日趋成熟。正因如此,并非DevOps完全不能采用Waterfall的项目管理方式,只不过Agile的方式跟DevOps“流畅协作”、“反馈”和“学习”的原则更加契合。
6个月之前犯的一个小错,不能用来帮助团队提升
The Theory of Constraints 制约法
关于提升整体效率,The Phoenix Project借鉴了1984年经典管理著作The Goal中的"制约法”(The Theory of Constraints)。实际上,The Phoenix Project整本书都是在向The Goal致敬 —— The Goal同样是用小说的形式讲管理,只不过背景是具有20世纪印记的制造业生产管理。The Goal曾被时代周刊纳入“最具影响力的25本经营管理书籍”之一。

我们都知道“瓶颈”意味着什么,但在现实中,我们可能永远也不能消除瓶颈,总有这样那样一些事情会限制我们的整体效率。Theory of Constraints 的价值是,如何消除瓶颈带来的不良影响,首先第一步是认识到瓶颈是什么,然后Theory of Constraints 无情地指出了:
任何在瓶颈之后提升效率的举动都是徒劳;任何增加瓶颈负荷的做法只会让问题更严重。
所以,能绕开瓶颈的尽量绕开瓶颈,瓶颈只用来解决无法绕开的问题,并且围绕瓶颈制定计划,保持满负载。
Kanban 看板
The Phoenix Project 同时介绍了Kanban —— 你没有读错,Kanban就是看板(可惜老外都认为Kanban是日语,却不知道这个日语词也是从中文来的)。前面介绍的DevOps和Agile都是方法论,Kanban则是现在项目管理中的一个实用工具。

其实“看板”的工作方式大家都不会陌生,它将工作划分为“待办”、”进行中“、”已完成“等几个阶段,将每个工作事项置于相应的纵列中。它可以用来追踪具体工作事项的状态,也可以一目了然地展示项目的整体进度,发现瓶颈。也许你无意识中都用过这个方法,我们熟悉的Trello、Jira都有它的身影。但是不要小看的这个简单的理念,它可是一个受丰田启发、起源于制造业的具有“划时代”意义的项目管理小发明。