敏捷开发中,当必需和没文档,没单元測试的老系统共舞时,就犹如是一场陷入泥沼的恶战、恶梦......
在敏捷开发中,当必需和老系统奋战时。光仅仅是 “看” 老系统的源码。不仅耗时,耗尽体力,更是全然无效的。全然无法梳理清楚老系统中的业务、代码逻辑与相互间的依赖。
这世上永远是极复杂的问题,却仅仅需极简单的解决方式……
① 将在老系统上所需做的事;如:搬迁老系统的业务到新系统上。在老系统上加新特性、新功能……。均划分成 User Stories。
② 按照每一个 User Story的目的,“直接” 改动老系统上的源码。
③ 编译、运行老系统。此时应该会出现很多 “运行错误”。
④ 这些编译、运行上错误的信息。将会是最珍贵的线索; 能让我们知道,要在老系统上完毕所需的 User Story 开发, 则所需的 “前置条件”、“依赖”、“业务流程 (逻辑)" 是什么 ?。
“要搞懂老系统,便必须要与老系统的源码做第一类的接触;直接改动老系统的源码;别仅仅是“看” 源代码。”