什么造就了良好的工程文化 | IDCF
DevOps
共 6233字,需浏览 13分钟
·
2021-11-05 15:32
原文:http://www.effectiveengineer.com/blog/what-makes-a-good-engineering-culture 作者:Edmond Lau 译者:冬哥
我最喜欢问工程候选人的面试问题之一,是告诉我有关以前公司的工程文化最喜欢和最不喜欢的一件事。我采访了 500 多人——其中许多人来自 Facebook、谷歌、亚马逊、Palantir 和 Dropbox 等顶级科技公司——随着时间的推移,这个面试问题让我了解了优秀的工程师在寻找什么以及他们试图避免什么。
回顾面试回答以及我过去七年在 Google、Ooyala 和 Quora 工作的经历,我总结了团队可以做的十件事来建立良好的工程文化。
一、优化迭代速度
快速迭代增加了工作动力和兴奋度。部署代码和发布功能时基础设施和官僚方面的障碍,是工程师在面试中提到的他们为什么离开目前公司的一些最常见和令人沮丧的原因。
在组织上,快速迭代意味着赋予工程师和设计师灵活性和自主权,无需征得许可即可做出日常决策。当我在 Google 时,任何用户可见的搜索结果更改,即使是低流量实验,都需要在每周一次的 UI 审查中获得 Marissa Mayer 的批准。毋庸置疑,虽然这让谷歌能够保护其搜索品牌,但它严重阻碍了创新。优化迭代速度还意味着有明确定义的产品发布流程,在投入大量时间后不会被意外取消。 在基础架构上,优化迭代速度意味着构建持续部署以支持快速验证、高测试覆盖率以减少构建和站点损坏、快速单元测试以鼓励人们运行它们,以及快速增量编译和重新加载以减少开发时间。持续部署,值得特别提及,即提交立即投入生产。在 Quora 使用它之前,我很难理解它为迭代速度提供的好处超过了站点损坏的风险,至少对于小型工程团队而言。人们对功能更感兴趣,同时也有动力修复错误,因为变更能够很快看到实时流量效果。 在团队方面,快速迭代意味着拥有一组强大的领导者来帮助协调和推动团队努力。决策中的关键利益相关者需要有效地做出决定并致力于他们的选择。借用曾执教 49 人队 3 次超级碗的领袖比尔沃尔什的一句话,强大的领袖需要“承诺、爆发、恢复”,这意味着承诺进攻计划,执行它,然后对结果做出反应。优柔寡断的团队只会使个人努力陷入困境。
二、不懈地推动自动化
三、构建正确的软件抽象
“选择正确的,编程就会从设计中自然而然地流动起来;模块将具有小而简单的接口;新功能更有可能在不进行大规模重组的情况下适应。选择错误的,编程将是一系列令人讨厌的惊喜:界面将变得巴洛克式和笨拙,因为它们被迫适应意料之外的交互,即使是最简单的更改也很难做出。”
四、通过代码审查培养对高代码质量的关注
增加及时审查代码的责任 允许团队成员(尤其是新成员)进行建模其他人的良好代码审查 加速最佳编码实践的传播
五、保持相互尊重的工作环境
六、建立代码的共享所有权
首先,保持总线因子大于 1 可以减轻维护人员的压力,并在维护人员离开时降低团队的风险。这也让那个人很难无忧无虑地休假。我当然不会错过我是 Ooyala 日志处理器的唯一维护者的日子,并在我在夏威夷的火山上度假远足时被寻呼。 其次,共享所有权使在特定领域不够深入的工程师能够贡献新的见解。它让工程师们从被困在某些项目上的感觉中解脱出来,并鼓励他们从事多样化的项目,这有助于保持工作的趣味性并促进员工的学习和积极性。从长远来看,它降低了一些工程师感到停滞并决定离开的组织风险。 第三,共享所有权还为在需要更快完成战略目标时让多个团队成员聚集在一起(敏捷开发的一种技术)一起解决高优先级问题奠定了基础。对于孤立的所有权,负担通常落在一两个人身上。
七、投资于自动化测试
八、分配20%的时间
九、建立学习和持续改进的文化
十、聘用最优秀的人才
那就是.......开黑马呀~
IDCF DevOps黑客马拉松,独创端到端DevOps体验,精益创业+敏捷开发+DevOps流水线的完美结合,2021年仅有的3场公开课,数千人参与并一致五星推荐的金牌训练营,追求卓越的你一定不能错过!
11月6-7日,深圳站,企业组队参赛&个人参赛均可,一年等一回,错过等一年,赶紧上车~👇
评论