如何不死于千刀万剐。或者说,如何看待软件质量
如何不死于千刀万剐。或者说,如何看待软件质量。[ ↓ toc ] 发布日期:2022-01-20 更新日期:2023-03-10 作者:Aditya Athalye 这不是一本冗长的300页关于摩托车维修的禅学对话。仅仅是一篇漫无目的的博客文章,在其中人们思考软件产品的质量。内容 软件产品的本质是什么?谁应该对软件质量保证负责?为什么?不同类型的产品是否有所不同?如何摧毁质量?如何创造质量? 第一个技能是学会建设性地承受痛苦。警告,自责等等。首先,什么是质量? 一切事物都在出现、变化和消亡。我认为质量是过程的体验。优良质量的理念归根结底是以优雅的方式执行过程,并把地方变得比我们发现时更好。此外,出现和变化的过程—即生活—也是死亡的过程。因此,要清晰地思考前者的质量,必须清晰地思考后者的质量。 最悲惨的发展方式是缓慢而痛苦的退化,没有治愈的支持、意义或希望。所谓的“千刀万剐”的死亡。我希望你即使从远处也永远不要目睹这样的离去。 好吧,这变得很黑暗, 如果我们不小心,我们将产生一本关于摩托车维修的300页的禅学对话。因此我们将用思考软件产品质量这个更小、更轻、甚至可以说是愉快的任务来分散注意力。 下面的内容没有什么新奇之处,但我觉得这个信息及其周围的背景值得一再提及,因为如果这尚不明显,软件经常会让我们失望。太多的时候产生了可怕的后果。 软件产品的本质是什么?看到了吗?这已经比问“生命的本质是什么?”容易多了。像其他机器一样,软件产品是许多思想和劳动的结晶,并且在整个生命周期中需要维护和保养。不同于所有其他机器,它是纯概念,因此是无限可塑和可变的。而且,它确实在不断变化。有时,“完成”的软件出现,只需小修小补,但在目的、接口和行为上保持不变。许多Unix工具属于这个类别。一些项目像ZeroMQ明确将此作为目标。许多Clojure程序员珍视这种“完成性”。这样的散例存在。大多数软件并没有这种奢侈。大多数软件必须不断变化,因为它必须服务的世界在不断变化。Emacs编辑器是一款自1976年问世以来不断发展的软件产品,它继续繁荣。本文是在Emacs中撰写的。 还有一个强大而强化的反馈循环。软件迅速改变世界,迫使软件更快地改变。机器学习和人工智能的当前重生可以被视为这一过程的表现。我们基本上说一切都在加速到人类无法以足够快的速度编写和修订软件,以超越变化的步伐。因此,我们必须找到能够感知世界并动态生成或修订其他算法以实现系统目标的算法(即,进一步改变世界以有利于我们)。 我们必须想知道,在这种无情且有时是暴力的变化压力下,如何确保我们的产品继续繁荣和成功?谁应该为此承担责任? 谁对软件质量保证负责? 通常的嫌疑人?那些“质量保证”的专家?开发者?用户体验人员?DevOps?不太常见的嫌疑人?产品经理?分析师?客户成功?销售?市场营销?首席执行官?人工智能? 考虑以下场景。所有这些场景直接影响客户,让他们认为“质量差”。想想谁对基础问题(或者更可能是,问题)负责? 你的应用程序框架性能极佳且没有故障。你的应用崩溃了。一个功能完全按照承诺的方式运行,但人们未能正确使用它。你的公司耗费了一半的资源来以创纪录的时间推出第二款产品,但客户并不真正想要它。 巨大的更新在生死存亡之际被推进。自然它表现异常,无法回滚,修复的成本是发货时的5倍,而重新工作有效地将你征服世界的计划推迟了数月。你的服务无法扩展。你发现没有基准。一个部署打破了生产环境。你发现有一个错误的配置。一个功能向意外用户泄露数据,违反了服务水平协议/法规。你的CEo发布声明,指责DevOps工程师。一个持续数小时的故障未被监控,造成严重的广泛数据损坏。你的生产环境经常明显退化。一个大型海洋哺乳动物是你的吉祥物。你的生产环境很少退化,但一旦退化,就会导致半个已知互联网一起瘫痪。 以此类推…… 在一个宁静的环境中
本站免费、广告极少。如果觉得有帮助,可以请我们喝杯咖啡 —— 任何金额都对持续运营有实际帮助。
☕请我喝杯咖啡