垂死软件的迹象

时间:2009-04-17 05:13:50

标签: software-quality

软件即将死亡的迹象是什么?


开发人员如何发现早期警告以保存软件免于死亡?

从用户的角度来看,我认为很清楚 - 他们无法有效使用,他们会垃圾。

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

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

6 个答案:

答案 0 :(得分:16)

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

  • 允许存在单点故障(只有一个人理解)
  • 管理层未分配资源来修复缺陷
  • 六个月没有积极发展
  • 一年内没有发布周期
  • 基础供应商产品/图书馆不再支持
  • 从一个项目中取出资源,而不是在一个季度内更换两次以上
  • 环境变化(例如用户数量较多)未得到修复
  • 未测量性能并且不会定期进行调整(性能下降)
  • 基础设施变更迫在眉睫(OS,DB,HARDWARE)
  • 由于系统中存在缺陷,挫折或错误,用户已创建了解决方法
  • 用户群正在下降

保持项目至关重要的方法:

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

在从死里复活的软件库中,我必须将第一个色带给Objective-C

答案 1 :(得分:10)

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

有几个迹象:

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

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

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

答案 2 :(得分:6)

我认为,你似乎想到的软件因内部“技术原因”而死亡的情况相对较少。我真的不能想到任何例子;也许德尔福(虽然那不是死的,只是非常痛苦)。

软件似乎更常见,因为

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

虽然前两点可能通常部分是质量问题的错误(这使得它对市场变化的反应太慢而且成本太高),但后者则不然。

答案 3 :(得分:3)

不尽快修复关键错误。假设您发布的新版本有一个影响10%用户的错误。如果您没有及时修复并发送固定版本,这些用户将无法完全使用该程序并将搜索替换程序。当你最终发布延迟的固定版本时,它们就消失了。

答案 4 :(得分:3)

当开发人员找借口_NOT_触摸或支持软件时。

答案 5 :(得分:0)

唯一重要的衡量标准来源于您在上面引用的“用户视角”。

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