传统的软件开发模式一般是这样的:调研、设计、编码、测试、文案、安装实施、培训、支持。但是新的开发模式正在起来。
调研?NO。先把话题和思路放到BLOG或论坛、QQ群中讨论。业务设计师,你不是一个人在战斗。群众的力量。当然,程序员也可以参与到社区讨论中,和客户面对面。省得老觉得客户来自火星,需求都是怪异的。
根据业内人士和用户的反馈讨论后,得到比较踏实的需求。根据市场竞争和客户需求呼声,确定好该版本的目标和出品时间然后根据这有限的时间和明确的目标校验下,把用户的需求进行筛选。不符合此次版本的需求,扔掉。不符合此次时间进度的,扔掉。于是就留下了此次版本要实现的功能。
现在的竞争往往是以月为单位。所以每个月都需要给客户抛出新的亮点。所以,功能不能全做完后才给客户亮相。再者,前期讨论的都是基于空想的,到底真的出来,跟空想讨论还是有差距的,所以需要每月放出已完成的亮点功能,让先期客户网上内测品尝,社区评价群中讨论,再综合意见,为接下来的开发更踏实落地,产品更贴近用户想法。
现在的开发也很先进。过去呢,需要把人都聚在一起。你来自西北,他来自西南。大家都聚集在一个大城市背井离乡,租房过活。而现在呢,网上可以悬赏,网上也可以找合作伙伴,也可以网上找开源学习,也可以找公共code库,不懂?网上发帖子,搜BLOG。大家足不出户,不用再赶春运的艰难,不用背井离乡。互联网将大江南北串在了一起,没有了地域限制。甚至中国与其他国家,也没有了时间限制。
本来嘛,互联网,24X7。全球的志同道合者,互联网上交流,互联网上工作。代码管理、需求管理、BUG管理也都用互联网的工具来管理。
现在在测试上也一改过去,用户一旦发现BUG,或者感觉操作不顺手,理解不易懂,程序员会很快直接改掉,然后问客户一句:你刷新一下,看看现在好不好。过去,程序员是深藏闺中,现在从头到尾都参与了创造产品,改进产品。不断和客户交流,才理解客户的现实。
这就是互联网式的开发模式,在过去的软件开发流程和管理模式上根本无法做到。软件很容易变得稳定、贴近用户。软件也很容易一点点预热市场,不断吸收先期用户,不断开发新功能,达到用户群的扩张和知名度的扩张。在传统的模式中,软件生产是“头未梳好不许看”,软件定版了,有网站了、彩页了、试用版、文档帮助了,才发动大规模的市场宣传和销售。要想突然让人让更多人知道,是需要大量金钱的,也需要大量必要时间来渗透的这就是互联网式的开发模式,不仅影响我们的软件开发模式,也影响了软件市场和销售的模式。