我目前正在两种可行的软件设计/解决方案之间进行选择。解决方案1易于实现,但会以专有格式锁定某些数据,以后将很难更改。解决方案2难以实现,但以后将更容易更改。
我应该选择YAGNI还是应该将退出成本纳入决策?还是换个角度问,退出成本是TCO的一部分吗?
我正在考虑再回头问客户,他是否认为退出成本是相关的,但我想知道社区首先想到的是什么。
PS退出成本是否正确?
我目前正在两种可行的软件设计/解决方案之间进行选择。解决方案1易于实现,但会以专有格式锁定某些数据,以后将很难更改。解决方案2难以实现,但以后将更容易更改。
我应该选择YAGNI还是应该将退出成本纳入决策?还是换个角度问,退出成本是TCO的一部分吗?
我正在考虑再回头问客户,他是否认为退出成本是相关的,但我想知道社区首先想到的是什么。
PS退出成本是否正确?
Answers:
退出成本是TCO的一部分(T代表total),但是除非您事先知道系统将持续多长时间,否则很难确定退出成本。换句话说,如果您知道该系统将使用仅一年,并且从现在开始每年将花费$ 52,000进行停用,那么您可以很有信心将每周运营预算增加$ 1,000来支付该费用。
当您不知道系统的寿命时,该模型就会消失。从理论上讲,该系统可以永远使用,这意味着关闭它不会花任何钱。您现在要考虑的任何因素都将以今天的美元计算,并且由于劳动力价格和技术的变化使该过程变得更容易(或更难),所以从现在起五年后,这些数字可能毫无意义。
您最好向客户提供一些有关从系统过渡到什么方面的想法,并让他们将这些因素纳入到更换决定中。
(现在,写完此答案后,我将投票关闭该主题。)
YAGNI是一个很好的规则,但是在这种情况下我不确定它是否适用。您在这里估计未来成本,这项活动应该涉及对未来需求变更的一些考虑。如果您正在编写实现,那将是另一回事了!
我建议您进行成本核算,但要确保客户了解您为什么这样做。如果他们不是很熟练,那么如果他们说出“如果您已经在考虑使用其他东西,那就不是一个好的解决方案!”的效果,请不要感到惊讶。
在进行/展示成本估算时,可能还需要考虑一些更细粒度的方面:
根据您对Excel文件情况的评论,我将其视为:
我相信YAGNI适用于该解析步骤;确保您了解有关当前结构的知识,但尚未实现解析。
此外,解析的数据结构可能不像您想象的那样灵活。需求也可以用于存储不同的信息/文件,这意味着您必须更新/扩展表。
如果您不是95%,请确保将来会更改它-解决方案1-YAGNI =)
当然,这取决于您的客户以及您为该客户编写程序的经验。