作者:保罗·W·霍默(Paul.W.Homer)
从所有得失成败的经验中,我们可以学到很多东西。在像软件开发这般年轻的行业中,为了持续发展(sustain progress),传播经验和知识至关重要。每个团队在自己的小世界小角落里所学到的东西,可能会在全球产生影响力。
实际上,要成功开发项目,仅凭软件开发的基础知识,即那些在理论上绝对正确的知识,是远远不够的。其他不足,我们依靠猜测(guess)、真觉判断,甚至随机挑选来弥补。就此而言,任何主要开发项目的成败经验都是经验性的证据。我们期望通过不断的交流,将之整体反馈回行业中去。
在个层面上,我们都在努力成长,不断认识应当如何构建更大型的系统,在职业生涯中也遭遇越来越大的挑战。因此期望之前的经验能提供指导。亲临现场当然不错,但要从经验中获得最大启示,就还要经常进行理性总结(rationalize)。为了达到这个目标,最好、最容易的方法,就是尝试向他人解释。
讨论有助于发现不足。只有能非常容易地做出调整,才表明你真正理解了。只有不断解释和讨论,才能把经验凝聚成知识。
另外要补充一点,从过往经验得出的推论,并不完全适用于所有情况。我们也许没有想象的那么成功,或如期望的那么聪明。当现实检验表明,从未置疑过的东西忽然被证实是缺乏根据,不正确或压根儿就从没有正确过时,确实令人颇为灰心,无法接受;承认错误确实不易。
归根结底,我们都是凡人,因此所知的一切不可能都是正确的,我们的每个想法并不都是合理的。只有勇于接受不足,才有不断改进的可能。从失败中能够学到更多,是颠扑不破的真理。如果思想和信仰不起辨论的考验,那么,现在发现,总比以后重新建立要好。
我们真诚希望能够通过分享知识和经验,帮助业界持续发展;我们也认识到,这有助于更好的理解和修正己知的知识和经验。软件五花八门,利用一切机会分享我们知道的,我们认为我们知道的,以及我们己经发现的,其重要性不言而喻。如果能帮助周围的人不断改善,他们也会帮助我们发挥出全部的潜力。