也许摆脱你的 QA 团队是不好的
Maybe getting rid of your QA team was bad

原始链接: https://davidkcaudill.medium.com/maybe-getting-rid-of-your-qa-team-was-bad-actually-52c408bd048b

在多年来的软件开发过程中,“DevOps”技术旨在通过自动化和优化等流程消除瓶颈,从而提高软件交付效率,从而消除了组织内有价值的功能和角色,特别是质量保证的地位 (质量保证)工程师。 虽然 DevOps 策略有助于加快软件开发速度,但过度依赖优化会导致严重问题,导致输出质量较差。 最终,忽视维护适当的软件测试标准,包括缺陷跟踪、分类、缺陷调查、焦点和端到端测试,导致生产力低下,并使工人感到沮丧,因为他们亲眼目睹了未能认识到对高效工作至关重要的必要功能和技能。 软件开发。 尽管流行的观点建议放弃传统的质量保证方法,但不承认确保软件质量的重要性和价值最终会导致经验丰富的员工感到痛苦,他们在没有得到认可或赞赏的情况下努力解决质量问题。 因此,忽视关键的软件测试过程最终会给知识渊博的专业人员带来困扰,造成特殊的努力很少或根本不被认可的情况。

另请注意,为了应对 QA 团队成本不断上升的情况,企业已开始探索确保产品质量的替代方法,包括增加对 Cypress、Playwright 和 Jasmine 等测试工具的投资,以及采用左移和持续集成等技术/持续交付(CI/CD)以主动识别和解决问题。 虽然这些方法可能会暂时缓解底线,但其可持续性仍然不确定,并且有大量例子表明,这种策略通常会导致长期质量指标的严重损失。 此外,软件工程师必须获得测试计划、执行和评估方面的额外技能,以弥补 QA 专家的可用性和能力的下降。 最终,从长远来看,消除质量保证等基本功能可能会对软件业务的整体健康和盈利能力构成严重威胁,因为与不可靠软件相关的风险在竞争激烈的市场中变得越来越明显。
相关文章

原文
David Caudill

Over many years, “DevOps” practitioners applied Theory Of Constraints to our problems, ruthlessly optimizing our delivery pipelines and practices. Manual release management? Hell no, automate that. Deployment? Automate that too. Image management? 🔨 No thanks. Rolling back after we trebuchet a flaming dumpster into production? Automated. Whatever low value activity we could find in the process of getting code from product backlog to customer hands was a bottleneck to be removed or optimized.

The end result of this was that the slowest part of software delivery is testing. Since testing is why continuous delivery exists, that should have been good enough. Yes, we can make our tests faster, more automated, parallelized, etc. But when the highest value activity of a given practice is the bottleneck, you’re optimal. You have achieved “the best possible problem”.

Those habits and behaviors of optimization didn’t stop there. We kept on chopping. 🪓 We squished our integration and end to end tests down to unit tests to parallelize. At the personnel level, we pushed out anybody whom we believed could not code, indiscriminately, at the function level. We decided that testing might not be the bottleneck…the QA team was. The industry began to treat the people in these roles worse and worse. Expectations for them went up, salaries went down(while everyone else’s seemed to be going up!), we contracted the role, we offshored it, pretty much anything we could do to try and stop employing QA Engineers.

This created a self-reinforcing spiral, in which anyone “good enough at coding” or fed up with being treated poorly would leave QA. Similarly, others would assume anyone in QA wasn’t “good enough” to exit the discipline. No one recommends the field to new grads. Eventually, the whole thing seemed like it wasn’t worth it any more. Our divorce with QA was a cold one — companies just said “we’re no longer going to have that function, figure it out.” It was incredibly disrespectful and demoralizing to folks who had spent their career in QA. It also caused a lot of problems, because producing low quality software is actually a huge headache.

You can probably see where this is going by now: developers did not figure this out. Most orgs have no idea who should be doing what in terms of software quality. Those who have kept the function are struggling to find a place for it, because of the damage already done to the discipline.

It turns out, the “One Weird Trick” to faster software delivery was not “fire your testers”.

Wrecking this discipline was one of the worst kind of management mistakes — a choice to destroy something that took decades to develop, and one where the impact might not be felt for years. By the time your org has felt it, you’re likely years away from a meaningful fix.

The parts of the broken QA role we were handed are all still broken, and on the metaphorical workbench. The division of labor simply did not happen. Unsurprisingly, developers did not readily assume the duties of the role without any additional compensation, recognition, or reward. Those of us who can still remember working with a high functioning QA team can impersonate some of those behaviors, but newer engineers and managers have no idea what any of that was about, and aren’t able to tell what’s missing. The guiding principle in the following advice is that quality assurance is work. Just like any other work, assuming “somebody” will do it, letting it be invisible, is a recipe for failure. Denial is not a strategy.

It’s 2023 and it feels silly to have to write this down, but my experience suggests that I absolutely must.

联系我们 contact @ memedata.com