瀑布式
瀑布式开发用行业术语来解释就是,在软件定项的时候个开发阶段的准备:需求分析,组件定义,概要设计,详细设计,编码规范,冒烟测试,PRE/PRD测试等。
也就是说在开发之前就把一系列的事情都定义好,按步骤完成对应任务缺一不可。
优点:
1、步骤清晰明确;
2、文档完整,开发过程中可以作为参考;
缺点:
1、瀑布开发是从工业发展过来的,不适合计算机软件的开发;
2、开发周期长,花大量时间去编写文档,耗费时间、人力;
3、客户只有在整个项目完成时才可以看到成果,会导致信任问题;
4、风险大,在开发过程中并不能明白最后的结果,同时不能适应变化;
敏捷开发
敏捷开发以用户的需求进化为核心,采用迭代、循序渐进的方法进行软件开发。
最终的目标是让用户100%满意。因此,难点就是需要设计者能够满足用户需求的不断更新,满足软件的灵活性,可扩展性。
优点:
1、迭代快,开发周期短;
2、不再耗费大量的时间来写文档,而是人与人面对面交流,只写一些必要的文档;
3、分工详细,每天都输出成果,客户能够看得到,会信任项目团队;
4、沟通多,容易发现问题,同时能够激起团队的协作、奋斗;
缺点:
1、人与人之间的信任是非常重要的环节,但是这个比较难完成,技术团队的成员可能技术能力差别大,同时也有互相竞争,又或者是项目团队的成员有所保留,不愿意这样的沟通;
2、团队在开发期间的任务多、压力大,需要时刻保持“兴奋”,一般很难做到。
kanban式
Kanban
是敏捷开发(Agile Development)的一种实现模式。
所以,在开发过程中,我都是采用瀑布式+敏捷开发+kanban的方式达到互补的原则,从而实现了到目前为止,个人觉得比较适合的管理方式。
温馨提示:当然,具体的还是要看公司规模及项目情况,如:单应用项目或者中/小型公司根本就不建议使用敏捷开发,因为这样会太浪费公司的时间和经历。最终,反而降低开发产出。所以,建议所有的公司和管理模式,需要选择适合自己业务及管理方式的才是最佳的管理技术方案。