往后面
实作所需要花的时间,永远比单纯想而已来得长太多了,再加上有许多在思考过程中难以发现的问题,因此实作通常都追不上想出新点子的速度,在实作的过程中时常很容易又突然想到一些点子,然而先前的点子明明都还没有完成,我写过无数个半途而废的程式,往往就是在实作的过程中太贪心,实作的时间无限制地往后延,然后又想到新点子,于是最后终于受不了丢下目前的程式跑去开发新的程式,周而复始,时间久了,专案的资料夹都快可以改名成为专案冢了,而直到最近我开始明白了一件事情,让这样的情况有了很大的改善 在以往开发专案都是以贪心的心态进行开发,想法一股脑地想一口气实现出来,但一个人的人月有限,所能做的事有限,有限的人力去实现无止尽不停冒出来的想法,专案永远没办法结束是理所当然的情况,我在 深入浅出软件开发 一书中学到了,替专案的目标设立优先级,换言之也就是对于程式的功能设立优先级,而在这次开发Walele中我就实际运用了这样的想法,试想一个投票机产生器网站最重要的功能是什么? 如果拿掉了这样功能,这样的系统便失去了意义,那就是系统最重要最核心的目标,不管如何都要做出来的,剩下的细节,仔细观察他们之间的相依关系,以及对于专案的重要性,再决定要优先先写哪些项目,Walele就是在这样情况下产生的产物,事实上从现在看到的Walele和规划中的Walele还有小一段距离,那就是优先顺位较低的项目,在有限的时间内,我们必须把最重要的功能先行实作完成,先行完成的功能可能是1.0版,或是第一个里程碑,而剩下没完成的功能往后面的里程碑或是版本排,没有这样做,贪心地想完成所有当初设下的目标,往往会超过期限,专案却迟迟未能上线,因此替专案的目标、功能设下优先级是必要的,这就是我从深入浅出软件开发和Walele的实作过程中所学到的