我继承了一个草率的产品的现有代码库。基本设计严重不足,不幸的是,如果没有完整的重构,我将无能为力(高耦合,低内聚,猖ramp的代码重复,没有技术设计文档,集成测试而不是单元测试)。该产品具有悠久的历史,对关键的“现金牛”客户敞口高,对风险的承受力最小,将使希腊人脸红的技术债务,非常庞大的代码库和复杂性,以及之前团队疲于奔命的错误解决方法我。
老团队跳船到另一个部门,以便他们有机会毁掉另一个项目。我很少遇到技术上无能力的项目失败,而不是项目管理失败,但这确实是其中一种。
就目前而言,我自己一个人,但我有很多时间,决定权和未来方向的自由,并且有能力从头开始建立团队来帮助我。
我的问题是,当您在功能需求收集阶段有一些空闲时间时,就对这样的项目的低影响重构收集意见。有成千上万的编译器警告,几乎所有警告都未使用的导入,未读的局部变量,没有类型检查和不安全的强制转换。代码格式是如此的难以理解和草率,以至于编码人员患有帕金森氏病,无法控制在任何给定行上按下空格键的次数。通常会打开其他数据库和文件资源,并且永远不会安全关闭它们。无意义的方法参数,执行相同操作的重复方法等。
在等待下一个功能的要求时,我一直在清理低冲击力,低风险的物品,并想知道自己是在浪费时间还是在做正确的事情。如果新功能意味着删除我之前花费时间的代码怎么办?我将开始一种敏捷方法,并且我知道这在敏捷开发过程中不断重构是可以接受和正常的。
您能想到我要添加的任何正面或负面影响吗?