软件开发最后的关键考量
1. 何时停止编程
在软件开发过程中,项目不断发展变化是很自然的。就像一位老人在门廊上雕刻、打磨一艘漂亮的木船,当孙子问“什么时候能完工”时,老人回答“等他们把它从我这儿拿走的时候”。在为客户开发定制软件时,客户一开始只有一个大致的想法,随着看到各种表单和报告成型,“功能蔓延”就开始了。在商业产品开发中,也有客户似乎永远不想结束开发阶段,不断有新的功能和改进需求。
但时间和资金都是有限的,你不可能永远开发下去。如果你是独自编程,可能会一直完善产品;如果和伙伴合作,会就功能的必要性产生争论。
解决方案:制作版本二清单
制作版本二清单,也叫“要是有这个功能就好了,但……”清单、“我们现在负担不起做这个……”清单,或者“这是个愚蠢的想法,但我们先应承下来,希望这种想法会过去”清单。这个清单就是产品版本二的待办事项。
你应该在制作版本一清单的同时开始制作版本二清单。在定义产品功能时,要考虑添加功能的成本和收益,以及全面性和复杂性之间的权衡。产品功能越多,对潜在客户来说就越复杂、越难学。所以要为产品“划清界限”,决定哪些功能在第一版发布,哪些留到以后。
如果是独自编程,版本二清单能缓解你的强迫症和商业焦虑;如果和伙伴合作,它能让大家达成妥协。总之,你必须对理想系统做出妥协,第一版不会是你最终想要的产品,但要先以盈利为目标。
总结
- 功能蔓延常见:软件开发中项目易发展变化,客户需求不断增加。
- 资源有限:时间和资金不允许无限开发。