6

软件正在消亡的迹象是什么?


开发人员如何发现早期警告以防止软件死亡?

从用户的角度来看,我认为这很清楚 - 他们不能有效地使用什么,他们就会垃圾。

除此之外,软件可能会因为它的代码而死掉——架构、编码风格、代码库的大小、代码库的组织和程序员的质量。

我想知道如何倾听软件死亡的迹象并采取纠正措施。任何著名的示例软件因为没有开发人员听过这些迹象而死了吗?任何垂死软件被保存的例子?

4

6 回答 6

16

以下任何一项都清楚地表明您的系统在濒危物种名单上:

  • 允许存在单点故障(只有一个人理解)
  • 管理层没有分配资源来修复缺陷
  • 六个月没有积极开发
  • 一年没有发布周期
  • 底层供应商产品/库停止支持
  • 资源从一个项目中撤出并且在一个季度内被替换不超过两次
  • 环境变化(例如更多的用户)没有得到补救
  • 未测量性能并且不定期进行调整(性能下降)
  • 基础设施变化迫在眉睫(操作系统、数据库、硬件)
  • 由于系统中的缺陷、挫折或错误,用户已经创建了解决方法
  • 用户基数正在下降

保持项目活力的方法:

  • 公开和直接地让您的管理层参与
  • 准确报告缺陷率并根据管理成本对其进行量化
  • 尽可能多地自动化构建、测试、打包和部署周期
  • 尽可能将系统模块化
  • 制定明确的指标并在必要时调整应用程序
  • 了解您的用户认为最重要的内容并满足这些需求

在起死回生的软件库上,我不得不将功能区放在首位Objective-C

于 2009-04-17T05:51:17.310 回答
10

在这里插入胡思乱想的 Windows 笑话。

确实有几个迹象:

  • 提高缺陷到达率
  • 每个缺陷的修复成本更高
  • 每个新功能的成本更高

所有这些都表明代码中的较高,即低信噪比。

有很多方法可以解决这个问题;可能最有效的方法是识别具有高缺陷率的模块——缺陷往往具有帕累托分布,即 20% 的模块占缺陷的 80%。您为这些模块构建了一个测试框架,然后从一个干净的页面重新实现它们,构建良好的测试(适当地使用单元测试框架等),然后将它们重新安装到整个系统中。

于 2009-04-17T05:18:41.413 回答
6

我相信由于您似乎想到的内部“技术原因”而死亡的软件相对较少。我真的想不出任何例子。也许是德尔福(虽然那还没有死,只是病得很重)。

软件死机似乎更为常见,因为

  • 底层硬件或操作系统过时,软件无法进行转换(WordPerfect,Lotus 1-2-3)
  • 竞争产品提供卓越的功能,而市场领导者因自满而停滞不前(Amiga)
  • 该软件因“范式变化”而过时(Encarta)

虽然前两点可能通常部分是质量问题的过错(这使得对市场变化做出反应的速度太慢且成本太高),但后者并非如此。

于 2009-04-17T07:10:32.250 回答
3

不会很快修复关键错误。假设您发布的新版本存在影响 10% 用户的错误。如果您不及时修复它并发布一个固定版本,这些用户将无法完全使用该程序并会寻找替代品。当您最终发布延迟的固定版本时,它们就消失了。

于 2009-04-17T05:21:42.030 回答
3

当开发人员找借口_不_接触或支持软件时。

于 2009-04-17T06:07:01.280 回答
0

唯一重要的衡量标准是源自您上面提到的“用户视角”的衡量标准。

最有可能的候选人是:
1. 支持请求增加,
2. 销售额减少。

于 2009-04-17T05:30:12.803 回答