Project management 从头开始重写一个系统:你在提案中包括了什么?

Project management 从头开始重写一个系统:你在提案中包括了什么?,project-management,Project Management,假设我有一个较旧的系统/框架,它已经有点过时了,但很快就会被利用来做比最初打算做的更多的事情。这是一个没有太多常见代码的web应用程序,因此我建议,从长远来看,使用更具前瞻性的代码重建它将减少工时,并着眼于减少维护工作量(我已经拥有遗留系统一段时间了,相信这是真的)。请记住,遗留系统的体系结构最终确实需要大量的故障排除和TLC:我不在乎它是否“漂亮”或写得“正确”,如果它能工作,但它不会像现在这样“正常工作”。我曾经用一个类似的系统成功地进行过重写,如果我提出的建议正确的话,似乎我可以使用它 所

假设我有一个较旧的系统/框架,它已经有点过时了,但很快就会被利用来做比最初打算做的更多的事情。这是一个没有太多常见代码的web应用程序,因此我建议,从长远来看,使用更具前瞻性的代码重建它将减少工时,并着眼于减少维护工作量(我已经拥有遗留系统一段时间了,相信这是真的)。请记住,遗留系统的体系结构最终确实需要大量的故障排除和TLC:我不在乎它是否“漂亮”或写得“正确”,如果它能工作,但它不会像现在这样“正常工作”。我曾经用一个类似的系统成功地进行过重写,如果我提出的建议正确的话,似乎我可以使用它

所以现在该由我来推销这个想法了。我之前提到的我成功重写的系统不是正式的,有点像是在我的业余时间,但如果我在重写过程中花费一些前期时间,这会对项目时间表产生直接影响。这意味着我更了解我的东西。由于之前还没有正式证明完全重写是正确的,我想知道如何推销它


当然,我需要立即确定重写的范围,但在那之后它就变得模糊了。有数字证明重写后的维护成本和节省会有所帮助,但这很难估计。还有什么吗?

我已经多次成功地介绍了这一点,以下是我的总体策略。这是基于我们的公司文化,在技术使用方面比我们业务领域的其他公司更先进,但我相信这些战略几乎在任何地方都能奏效

首先也是最重要的是,你需要让他们了解公司的需要和财务利益。如果没有,不用麻烦了。如果你能拿出具体的数字,就这样做。如果不是,给出你最好的估计,并告诉他们这是一个估计。如果这个号码完全未知,试着从可能知道的人那里找出这个号码。下面是我使用的一般音高格式

首先,我描述该计划的作用以及它对我们公司的好处。指出它是如何省钱的,或者是如何给你带来竞争优势的。让他们明白这个系统对我们的成功至关重要

第二,仔细检查问题。描述这些问题如何影响业务,而不是它们如何影响您作为维护程序员

确保包括任何终端用户的痛苦。(例如,他们需要等待系统修复,生产力下降,或者我们可能错过了机会。或者他们需要手动计算数字,这需要时间和人力。有些事情。)

如果你能诚实地说出重新编写要花多长时间,而不是让它继续下去,那么你需要证明你每个月/周/周期/任何时间都要花费x个小时,而重新编写需要这么多时间

如果重新写入所花费的时间比故障排除所花费的时间要长,请确保包括出现问题时所浪费的时间

基本上,你需要考虑底线。底线不仅仅是钱。它还涉及提供优于竞争对手的机会(这就是为什么公司首先要在It上花钱——跟上或优于其他公司。)

编辑

此外,不要刻意将升级带来的改进包括在内,以及如何让公司获得优势。

  • 谁在使用web应用程序?获得他们对重写的支持,否则你以后可能会遇到麻烦,当某些事情不太奏效时(“你为什么要更改它?现在比以前更糟!”)一个好方法是询问他们想要修复什么。确保他们从新系统的痛苦中得到一些东西

  • 估计在当前系统中修复bug需要多长时间,并将其放在您的估计数旁边以重写它。老实说

  • 检查您过去花了多少小时来解决问题。明确表示你会把这个数字降下来

  • 确保你必须从头重写所有内容。通常,通过重构和大量单元测试逐位迁移现有代码更安全、更简单

  • 如果你想避免在遇到麻烦时独自一人,请公司里一位重要的人来支持。寻找一个决策者,一个在等级制度中处于较高地位的人,一个声音有分量的人


许多公司宁愿继续修补正在运行的东西,即使维护成本很高,也不愿冒险进行重写。特别是如果该功能是业务关键型的

不过,您有机会需要添加主要功能,这可能会带来不更改为重写的风险

然而,在展示您所拥有的之前,您可能只需要获得一个“工作原型”实现。提供迁移计划和兼容性测试计划

如果重写在下一年总共需要6个月的时间,那么请确保节省的成本大于保留现有系统的成本。许多人不会在意储蓄是否只在三年或更长时间内实现

我们是重写的系统,但它们是对业务至关重要的具有重大年度许可成本的系统。6个月的重写和2天/月的维护很容易实现,更不用说其他好处,比如大幅提高系统的准确性(导致需要指导旧系统的人员冗余)。总而言之,在最近的经济低迷时期,节省下来的资金帮助公司保持了更大的活力,并将为我们的未来带来竞争优势