引言:这些年一直想着减少开发成本,以为这样就是对的,而忽略了现实中程序员的特性。
就我个人的感觉:管理者如果迫于成本的压力,应当启用软件工厂模式;程序员群体自身的特性并非符合工程模式,设计与编码可由该群体自发完成,无需使用工厂模式。
下面具体谈一下为什么在管理者层面软件工厂有如此大的诱惑力?请听我解释:
这不难理解,如果软件可以用工厂的模式来运作,那么程序员的可替换性将被无限强化,这样软件开发的成本就可以大幅度降低。
看看近二十年来中国制造的影响,就可以理解这种廉价劳动力所蕴含的巨大杀伤力。
经营层面话题可以无限丰富,但永远也无法摆脱的则是永恒的利益,而这些利益又是不得不争。
外包,外协人员所有这些东西的出现貌似偶然,但终究是利益驱动。
同样的原因,很多人也总是忘不了软件工厂,如同我一直在整一套快速开发框架和方法论来让管理者只要找一批实习生就可以完成开发。
但我发现软件工厂的模式并非完全正确!请听我解释:
工厂的特征是按照既定的工艺流程,大批量生产同样的东西,这时候通常会有规模效益。
而软件开发是通过明确概念和逻辑来一次性的创造东西,规模不经济。
创造,创新性的东西是无法和工厂的特征相结合的,而更类似于某种工艺的确认过程。
勉强为软件开发导入工厂模式时,很多人会努力切分想(设计)和做(编码)。
这里的问题在于软件开发中想和做是无法切的干净利落的,想约定了做的方向,但做的过程中必然带着对想的深化。
对于全新的开发,不管需求分析还是架构设计都很难摆脱迭代的特征,这个时候需要的是全员参与及积极的沟通。
独裁体制会阻塞这种信息回路,进而降低效率。
尤其是在需求设计未完全明了的情况,非常明显。----值得一提的是我通过观察发现:让全员参与积极设计和沟通,恰恰能破解这个残局!