艰难的青少年时代:在发布后制定技术战略(2019年)

2020-09-22 06:20:21

当你推出一款新产品来取代现有产品时,很容易团结起来支持这一使命,并做出正确的技术决定,让你越过这条线。但在发布后,事情失去重点是很常见的:愿景不再那么清晰,你为让产品上线而抄近路的做法又回来了,技术可能会开始感觉偏离了轨道。

我们在2016年推出了新的FT.com网站,体验到了这一点。新的网站速度快得多,在不同的设备上都有反应,并使用了现代技术。它有一个微服务架构,每周发货数百次。该网站的推出导致我们的订阅者访问该网站的频率和他们在那里阅读的文章数量都有了显著的增长,这也导致了订阅者的大幅增加。

当我在2018年加入英国“金融时报”时,我发现了一支优秀、聪明、充满干劲的团队,良好的技术和伟大的文化。然而,有些事情偏离了轨道。这篇文章是关于我们如何制定我们的技术战略,以走出艰难的青少年时期,以及你们如何也能做到这一点。

什么是战略,这是值得讨论的。战略由三个部分组成:

愿景:您希望的最终状态是什么?你想去哪里?“好”是什么样子的?

实现这一目标的计划:你可以采取哪些影响最大的步骤来达到你想要的最终状态?

之前的FT.com网站是一个庞然大物,每月只能在工作时间以外发布一次。该网站本身速度很慢,也没有响应能力,因此在移动设备上,它看起来就像是桌面网站的一个迷你版本。也没有一个团队负责网站的整体外观、感觉和技术一致性:业务的不同部分拥有网站的不同部分。

最初,一个小团队致力于制作一个新的FT.com网站的原型,他们称之为“Next”。NeXT具有微服务架构,构建在Node.js中。下一个团队专注于构建一个快速、响应迅速的站点,重点是运输和测量。用户有机会选择加入测试版,5%的用户选择了,这使得团队可以与真正的用户一起公开开发网站。

2016年10月,它向所有用户推出,“Next”成为目前的FT.com网站。

当我2018年加入英国《金融时报》时,该网站还很好--速度很快,仍在使用现代技术,每周仍有数百次发货,重点是测量和A/B测试一切。团队专注、聪明,非常友好和包容。

但是,开始出现了一些裂缝。我听到的一些评论类型如下:

有几个服务需要按特定顺序部署微服务才能进行更改(这与微服务作为可独立部署单元的观点相矛盾)。

有人说过,不同的人以相似的方式呼应了这一点,“感觉我们不是在拥有或引导一个系统,我们只是在往里塞点东西。”

最后,我从不同的团队和不同的学科那里听到了一些东西,这是一个表明缺乏重点的危险信号:“我们需要更多的开发人员”。

你需要一个愿景,这样你才能知道你在朝着什么努力,并帮助你与他人沟通你正在朝着什么努力。当您启动一个新站点来取代现有站点时,这个愿景很容易传达,因为新站点将在许多方面比旧站点更好。您正在替换所有人都可以看到缺陷的内容,就像旧的FT.com站点一样。

在发布之前讨论什么在范围内和范围外也更容易,因为脑海中通常有一个日期或某种里程碑,所以关于我们是否有时间在最后期限之前完成一些事情的对话要集中得多。

在发布之后,您将不再有旧站点可供比较。所以你需要清楚什么是“好”。

Good是一个健康的代码库,它足够简单,新入门人员可以理解,我们也可以维护,它是可支持和操作可靠的,提供良好的用户体验,并允许我们保持和提高为客户和业务增值的能力。

糟糕的是,技术漂移得如此之远,以至于我们最终别无选择,只能进行另一次重建;几年后又是另一个“下一个”项目,所有与此相关的成本都将随之而来。

一旦你有了诊断和远见,你需要想办法从你所在的地方到你想去的地方去做些什么。杠杆率最高的活动有哪些?我们现在应该做些什么事情,这样以后会让其他事情变得更容易呢?有哪些事情,如果我们现在不做,以后要做的其他事情就不可能做了?

有时候,一旦你明确了愿景,下一步是什么就很明显了。然而,通常情况下,您需要做一些工作才能做到这一点。以下是您可以帮助做的一些事情:

听一听人们说的话中的模式。当我加入团队时,我与每个工程师进行了一对一的交谈,询问他们哪些事情进展顺利,哪些事情进展不好(或即将进行得不好),以及他们是否认为我应该知道什么。从这些令人难以置信的有用对话中,出现了一些清晰的模式。

如果你有一个具体的问题,调查可以帮助你。例如,我们想找出人们最害怕的代码领域,所以我们发出了一项调查来问这个问题,以及为什么。

对于一般模式,Spotify运行状况检查非常有用。我们每三个月发出一次,可以看到清晰的模式,帮助我们确定优先顺序。

早些时候,我把高级工程师召集在一起,我们举行了一次会议,在那里你在地板上放卡片,以确定优先事项。(我在这里详细解释一下如何运行该会话)。这是一个非常有用的练习,可以显示您没有想过的东西,了解依赖关系,并确保您所有人都在同一个页面上。

寻找工件,例如技术原理、仪表板、架构图和Runbook。这些都是高杠杆的东西,有助于确保每个人都有共同的理解。如果他们失踪了,让其中一些到位很可能是早期的优先事项。如果它们已就位,更新频率是多少?您确定它们是最新的吗?

最后,活动站点不同于正在开发的站点。有些领域在发布之前不会是优先考虑的领域,而这些领域是针对正在生产的网站的。例如,非工作时间支持如何工作?您如何处理严重的安全漏洞?你如何处理--甚至是获得--客户反馈?

战略中最重要的部分是确保人们知道你在做什么,你要去哪里。你可以有最好的远见和最好的策略,但如果没有人知道,它就一文不值了。

团队中的每个人都需要了解我们的前进方向,这样他们才能决定他们在做什么,这样我们就都能做到。

团队以外的人需要了解我们的战略,这样他们才能看到这一战略如何帮助整个英国“金融时报”实现我们作为一家公司的目标,这样,如果他们有我们需要的信息,他们就可以影响我们的战略。

传达愿景和战略需要用很多不同的方式来传达你的信息:电子邮件、演示文稿、小组讨论、海报等等。

你必须一遍又一遍地说同样的话,直到你厌倦了自己说这些话的声音,然后说得更多;因为每次你说这些话,别人都会感到陌生。也许他们错过了最后一次会议,或者没有在听,或者是新来的。但如果你想让人们知道战略是什么,你需要不断地谈论它。

发射后的沟通变得更加困难,因为愿景可能不那么清晰,而且参与发射的一些人将转移到其他项目。因此,在如何沟通你的愿景和战略上投入更多的努力是很重要的。

如果你对这些听起来很熟悉,那么有必要让你知道,你可能觉得现在走出艰难的青少年时期已经太晚了,但事实并非如此。我加入英国“金融时报”的时候,FT.com已经运营了18个月,我们在恢复良好状态方面做得很好。我希望这些技巧中的一些能帮助你,我很想听听你的故事,关于你是如何让你的技术战略重回正轨的。

在我的下一篇帖子中,我将更详细地谈论我们的No Next技术战略以及我们正在做的事情。

这是我在伦敦连续生命周期会议上的一次演讲的博客帖子版本。你可以在这里看视频,或者在这里看幻灯片。