文章中用了徒步旅行这个例子来描绘了软件开发。一开始我们在进行软件开发预估周期时总是太过于理想化,就像文章中徒步旅行的时候以为道路全是平坦的,自己也不会受伤或者因为自己的粗心大意而导致计划延期的情况出现等等问题没有被考虑到。而软件开发预估周期也是在这样一个差不多的环境中进行的,我们在进行周期预估之前并没有深层次地进行过这一款软件的开发,只是基于表面而给出了一个预估周期,所以这就导致了软件开发周期总是预估的2~3倍。
2.什么是分而治之?
在软件工程中,分而治之就是,将一个大型的开发项目分成很多小块,将所分的小块交给相应的人去开发去管理。就像将一个复杂问题转化成几个简单的问题,等简单的问题被相继的解决后,再拼装回来,解决这个问题。同样的,开发软件时,不同的功能代码分给不同的人去写,在最后完成组装,这便叫分而治之。
3.了解WBS。
WBS(Work Breakdown Stucture),即工作分解结构。在做WBS拆分时,有以下几个原则:
一、100%原则
拆分的任务要100%的包含所有交付物。例如开发项目,在任务拆解时必须覆盖需求评估、设计、开发、测试和交付五个完整的模块,然后针对不同模块做进一步任务拆解。
二、拆分任务时要互相独立且完全穷尽
“相互独立”意味着不重复造轮子,“完全穷尽”才能不误事。例如采购盘子和采购餐具并存,就是不合理的拆分。
三、要有合理的工作包大小
项目拆解出来的工作包并非越细越好。每个工作包拆解到一个人,可以独立负责,不超过1天的工作量为最佳。