公司的目的就是盈利,确实是这样的。没有盈利,产品再好也没有用。程序员技术至上,对待自己的作品精雕细作,仿佛是自己的孩子,或无上的艺术珍品,往往忽略了写软件最主要的目的:把它们卖出去换钱,结果造成时间拖得太长。我以往因为考虑问题的角度,也跟普通程序员一样,也或多或少的犯这种错误。
不过,保证软件必要的质量还是非常有必要。软件写得太烂,运行老出错,就要花很多时间来进行后期维护,甚至造成客户失去信心,拒绝使用。这样子,这个软件就是一个失败的产品,即使已经收到钱。
另外,设计软件时,尽可能想得细一些,设计得通用些,千方百计地考虑它的重用性,那么以后发生改动时,花费的工夫就比较小,或者遇到类似的需求,可将现有产品稍加修改就能适用。很显然,这样做第一个东西时,花的时间就可能比较长,但这种牺牲还是有必要。举个例子,做一个网站,接到需求后,不管3721,立刻开工,也不用多想,一张接一张的做,肯定很快就可以拿给客户看了。但如果客户想要修改一点东西,或者再添加点动态内容,比如想自己维护某些产品、信息,问题就来了,发现要改很多地方。如果能做个通用的网站发布系统,就可以让客户自己维护,修改起来也很方便。但这个系统要实现,因为要尽量做到通用,考虑的方方面面很多,做起来比较耗时。
在保证必要质量的基础上,可以采取分批次升级的办法。一个软件,不可能一下子做得尽善尽美。我们在很多时候,可能会突然冒出许多好的想法和灵感,但如果不是非常有必要,就不必添到现行的版本。软件只有提交给客户使用,才会发现问题,才是一个真正的软件。给客户使用了,以后修改,就叫升级,否则就是没开发好。老停留在开发阶段,很容易打击程序员的士气。