1.9.1 第0阶段:制定计划
我们必须首先决定在此过程中应当有哪些步骤。这听起来简单(事实上,所有听起来都挺简单的),但是人们常常在开始编码之前没有考虑这一问题。如果计划是“让我们一开始就编码”,那很好(有时,当我们对问题充分理解时,这是合适的)。至少,我们承认这是一个计划。
在这个阶段,我们可能还要决定一些另外的过程结构,但不是全部。可以理解,有些程序员喜欢用“休假方式”工作,也就是在开展他们的工作过程中,没有强制性的结构。“想做的时候就做”。这可能在短时间内是吸引人的,但是我发现,在进程中设立一些里程碑可以帮助集中我们的注意力,激发我们的热情,而不是只注意“完成项目”这个单一的目标。另外,里程碑将项目分成更细的阶段使得风险减小(此外里程碑还提供更多庆祝的机会)。
当我开始研究小说结构时(有一天我也要写小说),我最初是反对结构思想的,我觉得自己在写作时,直接下笔千言就行了。但是,稍后我认识到,在写涉及计算机的文字时,本身结构足够清晰,所以不需要多想。但是我仍然要组织文字结构,虽然在我头脑中是半意识的。即便我们认为自己的计划只是一上来就开始编码,在后续阶段仍然需要不断询问和回答一些问题。