上个月终于完成了一个专家系统的移植工作,移植到实时系统中用于实时故障诊断。我分析了系统的难度和复杂度(110k+行代码),连同别人的预估,综合起来最后报的计划是7-8个人月,但是由于涉及的领域都是我感兴趣的,并且有研究基础,所以工作效率比较高,实际用2个月多一点就完成工作,下面分阶段总结一下过程中的经验。
1、可行性分析,制定计划。凡事预则立,不预则废。话虽如此,如果不对系统有一定程度的理解,是无法制定合理、可行的计划的。所以,首先应该调研,读论文,做笔记,理解各种系统的原理、结构和算法。识别出涉及的方向,如故障诊断、专家系统、编译器、虚拟机技术,遇到不熟悉的领域,就读综述和经典教科书。一定要有大局观,读书时领会思想,不要陷入细节。在对背景不很理解时更应该阅读高质量的综述。如果感觉不熟悉的东西难或者多,并且不感兴趣,就直接报告Fail。
其次是查阅项目文档和源代码。虽然再没有别人理解该系统,但是仍然有部分遗留的开发文档可供学习,只是这些文档会散布在许多人手中,需要主动索取。无论读paper还是开发文档,都要怀着疑问读,多问自己为什么然后分析原因。最后,胸有成竹时就制定可行性报告。可以写成开题报告的形式,背景、相关技术与研究现状、可行性分析,如果可行就需要写技术路线、关键技术与难点、测试与验证计划、时间安排等,如果有能力,也应该写市场前景。
说得这么轻巧,其实这一步是最最难的,很费眼睛(读paper和代码)和脑子(思考)。这段时间是老板心里最没有底的时候,我们必须尽早下结论,尽早告诉