(1)总览
(2)整体分析
这张图从上而下,有5个房间,分别是瀑布模型(waterfall)、敏捷开发(agile)、看板(KANBAN)、SUCRUM、精益软件开发(lean)
(3)单独模块分析
①瀑布模型:瀑布模型,就是说,软件开发是按照一定顺序展开的。就像汽车生产的流水线一样,每个部门各司其责,工作按照顺序展开,交付件单通道线性流动。如下的图,总体上就分为:需求 → 设计 → 制造 → 测试四个阶段。在这个系统中,客户被排除在生产系统之外,它们只能从需求的接口人那里向系统输入需求。正因如此,客户无法理解生产所需的费用以及为什么交付总是会延期,也就会出现一种情况:甲方催我们交付,我们催甲方交尾款。
②敏捷开发:敏捷开发以用户的需求进化为核心,采用迭代、循序渐进的方法进行软件开发。在敏捷开发中,软件项目在构建初期被切分成多个子项目,各个子项目的成果都经过测试,具备可视、可集成和可运行使用的特征。换言之,就是把一个大项目分为多个相互联系,但也可独立运行的小项目,并分别完成,在此过程中软件一直处于可使用状态。
③看板:看板管理,常作“Kanban管理”,是丰田生产模式中的重要概念,指为了达到及时生产(JIT)方式控制现场生产流程的工具。及时生产方式中的拉式(Pull)生产系统可以使信息的流程缩短,并配合定量、固定装货容器等方式,而使生产过程中的物料流动顺畅。KANBAN要求把开发中的任务,以 TODO List 的方式表现出来:形式可以是即时贴,也可以是可视化软件等等。在制造业中,看板也是非常重要的管理方法。也有将其称为目视化管理的。
④SUCRUM:Scrum原始含义是指英式橄榄球次要犯规时在犯规地点对阵争球,在软件开发领域中,SCRUM是一种迭代式增量软件开发过程,它包括了一些预定义的角色:
a.产品负责人 Product Owner:产品负责人负责维护订单
b.Scrum主管Scrum Master:SCURM Master 对整个SCRUM 过程负责,不惜一切代价,保证团队的工作时间和计划。
c.开发团队Team:在 SCRUM 过程中,开发团队通常会进行冲刺 (Sprint),一个冲刺周期的长度通常是2-4周。
⑤精益软件开发:精益软件开发不再像传统的软件开发一样,耗时几年才向客户交付完整的软件。取而代之的是,优先建立一个最简可用的原型产品投放市场或交付到客户手上。