笔记:从瀑布到敏捷—用漫画解读软件开发模式变迁史
瀑布模式
流程:需求分析-规格说明-设计-编码-测试-维护
需求:客户排除在生产系统之外,只能从Client places order中输入需求
问题:客户无法理解生产成本高于预期(图:生产汽车却只愿意支付自行车的价格)
制造:制造软件,需求和设计不可更改。开发者只负责自己的部分,不关心软件的其他部分。(图:i know HTML。HTML开发者只负责HTML的开发)
测试:问题:产品未生产出来前无法测试,浪费资源。
敏捷模式
不再闭门造车,客户可随时更改完善自己的需求。
项目被切分成多个子项目,每个子项目可运行,可测试,可集成 。
团队合作紧密,沟通频繁(认为比书面文档更有效)
优点:
产品迭代,对产品不断改进增加功能(图:小号尾翼用的好再换大的)
开发和测试同时进行,避免资源浪费
及时响应客户需求(图:客户改变车型)
看板:敏捷模式容易造成混乱,将各种任务分类并写在看板上可有效避免混乱
SCRUM:有效避免敏捷模式的混乱的一种解决方法。
增加预定义角色
产品负责人:维护订单
主管:保证团队工作时间和计划
开发团队:专注于订单项的开发
精益软件开发
先用最快最简明的方式建立一个可用的产品原型投放市场,再通过迭代完成细节。(图:先用四个轮子一个方向盘一个座椅放在底盘形成一个汽车原型投放市场)
优点:尽早交付产品获取客户反馈,能更好的促进问题的暴露和改进