对于过时的系统,最好是将精力放在关闭它,而不是无限期维护,让它们与替代它们的新系统并存。我们将有序迁移旧系统并最终将其移除的过程称之为弃用。
代码是负债,而不是资产。代码是要消耗成本的,其中创建系统所产生的成本只是一部分,更多的成本消耗是随着系统在其整个生命周期的发展中产生的维护成本。
弃用最适用于一个明显过时的系统,该系统有一个已经成型的替代产品已经存在,并且能够提供相同的功能。
海勒姆定律:系统的用户越多,用户以意外和无法预料的方式使用它的可能性就越大,而弃用和移除该系统就更难。
像许多工程活动一样,可以在构建软件系统时就将未来的弃用考虑进去。编程语言、软件架构、团队组成乃至公司政策和文化的选择,都会影响到系统生命周期到期后进行弃用的难易程度。
工程师要考虑几个问题:消费者从该产品迁移到其他替代产品有多容易?如何逐步更换部分系统?
公司如果没有做好准备支持该项目的整个生命周期,那就不要开始这个项目。
弃用分为建议性弃用和强制性弃用。
建议性弃用是指没有截止日期,并且对公司而言不是优先事项的弃用。建议性弃用是宣传新系统存在并鼓励早期加入的用户开始试用的好工具。当新系统为用户带来了明显的好处时,建议性弃用就很好用。
强制性弃用会给出移除过时系统的最后期限。其时间表需要具备强制执行机制。
弃用流程也需要流程负责人。弃用流程需包含一系列里程碑。
弃用工具包括发现、迁移和防止倒退的工具。
发现就是了解哪些用户在使用旧系统,用户依赖了系统哪些行为等。迁移是将用户和服务迁移到新系统。防止倒退是防止重新使用旧系统。