继《构建之法》之后,阅读的第二本同样很是优秀的软件方面的著作。特将自己的学习做以下随笔以为记录。
一、要做完整合理的分配
开篇,作者以大量的篇幅来来写自己在当时处于什么样的困境当中,没日没夜的去编写代码,直到最后才堪堪将问题解决。作者在文中提出了以下的疑问:
“难道我们以前没有做过软件吗?
做过。
是没有全面测试吗?
显然不太充分
怎么会搞得一塌糊涂?
鬼晓得。”
这里说明我们在作为一个团队成员开发一个项目的时候,一定要将要做的事做一个规划,然后进行全面的准备,这样我们才能够在接到任务的时候做出充分的应对。
二、要有时刻面对困境的准备
第0章,这听起来不是一个笑话,作者在书中也明确的将这个事情做出解释。他说,程序员从0开始计数,而不是从1。程序员为什么要从0开始,那是因为计算机是从0开始的。所以我们要养成一种习惯,要时刻与计算机做出同步。所以说,软件是有生命的存在。但是,在我们做一个软件的时候也是会出现各种各样的问题的,许许多多的问题都是我们始料未及的,就像是作者说的,软件是一个麻烦的东西。我们程序员就是为了解决这些麻烦而存在的。无论编写程序让我们有多么的崩溃,多么的感受到挫败,我们也永远无法找到一种魔法般的突破,只能渐行。
“梦之所寄,行之所为--地狱之门就此洞开。”
只有我们未雨绸缪,有强烈的的危机意识,才能够在未来的道路上走的更远,才能够在未来的路上多一些成功,少一些挫折。
三、软件时间无法估量
在要死了这一阶段,作者举出了大量的例子,来向我们展现软件开发时间是无法估算的,例子中用了很多的方法去提高软件开发的效率速度,想法设法尽可能的去完成预定工作,但是都无一例外的失败了。我认为,这就是我们在刚刚开始开发的时候没有明确的进行计划和更加详细的分析。这点在我们的团队中,一定要将这些问题进行解决。尽量避免我们在团队开发中的问题出现的更多。尤其是在时间方面,我们必须分析明确,否则就会像约翰·安德森说的那样:“原因很多。建造之前,先有蓝图。我们一直就没有蓝图,所以会碰上没有预料到的问题。除非你确 定自己能做出某个东西来,否则很难说会花上多长时间。”
我们的所想,就是我们最终决定的所需的时间。“不确定因素太多,你所需的时间取决于其他人所花的时间。”所以,一个团队不能都形成一种惰性,否则,面临的会只有失败。