软件质量的巨大衰退:为什么现代应用程序变得更糟
软件质量的巨大衰退:为什么现代应用程序变得更糟
现代软件正经历着质量和稳定性的系统性下降,即使AI工具为开发者提供了前所未有的生产力。这种“软件质量衰退”并非由技术能力不足驱动,而是由组织激励机制驱动,这些机制优先考虑快速功能部署和表面化的KPI,而非鲁棒性和用户体验。
AI生产力与软件质量的悖论
虽然AI驱动的编码助手和代理工作流彻底改变了软件创作,但它们并未转化为更可靠的产品。更快生成代码的能力并未消除错误;相反,它往往加快了缺陷进入生产环境的速度。
用户报告在各个领域中出现了“脆弱”软件体验的激增:
- 关键系统故障: 现代汽车的信息娱乐系统在行驶过程中重启或未能触发必要的音频提示(如转向灯)。
- UI/UX倒退: 银行应用在执行单个操作时要求多次生物识别登录,或操作系统更新任意移动按钮并更改导航模式。
- 焦点和控制问题: 应用程序抢夺其他活动任务的窗口焦点,导致在错误窗口中误输入。
- 网页性能: 高端硬件被臃肿软件所抵消,例如冗长的欢迎动画和无响应的移动网页界面。
质量衰退的根本原因
软件稳定性的下降是多种汇聚因素的结果,这些因素超越了编写代码所使用的工具。
KPI驱动的开发
软件供应商越来越倾向于以奖励新功能和重新设计而非稳定性的关键绩效指标(KPIs)为导向。修复错误和提高可靠性在高管演示中往往不可见,并且不会立即带来市场价值。
本季度,我们不会发布任何新功能,也没有重新设计任何东西 ’ 我们将专注于修复错误。 — 虚构的PM at a 大公司
行业参与者指出,这种激励结构如此僵化,以至于优先考虑修复错误而非功能迭代的产品经理可能会被边缘化或被解雇。
“幸福路径”和MVP文化
敏捷开发的普及以及“最小可行产品”(MVP)思维导致了一种交付“足够好”软件的文化。通过仅关注“幸福路径”——即理想的用户旅程——团队忽略了边界情况和错误处理,从而保证了未来的技术债务和系统性不稳定。
复杂性和抽象的增加
软件变得指数级更复杂。从独立实用程序向分布式系统的转变,以及新前端框架和基础设施抽象的激增,使得软件变得更脆弱。许多开发者接受过孤立算法的训练,但在面对分布式系统的复杂性、幂等性和并发性时感到困难。
非技术管理的影响
技术执行与产品所有权之间的差距日益扩大。当非技术产品所有者(PO)把握软件生命周期时,焦点会转向市场可行性和投资者需求,而非最终用户的人本体验。
前进道路的视角
尽管目前的软件状态令人沮丧,但正在出现一些逆趋势,并且存在提升质量的潜在机会。
个人开发者的机遇
随着大公司陷入“AI债务”并生产出日益臃肿的软件,个人开发者有机会构建轻量级、高质量的替代方案。针对主流操作系统和应用程序的臃肿,正在兴起一种“反叛行为”的运动。
将焦点转向鲁棒性
一些人认为,逆转衰退的唯一方法是将软件视为严格的工程学科。这涉及将焦点从速度转向鲁棒性,以SQLite等项目作为稳定性和验证的金标准。
用户体验(UX)的作用
真正的质量不仅仅是没有错误,而是具有故意的人本设计。目前为投资者和市场而非人类开发软件的趋势导致了“黑暗模式”和剥削性界面的兴起。将软件恢复为一种实用工具——专注于可靠性和简洁性——可能是恢复用户信任的唯一方法。