对于科研过程中遇到的那些难啃的“硬骨头”——例如,超出了自己已有的知识经验或者完全是探索性的课题——若要像完成工程项目那样来做定量、定时的规划似乎是挺困难的事情:因为,这时往往很难估量具体的任务究竟会花费多少时间,对执行过程中可能出现的问题与异常也无法依据理性作出预判,甚至连应该具体采取哪个方案都尚不清楚。很显然,即便在这样的情况下做出了一份计划,通常也总会与现实相距甚远,以至于在后续的工作中计划被频繁更改甚至半途而废。

尽管计划失去了对难题的指导意义,但这并不能说明计划没有想像中的那么有用,而是反映了在投入正式任务前还有大量的准备工作需要着手处理。例如,通过文献资料的搜集、整理、阅读来掌握领域内的基础理论、研究现状、思路方法,通过浏览开源项目的源代码以熟悉软件的宏观架构等等。为了将这些准备工作做得充分、扎实,同样可以通过任务拆解,将其列入到自己的规划中。只不过需要予以注意的是,这些前期调研工作往往都属于“无底洞”式的任务。即,很容易因为个人的完美主义而无休止地做下去——对于文献调研,现在网上的资料与信息几乎是无穷无尽的,一个人终其一生恐怕也读不完;对于源码阅读,也很容易随着函数调用关系的复杂而层层深入,以至于无法自拔。这样做的最终效果便是只见树木不见林,头脑中形不成概念与图像,收效甚微。

针对这个情况,就需要设定一个截止日期,并明确定义届时需要完成的可交付成果。这个成果可以是一份文献调研报告,整理了概念、要点、脉络的思维导图,或者软件的UML架构图。总之,它应当是可观测、可评估的。有了对领域知识的概貌性把握,再来制定与具体研究和技术方案相关的计划就变得有章可循、胸有成竹了。同时也可以看到,上述方法形成了对个人学习与工作的定量和有效的反馈,完全符合《刻意练习》一书中提到的方法。