想象一下,在一家公司工作,你可以将你的想法带给管理层,或者与你所使用的软件的关键开发人员和创始人进行讨论。在许多具有传统等级制度的组织中,作为一个新手可能意味着你在这些情况下会被忽视,或者充其量,会在几周后收到简短的回复。
我在红帽公司实习期间的经历并非如此。正如首席执行官 Jim Whitehurst 在他的著作《开放组织》中指出的那样,在红帽公司,最好的想法总是会胜出,无论其来源如何。在这种精英管理体制中,即使像我这样的实习生也有发言权——只要我能支持我的想法。
从我作为红帽内核质量工程(QE)团队新成员的第一天起,我就知道我将迎来一段难忘的经历。我的任务是将持续集成(CI)引入红帽的 InfiniBand 测试。对于那些不熟悉这意味着什么的人来说:CI 是一种测试驱动的开发实践,其中开发人员经常执行自动化单元测试,例如当开发人员通过 Git 推送补丁时。我们越早运行能够告知开发人员补丁存在问题的测试,他们就能越早修复它。这个过程有助于减轻与夜间构建失败或交付给质量工程部门时充满错误构建相关的压力。简而言之,我的任务描述简洁明了。
但仅此而已。我的团队给了我一些关于我可能需要的工具的提示,以及一些文档,然后就放手让我自由发挥了。让这项任务更具雄心壮志的是,我完成这项任务所需的一些框架和工具仍在开发中。这项任务很快从“添加一些东西”变成了“引领道路”,这是一个你不会期望许多实习生会发现自己所处的位置。我的团队知道我喜欢挑战,所以这对我是个很棒的任务。
随着我学习如何配置机器、自动化工作流程、集成框架、调试流程和触发构建,我发现自己不断地跨团队和全球进行沟通。我经常与我的导师会面,并经常与平台团队成员、内核开发人员以及来自中国和捷克共和国的一些质量工程人员交谈。起初,我不愿意经常 ping 他们。然而,他们总是热情欢迎并乐于接受反馈,并且他们让我及时了解他们的进展。很快,我亲身体验了红帽公司透明、尊重、信任和协作的氛围。
虽然跨所有这些团队的持续沟通对于构建这个 CI 套件至关重要,但一切仍然感觉太分散了。要使 CI 有效地发生,必须将如此多的组件组合在一起。因此,我主动开始编写一份关于将 CI 集成到更多内核测试中的“操作指南”。我汇集了每一份相关文档和团队联系人,添加了代码片段和屏幕截图,并起草了一些最佳实践。我的目标不仅是将所有内容放在一个地方,而且还要使 CI 对其他人来说无缝衔接。
当我向我的经理展示这个想法时,她很喜欢。一旦我的导师看到了它,我们就开始安排每周会议,以便他可以按照我的分步指南进行操作,验证流程,并帮助我填补我遗漏的任何部分。有多少人可以从实习经历中出来说他们可以定义自己的工作,热情地投入其中,并为他们的整体经验增加如此多的市场价值?
其他所有发现这份指南的人似乎也很热情。例如,一位内核硬件主管联系我,询问他是否可以与他的团队分享。我很高兴同意。突然,我不仅在为我自己的团队所做的工作上产生了影响,而且也为其他团队产生了影响。随着我通过 Git 所做的每一次代码更改以及我保存到文档中的每一次修订,我都感到更有影响力。最重要的是,我将该指南编写成了一个社区 Wiki。随着红帽公司不断发展和不可避免地演变,任何人都可以自由地修改该指南、添加内容并使其保持最新。这是你只能在开放组织中获得的东西,它将自由、勇气、承诺和责任作为核心价值观进行平衡。
当然,我可能只贡献了几百行代码。然而,从长远来看,我知道我的 CI 工作将很快汇集更好的、经过彻底测试的软件,从开发人员社区本身开始。我认为这间接地贡献了数百万行更好的代码。我有一个关于如何做得更好的想法并为此采取了行动,这种自由你在其他类型的组织中找不到。
故事
本文是“红帽实习生故事”系列文章的一部分。这些实习生分享了他们在开放组织中工作的经历等等.
评论已关闭。