内容简介
《敏捷无敌之DevOps时代》以轻小说的形式,借助于逼真的场景演绎了一名软件工程师从敏捷走向无敌DevOps的技艺精进历程。软件工程师阿捷从发现敏捷、学习敏捷、应用敏捷进而扩展到DevOps领域的仗剑走天涯之旅,一路上或自学成才,或拜师学艺,最后习得吸星大法,兼容并蓄,深度掌握了敏捷与DevOps的核心思想和方法,不仅构建出自己的关键知识体系,最后还和赵敏双剑合壁,走上共同精进之路。
《敏捷无敌之DevOps时代》涉及市场、产品经理、开发、测试和运维等角色,描述了各个角色如何理解、应对和驾驭乌卡时代的不确定性,是一本融合理论、实践以及情感的趣味读物,可以帮助读者洞察到互联网企业和技术公司是如何在管理、流程和文化上进行迭代和创新的。推荐序1
弹指十年,功到自然成
徐峰,华为云DevCloud 总经理
为兄弟们的十年修炼做个见证。
2009 年,因一本《敏捷无敌》让我有幸结识了舟平。接下来的十年,无论是深圳、北京还是旧金山,只要能“碰撞”到同一城市,我们一定是要小酌两杯问候近况和聊聊梦想的。同样是2009 年,比利时的根特市,Patrick Debois 提出了DevOps 的话题,将敏捷从开发延伸到运维,自此掀开了软件工程的新篇章。后来也因为参与中国DevOpsDays 社区的活动又认识冬子,很荣幸邀请到冬子加入了华为云DevCloud团队。
一晃10 年,敏捷、精益、DevOps 等各种软件工程理念不断碰撞并激发出新的火花。从软件的全生命周期上看,由开发的敏捷,向前延伸到了商业设计的敏捷,向后延伸到了运维的敏捷。从软件自身属性提升上看,由质量、效率走向了安全和可信。从实施的组织上看,由个体实践走向了中小团队进而到大规模组织。从新技术上看,随着大数据、人工智能和区块链等技术的引入,必将在数字化运营的敏捷和全流程可信实现新突破。从变革范围看,从方法实践走向了系统化理论、组织和文化,越来越匹配当下软件发展的特征和本源,所谓适应变化是永恒的,文化和人是根基。
2019 年,立杰、舟平、姚冬组成的无敌三人组闭关十年后再度出山,将其间修炼的精华创作为一本顶级武功秘籍《敏捷无敌之DevOps 时代》。几天前,当姚冬带着样书邀请我写序的时候,让我受宠若惊。于是,在从深圳经北京转机飞往莫斯科的12个小时里,我带着QC 耳机安安静静地读完了全书,我眼前也不断浮现过去和哥儿几个聊敏捷和DevOps 的那些片段。学习和理解敏捷、精益、DevOps 这些新型软件工程的过程更像是修炼,其精髓在于悟。
敏捷不同于一些经典软件工程有着一套方法、流程和模板让你可以去遵循和套用,它是由一系列实践方法组成,需要你根据实际的场景和问题去选择和应用,而且在自我实践的过程中不断总结和改进。也正因为如此,我更喜欢阅读小说型的软件工程书籍。
然而,大部分小说型的软件工程书籍故事很精彩但缺乏了对理论和实践的提炼,让读者读完之后确有一番感悟却难以形成知识沉淀。当初喜欢《敏捷无敌》,正是因为每章最后的“敏捷精灵日记”的精辟总结。而十年后的这本新书让我更加喜欢,“敏捷精灵日记”进化为“知识要点总结”,这说明这些年很多知识点已经成为了共识,更系统化的理论体系越发成熟。“冬哥有话说”更是绝妙的新尝试,针对每章的内容进行深度解读和知识延伸,既从专家的角度让读者了解到理论形成的前因后果,又可以额外学习到很多相关的知识和内容。《敏捷无敌之DevOps 时代》既是一部软件工程师读着不累的小说,也是一本软件工程的知识宝典。
终于在软件工程的书里面可以读到软件工程师的故事了,其实他们也是有生活和爱情的。在中国有近千万的软件从业人员,大家用智慧和双手创造了前所未有的数字化和智能化的新时代。其实,大家如同阿捷一样追求梦想,也一样渴望着拥有阿捷和赵敏那样的爱情。我坚信有这么一帮富有梦想、热爱生活的软件工程师们,一定会重构新一代科技革命改变全球科技创新的版图。
最后,我希望已经修炼多年的道友和新加入的朋友们都好好读一下这本书,大家一起思考、交流和成长,一同在中国软件产业发展的道路上认真刻下你我(她)的名字。
推荐序2
青春无悔
徐磊,LEANSOFT 首席架构师/CEO
2012 年大年初二的清晨,在北京南山滑雪场的拖牵上,我接到了一个重要的客户电话,要求我在假期结束后奔赴中国南方的一个城市,开始一段DevOps 的探索之旅。同样的场景也出现在这本书中,那个时候我并不认识几位作者,我们甚至可能正生活在地球的两端,但我们却经历着同样的故事,向着同一个方向努力。
岁月如梭,犹如白驹过隙。弹指一挥间,敏捷和DevOps 已然成为IT 圈中的热词,DevOps 相关的工作职位也已经位居各种IT 技术类职位的榜首。现在,全球活跃着近50 个自发的DevOps 社区,仅中国就有近20 个城市在组织各种形式的Meetup 活动。
而我,2004 年开始接触XP,2010 年成为认证Scrum Master,2012 年开始正式相关的顾问工作,2017 年成为认证的DevOps Master 讲师,可以说,一路经历了过去15年中国软件工程效率改进的发展历程。阅读这本书,再次把我带回到一个个熟悉的场景,让我有机会再次回顾自己的成长历程,再次深入思考敏捷、精益和DevOps 的本源。
我相信,即便这些方法在20 年后的今天,大家仍然对它们存在大量的误解。其中,最多的误解是,如果我用了这些方法,就能够解决我的那些问题。但实际上,这种理解从根本上就已经背离了敏捷和DevOps 的初衷。
其实,无论是敏捷还是DevOps,都是帮助践行者根据具体情况找到合适的落地方法,而不是可以直接拿来就用的所谓最佳实践。我们在各种技术分享中看到各种类型实践的时候,你都会和自己的背景有一个映射,很多实践听上去跟你的非常匹配、有效,但这些已经不是敏捷、精益和DevOps 的核心,你需要学习的不是这个结果,而是要像阿捷与赵敏那样通过适合自己的过程去找寻这个结果。这就是我常说的一句话:“敏捷和DevOps 都可以帮助你登上高山,但你登上的绝对不是别人的那座高山,而是专属于你自己的那座顶峰。”
敏捷和DevOps 的核心到底是什么?其实这不是一个专业性问题,而是一个人生观问题。我们每一个人,从出生时的手无缚鸡之力到可以独立在这个社会上生存,其实都经历了同样的过程。那就是从一个个错误中不断学习、领会、思考和再次践行的过程。
想一想你自己在青春期的时候有多么反感父母的各种教诲,你总觉得他们是在用上一代人的固化思维在限制你,因此总是要自己去尝试一下。当自己经历挫折以后,你会发现父母的有些教诲确实是对的,有些也不一定对,有些可能是对的但并不适合自己。
我一直觉得,青春期的叛逆就是老天给予每个人成长的最佳机会,这个阶段是我们每个人形成自己人生观的重要时期,而你对人生的认知其实是通过这样一个个的经历、错误和挫折以及由此而来的挫败感和成就感所打磨出来的。可以说,没有错误就没有经验,没有挫折就没有成长。每个人进入社会以后的生存能力、适应能力和成长能力都是通过一个个微小的错误或正确积累出来的。每个人每天都在面对无法预知的未来,你不知道明天的自己会怎样,即便是循规蹈矩的朝九晚五,也一样会遇到突如其来的交通管制,毫无预兆的暴雨冰雹,当然也有不经意间发生的美好邂逅。我们的人生之所以如此有魅力,就在于这种不确定性,老天之所以给予我们每个人青春叛逆的机会,
就是为了让我们充分体会这种无常,进而构建出一种从容的人生态度,让我们足以面对不确定的未来。书中的阿捷经历了很多非预期的事情,但是,正是这些事情促进了阿捷的成长,阿捷的成长历程值得大家深思。
从这个角度来看,教育的作用其实不应该仅仅是教给大家正确的做事,而是创造一个可以让大家安全犯错的环境,并引导每一个人去思考那些适合自我个体的思维方法。
但实际情况是,我们在学校的教育更多地教给我们如何不要犯错,阻止大家犯错,引导大家都向一个固定的方向去发展,复制其他人的所谓“成功路径”。这种教育方式的错位其实是造成大家无法正确理解敏捷和DevOps 的根源,也是为什么那么多企业管理者在引入这些方法时都要寻找一个所谓的“标准”的根源。我们接受的教育造就了我们习惯于使用“确定性”思维思考问题,而不是使用“不确定性”思维。敏捷DevOps 的核心和根基其实就是构建在“不确定性”思维之上。
在阅读本书的过程中,其实我一直在寻找那些失败,而不是太关注成功。本书的魅力在于,它采用了一种真实的带入方式,让你经历过去十几年中国的IT 发展路径:
2008 年的奥运会、汶川地震以及后来大数据、人工智能与IoT 的崛起,跟随阿捷和赵敏的视角经历了这么多无常的人生,其中不变的却是敏捷和DevOps 的精髓。每一节压轴出场的冬哥倒更像是故事开头那位敏捷圣贤,将我们从虚拟的故事中抽离出来,
回到现实,同时通过分析总结,帮助读者更深入地了解故事背后的那些实践。如果作为读者的你完全可以吃透“冬哥有话说”的那些内容,我相信你已经是一名合格的敏捷践行者和DevOps 实践者了。
回想自己过去从事敏捷和DevOps 顾问咨询的十几年时间,我也一样是从一种寻找固化的“标准”执念,逐渐转变到接受“不确定性”,不再试图评估所谓的“成功”,不再说服他人接受自己的所谓“正确”。如果我们能够自己定义出成功,说明我们其实已经成功了一半。很多时候并不是我们不知道该怎么做,而是我们根本不知道要去到哪里。阿捷与赵敏所展现出来的敏捷和DevOps 思维方式,让我恍然大悟,无论自己未来要去到哪里,都将会是一个更美好的未来,也一定会遇到更好的自己。如此一来,我们也就可以放下纷扰,从容地做好当下。
希望你也可以。
前言
十年磨一剑,霜刃多曾试。
今日把试君,只为天下事。
十年之期,如白驹过隙。
十年前,我们创作第一部《敏捷无敌》时,敏捷在国内还处于萌芽状态,实施敏捷的公司基本是一些通信行业的外企和少量敢于尝鲜的互联网开发团队,关于敏捷的图书也屈指可数,参考资料乏善可陈。如今,敏捷逐渐成为业界的主流开发模式,越来越多的组织成功实现了敏捷转型,在研发效率提升和客户价值交付等方面成绩斐然。敏捷已经从纯研发领域,向前延伸到了业务敏捷,向后扩展实现了DevOps开发运维一体化,更有敏捷市场(Agile Marketing)、敏捷人力资源(Agile HR)和敏捷家庭教育等分支涌现。同时,各种新颖的优秀实践不断涌
现,颇有百花竞放之势。
十年间,我们三人先后从安捷伦(Agilent)离开,又几乎共同经历了IBM、华为和京东的洗礼,从最初的“码农”,历经“架构师”“技术顾问”“咨询师”“敏捷教练”“布道师”等多样化的角色,践行着敏捷和DevOps价值观,身体力行地运用各种方法论及工具,帮助过金融、互联网和电信等多个行业客户。工作之余,大家总结经验,相互切磋,持续精进,努力做到知行合一,坚信好的理论需要“事上练”。在历经一年半的艰苦碰撞和笔耕后,合力完成了这部亦庄亦谐的作品。希望这部小说成为我们中国版的《目标》《金矿》与《凤凰项目》。
“良工锻炼凡几年,铸得宝剑名龙泉。”期待正在阅读此书的你,从此可以仗剑走天涯。
特别感谢清华大学出版社的文开琪老师为本书的出版发行、封面及宣传文案设计等卓越工作所付出的各种努力,衷心感谢张瑞喜老师为本书付出的前期工作,感谢看好我们并时刻鞭策我们不断前行的李强先生,感谢自带流量的技术社区达人成芳女士,还要感谢社区内的赵卫、王英伟、孟菲菲、赵英美和高金梅等小伙伴为本书提供的宝贵修订建议。感谢为我们写推荐序及推荐语的各位大咖,以及为本书出版做出贡献的所有朋友及家人们,这里不再一一列出。再次祝所有人开心每一天。
无敌三人组
2019年10月
目 录
上部 敏捷无敌:Agile 1001+
第01 章 末日帝国,Agile 公司的困境 003
第02 章 重任在肩,如何打破人月神话 007
第03 章 橄榄球与敏捷软件开发 011
第04 章 兵不厌诈:我们的第一次冲刺 023
第05 章 冲刺计划最为关键 035
第06 章 每日立会,不仅仅是站立 049
第07 章 敏捷回顾,只为更好地冲刺 061
第08 章 燃尽图,进度与风险的指示器 071
第09 章 团队工作协议,高效协同的秘诀 081
第10 章 持续集成,降低集成的痛苦 089
第11 章 结对编程,你开车,我导航 102
第12 章 背水一战,客户为先 116
第13 章 计划扑克、相对估算与发布规划 123
第14 章 精益软件开发的精髓 137
第15 章 拥抱变化,但不是随意变化 151
第16 章 提升团队生产力的公式 157
第17 章 有策略的测试自动化才会更高效 172
第18 章 DoD,真正把事做完 186
第19 章 跨团队协作的SOS 模式 199
第20 章 分布式开发的喜与忧 217
第21 章 大地震 230
第22 章 敏捷与反脆弱 238
第23 章 餐馆排队与多项目管理 245
第24 章 工作可视化 256
第25 章 WIP 与看板 268
下部 DevOps 征途:星辰大海
第26 章 打通任脉的影响地图 281
第27 章 打通督脉的用户故事地图 297
第28 章 MVP 与精益创业 309
第29 章 规模化敏捷必须SAFe 328
第30 章 敏捷发布火车 346
第31 章 代码赌场 366
第32 章 黑客马拉松 371
第33 章 设计冲刺与闪电计划 385
第34 章 DevOps 文化:信任、尊重与担当 409
第35 章 跨越敏捷与DevOps 的鸿沟 421
第36 章 灰度发布与AB 测试 432
第37 章 持续交付流水线与运维可靠性 447
第38 章 熵减定律、演进式架构与技术债 463
第39 章 朴素的DevOps 价值观 479
第40 章 华丽的DevOps 原则 492
第41 章 超越DevOps,更要DevSecOps 510
第42 章 化茧成蝶,打造极致用户体验 523
第43 章 极限制造 542
第44 章 无敌的戴乌奥普斯 559
参考文献 565
主要人物介绍 572
大事记 573