开源工程管理,释放开发者潜能
介绍
Middleware是一款开源工具,旨在帮助工程领导者使用DORA 指标来衡量和分析团队的效率。DORA 指标包含四个关键值,可深入了解软件交付性能和运营效率。
它们是:
- 部署频率:代码部署到生产或运行环境的频率。
- 变更交付周期:从提交到最终投入生产环境所需的时间。
- 平均恢复时间:发生事故或故障后恢复服务所需的时间。
- 变更失败率:导致部署失败或需要补救的部署所占的百分比。
目录
如果你是一名开发者,不断推出新的改动,却总是被过去工作中的错误拖累,那么这篇文章对你来说就非常重要。
过去十年软件开发中,我犯过并目睹他人反复犯的一个关键错误是:过于注重完成更多的工作,而忽略了确保已完成的工作(无论多么微小)的稳健性和持续正常运行。这些反复出现的错误会严重影响生产力和积极性。
从我自身的一些错误中,我吸取了宝贵的经验教训。在这里,我想分享一些策略,这些策略不仅能帮助你交付稳健的软件,还能让你摆脱过去工作的束缚。
我们将讨论对我最有效的5个策略:
在我看来,工程师分为两种:一种是只顾眼前利益的,另一种是着眼于长远未来的。这两种方法单独来看都无法持续发展。
你的代码应该能够应对公司即将面临的增长。然而,过度设计以应对未来的挑战可能会导致不必要的复杂性。有一个专门的术语来形容这种情况——“自行车棚效应”(Bike Shedding)。
我的经验法则是:规划规模时,要考虑当前规模的十倍,或者考虑你的企业在未来两三年内预计会增长多少。确保你的计划与你的业务目标保持一致。
例如,如果您是一家出租车公司,正在设计一个预订模块,而您公司目前每天处理 1 万次行程,并预计两年后达到每天 10 万次行程,那么就以此作为基准。如果您目前每天只有 1 万次行程,却设计一个能够处理 1000 万次行程的系统,可能会导致解决方案过于复杂且成本过高。
“花费数天甚至数周时间进行调试,可以节省几个小时的测试编写时间”——一位智者如是说。
未经全面测试就发布代码,就像盲目撒网一样。确保代码按预期运行的最简单方法就是添加单元测试。这听起来似乎显而易见,但全面测试的重要性怎么强调都不为过。
单元测试不仅是抵御显而易见错误的第一道防线,还能保护你的代码免受可能违反业务需求的意外更改的影响。因此,它能减少每个迭代周期分配给你的那些临时 bug 😉
懒人小窍门(像我这样的):在编写代码之前:
现在,只需努力让每个测试都通过即可。这种方法总体上耗时更少,而且每次都能生成健壮的代码!
我的一位经理曾经给我一条影响深远的建议:“主动出击,不要被动应对。” 当时,我经常在不同的Slack频道里被@,处理各种问题、客户投诉和支付失败的情况。我只是被动地回应每一个请求,完全不知道接下来会发生什么。
从那时起,我开始为我开发的每一个功能问自己三个问题:
然后,我通过向我们的 APM 工具(如 Datadog 或 NewRelic)发送指标,在各个层面(功能、屏幕、应用程序)回答了这些问题。
设置完成后,我配置了警报,以便在出现任何问题时通知我。
通过这样做,我可以在问题升级为重大问题之前就发现它们,从而避免了被动应对、糟糕的客户体验以及我自己对接下来可能发生的事情的不确定感。
每次构建产品时,都要开始回答这三个基本问题,以确保你始终是主动行动而不是被动反应。
就像糟糕的工作会让你在各种 Slack 频道中被标记以进行修改一样,出色的工作也会让你在所从事的领域中被标记以提供背景信息。
这会在你最意想不到的时候耗尽你的精力,或者更糟的是,由于你了解全局,这可能会让你成为处理相同任务的首选对象。
把这个秘诀藏好:
把所有事情都记录下来。包括开发功能时的背景信息、架构以及你做出的业务决策。当有人问起某个区域(功能、屏幕、应用)的背景信息时,只需把更新后的文档链接发给他们即可。每次都能帮你节省好几个小时。
此外,完善的文档可以简化新团队成员的入职流程,并确保您的工作成果在一段时间内仍然易于访问和理解。
软件工程常常强调个人贡献者的角色。然而,单凭一己之力无法达成最终目标——只有与团队合作才能实现(反之亦然)。
理解并采纳流程卓越思维有助于你充分发挥团队的集体生产力。
抱歉刚才措辞有点奇怪😄
简单来说,确保代码审查、部署以及任何涉及代码的协作活动不会出现长时间的等待,就能极大地提高你的工作效率!
要识别团队中长时间的等待或阻塞,最好的方法是测量 DORA 指标。您可以使用像Middleware这样的开源工具,它开箱即用地提供DORA 指标。
开源工程管理,释放开发者潜能
Middleware是一款开源工具,旨在帮助工程领导者使用DORA 指标来衡量和分析团队的效率。DORA 指标包含四个关键值,可深入了解软件交付性能和运营效率。
它们是:
目录
PS:我也是Middleware的联合创始人,我们的使命是让工程师的工程开发变得轻松无阻。如果您喜欢我们的产品,请考虑给我们点个赞!
采纳这些建议,您可以显著减少回顾和修改过去工作所花费的时间。这不仅能提高您的工作效率,还能确保您始终专注于创新和开发新功能。
要高效,不要忙碌!祝一切顺利😊
文章来源:https://dev.to/middleware/write-less-fix-never-the-art-of-highly-reliable-code-5a0i