第三次作业

半城伤御伤魂 提交于 2020-03-06 18:42:07

Scrum敏捷开发笔记

一、什么是敏捷开发?

敏捷开发以用户的需求进化为核心,采用迭代、循序渐进的方法进行软件开发。

1.什么是敏捷?

软件开发过程是指设计软件开发过程中涉及的一系列活动,指导开发组一步一步的进行软件开发。

包括传统的瀑布过程、螺旋过程、原型过程、敏捷过程等。敏捷则是一类过程的统称。

之所以把他们都称之为敏捷,是因为它们有共同的特点。敏捷过程讲究快速迭代快速试错,将一个大的项目分解成一个一个独立的小项目,每个项目实现一定的功能,每个项目的成果物都是可以运行的软件。经过多次迭代之后完成整个项目。

2.关于敏捷方法

敏捷方法是试图通过小型的、自我管理的团队用短小的合作发布周期来鼓励迭代式软件开发方法。软件的质量贯穿敏捷软件开发每一个阶段,且非常重要,并提出很多关键的规则来保证能在每一个迭代周期内及早是的发现并及时相应消灭开发过程中出现错误。

在敏捷方法提出理念下,衍生出了很多不同敏捷软件开发方法。
如Scrum、极限编程[EXtreme Programning XP],测试驱动开发[Test Driver Development],重构和持续集成。Scrum是敏捷过程中比较著名的一个过程框架,被很多团队采用。

二、Scrum模型

3个角色

  • Product Owner:产品负责人,主要负责确定产品的功能和达到要求的标准,指定软件的发布日期和交付的内容,同时有权力接受或拒绝开发团队的工作成果。

  • Scrum Master:主要负责整个Scrum流程在项目中的顺利实施和进行,以及清除挡在客户和开发工作之间的沟通障碍,使得客户可以直接驱动开发。

  • Scrum Team:主要负责软件产品在Scrum规定流程下进行开发工作,人数控制在5~10人左右,每个成员可能负责不同的技术方面,但要求每成员必须要有很强的自我管理能力,同时具有一定的表达能力;成员可以采用任何工作方式,只要能达到Sprint的目标。

3个工件

  • Product Backlog:产品需求列表,由PO负责。

  • Sprint Backlog:每个迭代的功能开发列表。

  • Burndown chart:燃尽图,在每个迭代显示剩余工作时间和任务完成情况。

5种工件

  • Sprint:冲刺,一个固定的时间周期(通常为2w-4w),团队要尽可能在这个周期内交付可以工作的软件给客户。

  • sprint planning meeting:冲刺开始的时候,PO会和团队一起从PB中选择本次要做的任务/故事,并且会对团队提出的疑问进行解释和澄清。同时团队会估算故事并分解成任务,最后会形成本次的Sprint Backlog.

  • daily standupo meeting:每日站会,scrum为了加强团队沟通,每天团队都要选择一个时间站在一起,互相交流彼此的进展和问题,以便及时解决出现的问题,同时也能让团队随时了解我们离冲刺目标还有多远。

  • sprint review:在sprint周期最后,需要进行一次评审会议,让团队向产品负责人和利益相关者展示已完成的功能。sprint审核的大部分实践用于团队成员展示功能、回答利益相关者对展示的疑问并记录所期望的更改。评审会议可以吸引相关利益者的关注,让其他人了解团队在做些什么,并得到重要反馈。做演示也会迫使开发团队真正完成一些工作。

  • retrospective meeting:回顾会议,通常在reivew会议之后开始,有团队成员在冲刺结束之后对上个迭代进行总结,同时提出一些改进方案,这是一个持续改进的过程。

其他要素

  • user story:用户故事,因为敏捷要求每个特性都是对客户有价值的,所以以用户故事的方式来设计特性,通常是作为客户,我要实现A功能,以至于我可以达到什么目的的结构。

  • task:每个迭代中为了开发一个user story,将其分解为一些task,比如说我要开发一个协议,其中需要几个task,包括搭建服务器,找一些开源代码,搭建自动化测试框架,编码,测试任务,便于更小粒度的track每个迭代的进展。

  • release planning:在某些大型组织,可能更关注release级别的产品交付,所以每个release之前要进行整个release的plan,决定这个release的PB。

  • points:故事点数,代表用户故事的大小,要记住,这里的大小不代表开发时间,只是一个相对的用户故事的复杂度,工作量大小。因为很难理解,所以scrum team要建立一个基准的user story,作为一个points,然后其他的user story和它进行相对比较。这个points大部分时间用来作为评估team的交付能力。

SCRUM实现

1、将整个产品(Product)的backlog分解成Sprint Backlog,这个Sprint Backlog是按照目前的人力物力条件可以完成的。
2、召开sprint planning meeting,划分,确定这个Sprint内需要完成的任务,标注任务的优先级并分配给每个成员。注意这里的任务是以小时计算的,并不是按人天计算。
3、进入sprint开发周期,在这个周期内,每天需要召开Daily Scrum meeting。
4、整个sprint周期结束,召开Sprint review meeting,将成果演示给Product Owner.
5、团队成员最后召开Sprint retrospective meeting,总结问题和经验。
6、这样周而复始,按照同样的步骤进行下一次Sprint.

三、学习心得

Scrum的特点是能够适应变化快速迭代,相比传统的开发方式发现问题时更容易维护;但Scrum是以团队为中心的开发模式,实际上是一种更高技巧的管理方式,对管理者、执行者的要求更高。

四、小组进一步开发计划

成员 任务
全娜 用户登录注册
彭婷 数据库管理
毛瑶瑶 前端页面实现
钱胜 购物车管理
陈梦婷 订单结算和支付
高紫薇 测试

小组开发情况

https://github.com/6joker/new-project/blob/master/README.md

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!