软件开发中的“好”是什么样子的

在软件开发中,什么才是真正的“完成”?什么才是真正的“好”?一直想写一篇这样的文章,奈何心静不下来。刚看到米哈尔·萨多夫斯基的这篇文章,于是直接分享出来。

前段时间我看到一篇文章,说大多数开发人员都不知道“好”是什么样子的——这是我完全同意的。无论团队中有多少人才和善意,如果不想象软件开发可以多么顺利,它可能会成为一场持续的斗争。

虽然我一直在寻找更好的方法来构建软件,但我仍然可以学到很多东西。不过,我想分享一些好东西,我很高兴看到到目前为止在行动中运作得很好。我将跳过特定解决方案的示例。每个工作流程和团队都有点不同,因此在一种情况下完美运行的事情在另一种情况下可能会完全失败。

流程

一个好的流程应该让生活更轻松,而不是给团队成员增加责任。听起来很明显,但许多经理忘记了这一点,并建立了流程,只是为了让这些流程到位,而不考虑对团队的影响。如果某些东西可以自动化 — 它应该是。这不仅是为了节省时间,也是为了引入标准和简化入职。

如果该过程的某些部分未按预期工作,则应对其进行更改或删除。当人们忘记一直做某事时,他们可能不会从中受益。也许这个动作可以简化,或者至少与另一个动作结合起来,这样同样的工作就会产生更多的结果,并节省其他地方的时间?

最终的游戏应该是一个不依赖于人们记住要遵循的确切步骤的设置,授权常规团队成员专注于他们的日常任务,同时为领导者/经理提供足够的可见性。

代码质量

对于所有开发人员来说,这是一件重要的事情;它直接影响开发团队适应新变化和维护现有解决方案的能力。“正常工作”的代码还不够好。理想情况下,它应该易于其他人理解,记录并覆盖测试。

许多人缺少的一点是,这些不需要是三件独立的事情来处理。通过采用适当的测试策略,并使其成为准备初始解决方案的一部分,而不仅仅是在最后验证它,您可以节省大量时间并同时拥有两个。当您更加注意可读性(特别是在代码审查期间)和适当的测试描述时,代码就会变得自我记录,无需单独维护文档!

CI/CD 管道

在面试中,当被问及有关 CI/CD 的面试时,我听到的常见情况是:运行静态分析、测试和自动部署。我会添加测量性能,基本安全检查和适当的通知。

然而,这不仅仅是关于“应该做什么”,“如何”通常更重要。为了获得高生产力,团队真的不应该花很多时间等待CI / CD结果。如果失败,找到原因应该很容易。此外,如果我们注意到已经发布的版本有任何错误,应该有一种简单快捷的方法来回滚更改。这通常需要更多的检查,但是嘿!,我们正在构建 CI/CD 管道来为我们完成这些检查,这样我们就不会在手动流程上花费额外的时间。

监控

实施解决方案并将其交付给最终用户只是第一步。一旦发布,该软件就会开始自己的生命,并且很少看起来与先前预测的完全一致。当然,我们需要像样的日志来了解在发生任何事件时发生了什么。我们越快获得相关信息越好。因此,我们的日志应该易于搜索,并且没有不必要的噪音。

理想的情况是,当我们在客户之前知道任何问题,并且可以尽快开始解决它。但是,没有人愿意花时间盯着仪表板。实现该问题的解决方案的方法是正确设置警 – 可能不是那么多,非常具体,发送给负责系统受影响部分的人员。使用足以说明通知重要性的沟通渠道也至关重要。如果所有东西都落在一个袋子里,团队要么会经常分心,要么会错过一些紧急通知。

到达那里需要一些时间,但一旦你到达那里,处理事件就会变得非常顺利。

灾难恢复

理想情况下,你根本不需要它,但如果发生了一些非常糟糕的事情,最好做好准备并确切地知道该怎么做。您是否备份了从头开始将系统还原到相同状态所需的所有内容?这些是否存储在主要数据以外的其他位置?哪些工具可用于还原备份,是否有任何要遵循的具体说明?您的系统可能发生的最糟糕的事情是什么?

即使为这些解决方案实施和测试解决方案可能过于昂贵,您至少应该知道风险并有意识地接受它。一旦灾难真的发生,可能就没有第二次机会了。

收集和响应反馈

它适用于内部和外部反馈。我在处理最终用户的反馈方面没有太多经验,所以会专注于第一个。

所有团队成员都应该感到他们的意见很重要。这样的环境支持创造力,不断改进,让每个人都开心。重要的是,整个团队都要明白,建设性的反馈中没有个人的东西,没有它,没有什么可以修复的。

另一方面,领导层应该清楚地传达他们的期望,并认可团队的努力。没有这一点,即使是最有价值的团队成员也可能会怀疑他们是否做得很好,这种不确定性会导致士气低落。

一切都是相互联系的!

如果测试不够好,并且所有回归测试都是在每个版本之前手动执行的,那么健壮的CI就没有多大价值。如果您正在努力注意 告错误和/或获取一些详细信息,那么处理 告错误的完美过程就无法发光。无论你在做什么,都不可能提前计划完美的解决方案,所以获得反馈和改进已经存在的东西总是至关重要的。

事情越顺利,其他地方发生的问题就越少。以上所有因素结合在一起,形成协同效应,使整个团队能够快速、安全地行动,而不会产生不必要的压力。即使你的团队错过了很多这些,也值得采取一些小步骤,至少更接近你认为理想的程度。

声明:本站部分文章及图片源自用户投稿,如本站任何资料有侵权请您尽早请联系jinwei@zod.com.cn进行处理,非常感谢!

上一篇 2022年7月28日
下一篇 2022年7月28日

相关推荐