【原文链接】
1、瀑布模型
(1)瀑布模型如下
(2)瀑布模型的缺点:
在瀑布模型中,测试是在编码结束后才介入,对软件开发流程前期质量是没有保障的
(3)采用瀑布模型的场景:
对于容易理解、需求稳定的项目,采用瀑布模型是比较适合的
2、敏捷开发简介
(1)敏捷开发的核心是迭代开发和增量开发
(2)敏捷开发的好处:
1)早起交付
2)降低风险
(3)敏捷开发每个迭代都需要依次完成以下步骤:
1)需求分析
2)设计
3)编码
4)测试
5)部署和评估
3、敏捷开发的核心要点
(1)三大核心角色:Product Owner,Scrum Master,Scrum Team
1)Product Owner:主要负责确定产品的功能和达到的要求的标准,指定软件的发布日期和交付内容
2)Scrum Master:主要负责整个流程在项目中的顺利实施和进行,以及清除挡在客户和开发工作之间的沟通障碍,是的客户可以直接驱动开发
3)Scrum Team:主要负责流程下开发工作,人数控制在5-10人左右,每个成员可负责不同的技术方面,但要求每个成员必须要有很强的自我管理能力,同时具有一定的表达能力,成员可以采用任何工作方式,只要能达到Sprint的目标即可
(2)三个工件:
1)产品代办事项(Product Backlog)
2)迭代待办事项(Sprint Backlog)
3)可交付产品增量(Increment)
(3)五大会:
1)需求澄清会
由PO澄清需求,测试和开发参与理解,并反串讲,从而达到测试和开发与PO的需求理解达成一致
2)迭代计划启动会
制定本迭代的计划,SM拆解任务,团队成员领取迭代任务
3)每日站会
每天早晨站会,一般10-15分钟,每个人总结一下昨天的进展、难点、求助,以及今天的计划等,对齐进展,由SM组织
4)迭代验收会
对迭代开发的需求进行验收,有PO和测试进行验收
5)迭代回顾会
总结迭代中做的好的和不好的,对于好的继续保持,对于不好的在后续迭代需要进行改进
(4)12原则:
1)我们的最高目标是,通过尽早和持续地交付有价值的软件来满足客户。
2)欢迎对需求提出变更——即使是在项目开发后期。要善于利用需求变更,帮助客户获得竞争优势。
3)要不断交付可用的软件,周期从几周到几个月不等,且越短越好。
4)项目过程中,业务人员与开发人员必须在一起工作。
5)要善于激励项目人员,给他们以所需要的环境和支持,并相信他们能够完成任务。
6)无论是团队内还是团队间,最有效的沟通方法是面对面的交谈。
7)可用的软件是衡量进度的主要指标。
8)敏捷过程提倡可持续的开发。项目方、开发人员和用户应该能够保持恒久稳定的进展速度。
9)对技术的精益求精以及对设计的不断完善将提升敏捷性。
10)要做到简洁,即尽最大可能减少不必要的工作。这是一门艺术。
11)最佳的架构、需求和设计出自于自组织的团队。
12)团队要定期反省如何能够做到更有效,并相应地调整团队的行为。
(5)敏捷开发工作流程
1)PO按照优先顺序排序确认一个产品需求列表
2)开发团队根据产品需求列表,做工作量评估和安排
3)迭代启动会从产品需求列表中挑选出本迭代需要完成的Story,迭代周期一般1-4周,然后将Story进行细化,形成本迭代的任务列表
4)敏捷开发团队根据迭代任务继续细分为更小的任务,每个任务的工作量在2天以内,并将所有的小任务用小纸片贴在敏捷开发看板上
5)每日站会上每个成员要汇报昨天完成的任务,今天将要完成的任务,同时更新敏捷看板上的任务纸片状态,同时如果遇到困难也可以在团队内求助,团队是一个整体,在迭代结束时需要将左侧计划中的任务列表全部完成
6)每日集成,做到每天都有一个可以成功编译演示的版本
7)当迭代结束时,在迭代验收会上,每个成员需要演示自己负责的功能以及测试过程,由PO和测试人员验收
8)迭代回顾会上,每个人可以发言,讨论本迭代做的好的和不好的地方,对做的不好的地方,整理出改进措施,并放入下个迭代的任务列表中,对于做的好的地方,如果由其中一位或几位成员主导,可以对其进行表扬等