上一篇讲了主人公从四种工作类型中理顺了工作流程,接下来我们看看续集…
比尔不仅弄清了所有工作流程中的瓶颈所在,也认定了“凤凰项目”在一群毫无章法的人和毫无流程可言的IT运营下,是一定会失败的;但是,这一切CEO都不会承认,却还斩钉截铁地认为“凤凰项目”一定可以成功,并且因此拯救公司;
果然,凤凰项目上线后,不仅没有为公司带来现金流,却带来了更多的麻烦;董事会给了公司管理人员三个月的时间,否则将进行公司的拆分,并把IT的工作外包出去;
公司的董事及对应的管理人员,经过慎重的考虑后,抽掉了各个单位的精英人才,经过过IT流程的详细梳理与慎重思考,启动了新的“独角兽”项目,并从一开始就把开发与运维混合在一起进行工作,不再是原来的开发与运维分离,先开发、后运维的方式;更为疯狂的是,完成了一个零所有人的瞠目结舌的目标:一天部署10次。
在开发运维的过程中,所有能自动化的事情都自动化了,包含了:开发测试,环境部署,监控报警,所有能脱离人工的,都脱离了人工;这些流程上的优化,大大加快了开发运维的速度,也减少了中间出现的问题。
“独角兽”项目上线之后大获成功,公司现金流大增,不仅挽救了公司,也挽救了CEO,比尔也从此走上了人生的另一个领地,开始走上公司的更高层。
这个挽救公司的过程中,作者梳理出了三步工作法:
第一工作法是关于从开发到IT运维再到客户的整个自左向右的工作流。为了使流量最大化,我们需要小的批量规模和工作间隔,绝不让缺陷流向下游工作中心,并且不断为了整体目标(相对于开发功能完成率、测试发现/修复比率或运维有效性指标等局部目标)进行优化。
必要的做法包括持续构建、集成以及部署,按需创建环境,严控半成品,以及构建起能够顺利变更的安全系统和组织。
第二工作法是关于价值流各阶段自右向左的快速持续反馈流,放大其效益以确保防止问题再次发生,或者更快地发现和修复问题。这样,我们就能在所需之处获取或嵌入知识,从源头上保证质量。
必要的做法包括:在部署管道中的构建和测试失败时“停止生产线”;日复一日地持续改进日常工作;创建快速的自动化测试套装软件,以确保代码总是处于可部署的状态;在开发和IT运维之间建立共同的目标和共同解决问题的机制;建立普遍的产品遥测技术,让每个人都能知道,代码和环境是否在按照设定的运行,以及是否达到了客户的目标。
第三工作法是关于创造公司文化,该文化可带动两种风气的形成:不断尝试,这需要承担风险并从成功和失败中吸取经验教训;理解重复和练习是熟练掌握的前提。
尝试和承担风险让我们能够不懈地改进工作系统,这经常要求我们去做一些与几十年来的做法大不相同的事。一旦出了问题,不断重复的日常操练赋予我们的技能和经验,令我们可以撤回至安全区域并恢复正常运作。
必要的做法包括营造一种勇于创新、敢于冒险(相对于畏惧或盲目服从命令)以及高信任度(相对于低信任度和命令控制)的文化,把至少20%的开发和IT运维周期划拨给非功能性需求,并且不断鼓励进行改进。
推荐大家阅读《凤凰项目》,从中了解流程的优化,项目的进化,也看看作者的心路历程,可能有一天,你我都可能会经历类似的事情,共勉。