第 III 部分. 可靠交付
又到十月。在过去的一年里(见第二部分),你的团队一直在努力提高 "流畅交付 "的能力,现在你们已经成为一台运转良好的机器。你从未像现在这样享受工作:与专业软件开发相关的小烦恼和小摩擦--崩溃的构建、令人沮丧的错误查找、艰苦的变更分析--全都烟消云散了。现在,你可以开始一项任务,并在几小时后将其投入生产。
你唯一的遗憾是,你的团队没有从一开始就追求"交付流畅"。现在回想起来,这样做会更快、更容易,但大家都想慢慢来。哦,好吧。现在你知道了。
当您进入团队活动室时,您会看到瓦列里和博正在配对站一起工作。他们都喜欢早点来,以避开交通高峰期。瓦列里看到您在收背包,吸引了您的注意。
"你今天上午有空配对吗?"她问。她从来不喜欢闲聊。"我和 Bo 一直在研究实时更新,他说你可能对如何测试 Network+ 代码有些想法。"
你点点头。"邓肯和我昨天加了料,结果很有希望。你想配对,还是我们三人小分队?"
"你可以和瓦列里配对,"博叫道,起身伸了个懒腰。"我需要从 Network+ 代码中休息一下。"他嘲讽地笑了笑。"即使是 CSS 也比这强。"瓦莱里翻了个白眼,摇了摇头。"我让你先安顿下来,"她对你说。"我需要更多咖啡。"
半小时后,你和瓦列里在 Network+ 代码上取得了不错的进展。工作站发出了一连串稳定的轻响。每当你保存更改时,一个监视脚本就会运行你的测试,然后在一秒钟后提示测试通过或失败。
你们已经进入了稳定的节奏。现在,你负责驾驶,瓦莱里负责导航。"她说:"好了,现在我们来确保当信息为空时它会出错。你添加了一个测试。东。测试失败。没有停顿,你切换到生产代码,添加了一条if 语句,然后保存。叮!测试通过。"瓦列里说:"现在是信息损坏的时候。你在测试中添加了一行。东。另一条if 语句。叮!"Valeri 说:"好了,我已经记下了更多的边缘情况,但我认为我们需要先清理这些if 语句。如果你能找出一个validateMessage() 方法,应该会有帮助。"你点点头,选中代码,按下提取方法键。叮!没问题。
这些声音是几个月前一次实验的结果。尽管有人开玩笑说这是 "巴甫洛夫的程序员",但它们还是大受欢迎。你们团队的工作步骤非常紧凑,大多数时候,代码都能按照你们的预期运行。你的增量测试运行时间不到一秒,因此声音就像即时反馈。只有当出现问题时,你才需要查看测试运行程序。其余时间,你都可以保持专注,在测试、代码和重构之间来回切换,而稳定的报时声则会让你确信一切都在掌控之中。
又过了半个小时,Network+ 的改动完成了。当 Valeri 从集成分支调出最新代码并运行完整的测试套件时,你的身体不由自主地伸展开来。一分钟后,测试通过,她运行部署脚本。"完成!"她说。"该喝咖啡了。帮我盯着部署?"
你坐在椅子上,看着部署脚本按部就班地运行。它在一台独立的机器上测试你的代码,然后将其合并到共享的集成分支中。团队中的每个人每隔几个小时就会将自己的代码合并到这个分支中。它能使团队保持同步,并确保合并冲突在成为问题之前尽早得到解决。然后,脚本会将代码部署到金丝雀生产服务器上。几分钟后,部署得到确认,脚本会在你的版本库中标记成功。
你大步回到任务板前,把 Network+ 任务标记为绿色。"都完成了,波!"你叫道。"准备好用 CSS了吗?"
欢迎来到 "交付区
交付流畅区适合希望可靠交付软件的团队。团队成员要发展自己的技术技能,使他们的软件维护成本低、易于改进和部署,并且很少出现错误。具体来说,就是精通交付的团队:1
-
以最低的风险和成本,在业务利益相关者希望的任何时候发布他们的最新作品 ...
Become an O’Reilly member and get unlimited access to this title plus top books and audiobooks from O’Reilly and nearly 200 top publishers, thousands of courses curated by job role, 150+ live events each month,
and much more.
Read now
Unlock full access