l 所有的编程人员都是乐观主义者,无论是什么样的程序,结果都是毋庸置疑的:“这次它肯定会运行”或者“我刚刚找出了最后一个错误”。
这一个观点,在《梦断代码》中也有所提及,那其中讲述的是,程序员对过往错误不在追悔莫及,对于新的项目仍抱有良好的希望。因此,推广到我们的日常学习中,愚认为对于过往逝去的事务不要在叹息,珍惜现在!
l 推荐的软件任务的进度安排:
1/3 计划
1/6 编码
1/4 构建测试和早期系统测试
1/4 系统测试,所有的构件以完成
项目的时间依赖于顺序上的限制,人员的数量依赖于单个子任务的数量。从这两个数值可以推算进度时间表,该表安排的人员较少,花费的时间较长(唯一的风险是产品会过时),相反,分派较多的人手,计划较短的时间,将无法得到可行的进度表。总之,在众多软件项目中,缺乏合理的时间进度是造成项目滞后的最主要原因,它比其他所有因素加起来的影响还要大。
根据个人经验,最出学习实践中,若没有丰富的经验,很难对项目做出合理的时间安排表,既不能按照功能板块平均分配时间,也不能对于每个程序员预估相同的的工作效率。因此,要想做出合理的时间安排表,离不开丰富的项目经验,更离不开一支默契的项目团队成员工作效率的了解。
l 对于效率和概念的完整性来说,最好由少数干练的人员来设计和开发;而对于大型系统,则需要大量的人手,以使产品能在时间上满足需求。要想调和这两方面的矛盾,Mills给出了一个建议:大型项目的每一部分由一个团队解决,但是该队伍以类似外科手术的方式组建,而不是一拥而上。也就是说,由一个人来进行问题的分解,其他人给予他所需要的支持,以提高效率和生产力。
l 在设计人员书写开发文档时,设计实现人员不必坐等文档完成。只要有一些最终将并入外部说明的系统功能雏形时,设计实现人员就可以开始工作了。首先,必须要设定良好定义的时间和空间目标,了解产品运行的平台配置。接着,可以开始设计模块的边界、表结构、算法以及所有的工具 。另外,还需要花费一些时间和体系结构师沟通。