星期五自由

在敏捷团队中培育创新的(最真实的)故事

当我开始担任Concourse团队的主持人时,我想改进的一件事就是新员工入职的人为问题。 Concourse是一个大型项目,涉及多个专业领域(分布式系统,容器运行时,功能编程,用户体验等)和几个Git仓库(atc,fly,tsa,行李认领等),因此请速速发展即使是最熟练的工程师也可能是一项艰巨的任务。

当所有Concourse都被视为整体待办事项时,单个Pivot可能会在周一的Elm前端上工作,在周三解决Garden容器调度的问题,然后轮流讲故事,在周五实现新的Fly CLI功能。

打破它!

为了减轻认知负担,我们根据主题将“主题Github”问题分解为“项目”,并且(由于Alex Suraci在Cadet上的工作),这些工作轨迹可以在https://project.concourse-ci.org/上看到。

将Concourse项目分解成可以理解为较小单位的领域,可以使我们对旋转对更具策略性,并且可以提名“轨道锚点”来领导轨道中运行时间更长的要素。

创新思维

Concourse是一个源自创新的项目,使工程师可以自由创建。 这一切始于2014年,当时Alex Suraci( @vito )和Christopher Brown( @xoebus )在一个车库里工作到深夜[¹],以建立他们对新CI / CD工具的愿景。 随着项目的发展以及围绕工作轨道进行更多处理的需求,一个主要的担忧是失去了这种创新优势并变得停滞不前。 该项目仍有许多方法可以改善和发展,超越我们在工作轨道上计划的范围,以及社区在Github上提出的问题。

一天早上,Alex Suraci,James Ma和我谈到要正式帮助工程师探索他们本来就不熟悉的领域以外的更多代码,或者重构他们在故事中专注工作时看到的部分代码。 我们想鼓励我们的同行进行实验,重构和探索可能有益于Concourse的新功能或更改。

因此,每周,团队都有“自由周五”,其中FREE是缩写[²]:

灵活性

这项新实验的目标之一是允许灵活性超越工程工作的范围。 我们希望我们的工程师能够探索其他途径,深入研究他们尚未探索的部分代码,甚至执行“非典型”任务,例如与社区进行PR交流,论坛讨论,撰写博客文章或对Github问题进行分类。 。

重构

技术债务是野兽。 尽管我大力支持将持续重构作为每个待办事项的一部分(Ron Jeffries在该主题上的文章非常有读),但有时进行必要的重构的感觉超出了错误修复或功能实现工作的范围。说谎。 分配的安全空间可用于在故事范围之外的代码区域中进行挖掘,使团队可以专注于实现功能或修复错误,还预留了一些时间以供以后重构。

我在一个星期五开始着手解决由go vet提出的问题,该软件包在我的项目积压日常工作中几乎没有涉及。 结果? 我在代码中发现了一些未处理的错误,未测试的错误案例,并且能够与团队分享一些最佳实践。

勘探

通常,当在一个工作轨迹中研究某个问题或新功能时,工程师会看到难题的几个部分,即Concourse,并会思考: “我想知道我们是否可以在这里做一些不同的事情”。 这些想法常常感觉像是一个兔子洞,无法与您结成对,但我们的星期五已经成为这些想法蓬勃发展的地方。

允许勘探取得成功的一个很好的例子是将ATC仓库分解成较小的组件。 单独的auth组件“ skymarshal”之所以存在,很大程度上是由于Josh Winters的一些探索性工作,他后来成为将用户添加到Concourse的“跟踪锚”。

实验性

我们在周五制定的规则之一是,除了增强团队创新精神的不可估量的影响之外,没有其他可交付成果。 星期五是进行实验和失败的安全场所。

工程师们有一天可以进行超出我们在项目中预定的工作轨道的实验,这使他们可以从全新的角度看待事物,深入了解代码库的其他方面,并为Concourse提出新的想法。

像……一样免费?

当我们在团队的日常工作中制定这种新做法时,请与其他团队讨论。 关于“星期五自由”背后的名称和意图存在很多疑问,要旨是:我们想要培养上面概述的免费首字母缩写,我们碰巧在星期五为这一时间划出时间。

购买大量可乐可免费享受薯条服务?

当我们看到“自由星期五”的结果时,我们正在积极寻找一个更好的名称,以捕捉敏捷团队中更多的灵活性,重构,探索和实验所带来的价值。 另外(就像罗恩·杰弗里斯(Ron Jeffries)关于重构的文章一样),我们希望通过支持自由之日,这些租户融入团队的DNA中并自然发生。

[¹]好吧…你让我…我把车库分开了。 他们俩都在Pivotal工作,所以我想他们在旧金山办公室工作几个小时后便在Concourse工作。

[²]这部分内容是在事实发生后100%弥补的……我在这里申请一些称为“ 艺术许可证”的东西,人们!