传统的软件工程适用于传统的软件开发领域。
在追求短平快的互联网行业,产品需求、设计文档、测试用例这些都是扯淡。互联网信奉的是快打慢。软件的重量级和功能都是次要的,速度才是生存的根本。QQ能垄断是因为它技术牛、功能多吗?定位清晰,跟进够快才是生存的王道。
甲午海战的时候,北洋水师的总吨位逊于日军的这个劣势其实都是次要的,北洋水师自然认为有大口径火炮、有高吨位的铁甲巡洋舰,但是最后还是一败涂地,主要是因为日舰航速比北洋水师快:他想打你你没地方朵,不想跟你打你又追不上。
对应到互联网行业,公司领导就好比战争指挥者,创意就好比战略思路,最关键的,是你的队伍能跟上你的思路。军队练兵,从立正、稍息、左右转这些基本动作开始练,就是为了指挥官在战场上运用自如。一个高速的开发队伍可以在最短的时间内把创意转化为产品。这时候,你像模仿别人的创意,可以做得比他好。别人想模仿你的创意却做不过你。在此基础上,公司的高层才能放心的把注意力集中在互联网这个变幻莫测的市场中。
所以,高速、发展中、互联网,这三个词加起来构成的开发模式,就是若干个产品线混合起来“迭代重构,螺旋上升”的DNA模型。对于产品创意,速度出DEMO,在产品人员使用DEMO的过程中,一边开发高级核心(跟需求的耦合性小)功能,一边针对产品人员的实际使用感觉调整产品细节特性。在完成度70%的时候便进入测试,开始测试核心功能,最后在开发下一个DEMO的同时,配合测试人员进行最后的测试。这样一来,每条产品线的产品、开发、测试三条线混合起来形成了一条经典的超流水。互相关联的几条产品线,通过“产品人员”联系起来,互相环绕,延时间轴迭代上升,最终形成一股适应于互联网环境的有机整体。