我应该将退出成本纳入选择解决方案中吗


10

我目前正在两种可行的软件设计/解决方案之间进行选择。解决方案1易于实现,但会以专有格式锁定某些数据,以后将很难更改。解决方案2难以实现,但以后将更容易更改。

我应该选择YAGNI还是应该将退出成本纳入决策?还是换个角度问,退出成本是TCO的一部分吗?

我正在考虑再回头问客户,他是否认为退出成本是相关的,但我想知道社区首先想到的是什么。

PS退出成本是否正确?


您能补充一下为什么您认为第一个解决方案会锁定数据并且以后很难更改的原因吗?
Jaap 2012年

本质上,不是所有格式都是专有的,即使是被认为是“标准”或“开放”格式的格式也是如此吗?如果“专有”格式更易于实现,直接使用和/或事实上的交换格式,Yagni可能适用。
JustinC

没有详细说明;您可以将其视为将Excel表单(由客户设计)放入文档管理系统(解决方案1),而不是创建适当的表和GUI并按需生成Excel表单(解决方案2)。除了不是Excel。
dvdvorle 2012年

但是,这可能并不排除在向项目发起人提出选择和决定时要关注的这一方面。
JustinC '11

@JustinC好,最终我们在这里谈论现金。从长远来看,使用“专有”格式是否更便宜?我认为这对项目发起人最重要
dvdvorle 2012年

Answers:


4

退出成本是TCO的一部分(T代表total),但是除非您事先知道系统将持续多长时间,否则很难确定退出成本。换句话说,如果您知道该系统将使用仅一年,并且从现在开始每年将花费$ 52,000进行停用,那么您可以很有信心将每周运营预算增加$ 1,000来支付该费用。

当您不知道系统的寿命时,该模型就会消失。从理论上讲,该系统可以永远使用,这意味着关闭它不会花任何钱。您现在要考虑的任何因素都将以今天的美元计算,并且由于劳动力价格和技术的变化使该过程变得更容易(或更难),所以从现在起五年后,这些数字可能毫无意义。

您最好向客户提供一些有关从系统过渡到什么方面的想法,并让他们将这些因素纳入到更换决定中。

(现在,写完此答案后,我将投票关闭该主题。)


退出成本是该解决方案的TCO的一部分的替代方案是,它将成为下一个解决方案的TCO的一部分。现在,我知道如果只是这样说听起来很奇怪,但是以我的经验,停用系统的成本已成为下一个系统的项目计划/预算的一部分,而不是当前系统的项目计划/预算的一部分。那有意义吗?
dvdvorle 2012年

1
对我来说很有意义,这几乎就是我得出的结论。在整个过程完成之前,您无法真正得出实际总数。
Blrfl 2012年

我同意准确估算“出口成本”的困难,我认为即使是用今天的钱来提供它也很有价值。比较“这将是困难且费时的”和“如果明天完成的话,这将花费$ 25000到$ 50000”。
vaughandroid 2012年

@Blrfl,是什么使这个问题偏离主题?
neontapir 2012年

1
@neontapir:问题的实质是项目管理。它与程序有关的事实并不能真正与编程有关。同样的事情也可以很容易地应用于电话交换机或披萨烤箱。
Blrfl 2012年

2

YAGNI是一个很好的规则,但是在这种情况下我不确定它是否适用。您在这里估计未来成本,这项活动应该涉及对未来需求变更的一些考虑。如果您正在编写实现,那将是另一回事了!

我建议您进行成本核算,但要确保客户了解您为什么这样做。如果他们不是很熟练,那么如果他们说出“如果您已经在考虑使用其他东西,那就不是一个好的解决方案!”的效果,请不要感到惊讶。

在进行/展示成本估算时,可能还需要考虑一些更细粒度的方面:

  • 将来将数据迁移到另一个系统的可能性有多大?
  • 解决方案供应商是否可能会更改其自己的数据格式,以便将来更容易/更难迁移数据?如果是这样,这会影响您的解决方案吗?
  • 即使您以后不想更改数据,您是否也可能会想以其他方式显示/访问数据?我的经验是,这很普遍!

1

根据您对Excel文件情况的评论,我将其视为:

  • 不更改当前格式(解决方案1)
  • 与现在解析格式并以其他格式存储(可能/希望更合适/将来更合适)相比(解决方案1 ​​+解析步骤,也称为解决方案2)

我相信YAGNI适用于该解析步骤;确保您了解有关当前结构的知识,但尚未实现解析。

此外,解析的数据结构可能不像您想象的那样灵活。需求也可以用于存储不同的信息/文件,这意味着您必须更新/扩展表。


需要明确的是,目前没有解决方案(如果可以的话,为解决方案0)。他们目前将所有信息保存在纸质文件中。如果他们已经在文档管理系统中使用了“ Excel”文件,我将完全同意此答案,但是这里仍然有选择。
dvdvorle 2012年

还是您认为这与解决方案1的实施成本低廉无关?
dvdvorle 2012年

我的观点是,我认为,如果可以将解决方案2视为对解决方案1的增强,但是现在严格不要求进行增强,那么YAGNI就是适用的。
Jaap 2012年

我明白你的意思了。这是需要考虑的事情。尽管我认为现在是时候去找客户了,但请看他对这是一种增强的看法,没什么。
dvdvorle 2012年

0

如果您不是95%,请确保将来会更改它-解决方案1-YAGNI =)

当然,这取决于您的客户以及您为该客户编写程序的经验。


2
因此,您是说与解决方案更改5%的机会相关的任何成本无关紧要?
dvdvorle 2012年

我的意思是这种感觉……您知道自己“ YAGNI”是什么意思-其余的就是=)
MikroDel 2012年

0

以我的经验,重新发明的轮子比您想象的要花费更长的时间,并且外部轮子往往更容易更换。购买后,这两种车轮的外观往往比您做出决定时的外观差。

如果您真的认为#1易于实现,并且质疑#2将花费多长时间,那么我会听这个问题。现在实施#1,并在旅途中考虑更大的设计。如果您以后想重新发明它,将对您有所帮助。

相反,如果#1看起来不再像您想象的那么容易,请跳至#2。

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.