Ruby on rails 你如何说服你的经理你的项目需要一个巨大的重构?
我作为承包商参加了一个铁路项目。这个项目已经进行了一年多。该代码由大约10名不同的开发人员编写,其中大多数也是承包商。它们有不同的代码风格。其中一些来自爪哇。代码在度量衡上的分数很糟糕。许多函数非常长(100-300行)。有些函数有大量的逻辑分支、循环和递归。每个请求都会生成大量sql查询。表现很差。许多过时的代码从未使用过,但从未得到清理的机会。核心架构显然是错误的或设计过度。代码覆盖率只有25%左右。观点和部分内容混乱不堪,难以阅读和理解 经理正试图通过不断添加新功能来满足CEO的要求,但是新功能越来越难以在不破坏其他功能的情况下正确实施。他知道代码不好,但不想花太多精力来修复它们,因为重构将花费太长时间 作为一个承包商/开发人员,有什么好方法可以消除这种情况并方便经理或CEO分配一些时间进行重构 相关问题Ruby on rails 你如何说服你的经理你的项目需要一个巨大的重构?,ruby-on-rails,ruby,refactoring,Ruby On Rails,Ruby,Refactoring,我作为承包商参加了一个铁路项目。这个项目已经进行了一年多。该代码由大约10名不同的开发人员编写,其中大多数也是承包商。它们有不同的代码风格。其中一些来自爪哇。代码在度量衡上的分数很糟糕。许多函数非常长(100-300行)。有些函数有大量的逻辑分支、循环和递归。每个请求都会生成大量sql查询。表现很差。许多过时的代码从未使用过,但从未得到清理的机会。核心架构显然是错误的或设计过度。代码覆盖率只有25%左右。观点和部分内容混乱不堪,难以阅读和理解 经理正试图通过不断添加新功能来满足CEO的要求,但是
我也遇到过类似的情况。基本上只有两种选择:
- 你会有一些放松的时间,你可能会有时间重构一些东西
- 由于代码错误,某些组件的进一步开发陷于停顿。您无法继续添加任何内容,因为每一个微小的更改都会导致其他所有内容停止运行。在这种紧急情况下,您将“尝试”重构
一般来说,许多没有技术背景的经理(实际上,那些来自差劲程序员的经理)既不关心也不理解高质量代码和良好体系结构的价值。除非有什么事情打断了他们的计划,比如“无法实现”的特性、不断增加和重复出现的bug、无法满足的客户请求等等,否则你无法让他们倾听。只有这样,才能第一次理解代码问题。通常,到那时已经太晚了。我会拿出一小块应用程序,对它进行重构和优化,直到它发光为止(我会在自己的私人时间内这样做,以免惹恼我的经理)。然后,您将能够向您的经理/首席执行官展示重构和SQL优化的良好结果。如果需要重构,那么代码本身就是明证。在开发过程中,可以继续进行较小的重构。如果你不能说服经理,那么你可能应该重新考虑是否有必要
但是,如果绝对有必要,那么构建开发活动的指标和好处应该能够说服经理。以我有限的经验:
我认为其中一个选择是向经理强调,从长远来看,现在重新分解代码库将如何节省时间(即金钱)。如果项目希望长期运行,那么现在进行更改显然会在将来为您和其他开发人员节省时间
最好使用一个您曾经使用过的特性的例子,来估计如果您首先使用更干净的代码,需要多长时间。祝你好运 一个棘手的问题,我最近在这样一家公司工作。。。他们总是在推动新事物,他们也知道这是不好的,但不管我怎么努力,我甚至让外部顾问来验证我的发现,他们认为这是浪费时间 最终他们看到了光明。。。它只需要多次服务器崩溃,并且一度几乎整整8天没有网站就可以说服他们 即便如此,他们还是坚持认为“必须”是托管服务
关键是要尝试并量化他们的网站在崩溃前能持续多久,并获得一些外部验证来支持你——“他们”总是信任那些对你的应用一无所知的外人!此外,如果可以的话,试着给出一个最坏情况下需要逐步更换的计划,以及这样做需要多长时间的计划。还有一个计划,如果一个或两个机构正在进行一个完整的重写可能需要很长时间-但要现实一点,否则它会咬你的屁股!如果你走这条路(这就是我们所做的),你仍然可以在现有网站上做一些工作,只要你把它合并到新网站上。我建议你把重点放在他们自己能看到的东西上,也就是说,他们肯定会注意到应用程序在某些功能上很慢,因此,拿起其中一个,说“我可以减少这里的等待时间,我可以花一些时间来改进这个特定的事情吗?”