关于scrum的一些定义
敏捷软件开发方法是一种把新增功能通过较小的循环逐步迭代添加到项目中(的项目管理方法),工作是由自我组织的团队以高效合作的方式拥抱和适应变化来保证客户需求被真正满足的方式来完成软件开发项目的方法。
每个循环被称作一个迭代,或者冲刺(sprint),而这几乎就像项目本身的一个迷你小型软件项目,因为他包含所有发布增加的新功能的必要的项目功能任务。在理论上,每个冲刺结尾,产品应当被备好做一次总版集成。
敏捷方法强调实时沟通,相比较书面文档和生硬的流程沟通,更偏好面对面的沟通。除此之外,敏捷流程方法引进了一个广泛使用的技术之一---将产品需求以讲用户故事的形式表达出来。每个用户故事都有各种各样的字段如"主角","目标"或者他们需要执行的一个任务,一个解释。
敏捷测试中
测试不是最后的一个阶段;它真的是在集成整个迭代循环中,而且与编程任务肩并肩一同进行。
质量保证工程师在项目的一开头就介入---与开发团队同步,而且他们对产品需求和顾客需要的相同信息同时有权限进入。这种从开头进入的参与,结合开发和质量保证工程师现在是相同的敏捷团队的部分,他们每天一起工作,他们对彼此对冲刺整体的成功要执行的任务有完全的可见性的事实,
意味着他们之间的更好更频繁的沟通
因为测试人员倾向于特别擅长挖掘需求和辨识不断变换的场景,(尤其是当他们完全可以看到产品需求和用户需要时),他们提供了有价值的设计观点和架构决策,从项目一开始。
关于scrum的一些概念
Scrum 是一个用于开发和维持复杂产品的框架 ,是一个增量的、迭代的开发过程。在这个框架中,整个开发过程由若干个短的迭代周期组成,一个短的迭代周期称为一个
Sprint(我们可以称之为迭代或者冲刺),每个Sprint的建议长度是2到4周(互联网产品研发可以使用1周的Sprint,较多用的是两周)。
在Scrum中,使用产品Backlog来管理产品的需求,产品backlog是一个按照商业价值排序的需求列表,列表条目的体现形式通常为
用户故事。
Scrum团队总是先开发对客户具有较高价值的需求。在Sprint中,Scrum团队从产品Backlog中挑选最高优先级的需求进行开发。
挑选的需求在
Sprint计划会议上经过讨论、分析和估算得到相应的任务列表,我们称它为Sprint backlog。
在每个迭代结束时,Scrum团队将递交潜在可交付的产品增量。 Scrum起源于软件开发项目,但它适用于任何复杂的或是创新性的项目。
Scrum框架包括3个角色、3个工件、5个活动、5个价值
3个角色
- 产品负责人(Product Owner)
- Scrum Master
- Scrum团队
3个工件
- 产品Backlog(Product Backlog)
- SprintBacklog
- 产品增量(Increment)
5个活动
- Sprint计划会议(Sprint Planning Meeting)
- 每日站会(Daily Scrum Meeting)
- Sprint评审会议(Sprint Review Meeting)
- Sprint回顾会议(Sprint Retrospective Meeting)
- 产品Backlog梳理会议( Product Backlog Refinement)
Scrum中通过三个活动进行检验和适应:
每日例会检验Sprint目标的进展,做出调整,从而优化次日的工作价值;
Sprint评审和计划会议检验发布目标的进展,做出调整,从而优化下一个Sprint的工作价值;
Sprint回顾会议是用来回顾已经完成的Sprint,并且确定做出什么样的改善可以使接下来的Sprint更加高效、更加令人满意,并且工作更快乐。
Scrum由一组迭代周期组成,每个迭代(sprint)为2-4周,在每个迭代中都依次有planning (计划) , daily standup meeting(每日站会) , review(评审) 和retrospective (回顾)会议组成,由ScrumMaster (Scrum负责人)来召集这些会议,当然由团队负责人担任ScrumMaster也是比较常见的;有些团队也采用成员轮流担任ScrumMaster的方式,这样可以增强每个团队成员的主人翁和责任意识等。
scrum认为:发布也就是Milestone(里程碑),宁可发布二十个功能发布五次,也不要在内部搞五个Milestone然后一口气发布一百个功能
所以scrum的一个有点,快速迭代,这对于快速发展的互联网产品来说事十分必要的
一般公司实行scrum测试开发之前是瀑布式(版本式)
Scrum是一种轻量级软件开发方法,即一种做事的方法。目前有很多开发方法或管理方法,为什么选择Scrum呢?
1.个体交互重于过程和工具;
2.可用的软件重于完备的文档;
3.客户协作重于合同谈判;
4.响应变化重于遵循计划。
通俗地讲,它适用于软件开发,因为软件需求经常改动。它适用于客户的需求不明的情况,因为需求不是很明确,就需要你经常与客户沟通,倾听反馈,持续改进。它适用于竞争激烈的市场,优先于竞争对手交付一个不完美但至少能用的产品非常重要。它适用于快速变化的市场,在你埋头苦造一辆汽车的时候,客户已经想开飞机了,这就需要你能把汽车改成飞机,还能按时交付。
综上所述,scrum是一种把新增功能通过快速迭代逐步迭代到项目中的项目管理方法
关键有两点:适应变化,快速迭代
对于现在需求和版本快速变化的互联网产品比较适合
总体步骤是:
1 项目负责人(一般是PM)列出一个要做的功能列表,按照优先级排好;每次从列表中抽出最重要的,且可以在二到三周内可以完成的几个;安排成子任务,分配好;sprint计划会议
2 对于每个任务分配一个PM,一个Designer,一两个程序员和一个测试,一个sprint(不用直译为冲刺,可理解为功能迭代)sprint评审会议
3 马上开始做,且小组成员(PM开发测试)共同参与明确需求,设计原型,和编码迭代等整个过程
4 每日站会(daily scrum)来分享每个小组具体完成了哪些进度;同时项目负责人再总结总体的进度;
5 2-3 周后,小任务们应该告一段落,然后回顾总结一次。准备下一次的小任务(next sprint)
参考链接
https://baijiahao.baidu.com/s?id=1593711112375362857&wfr=spider&for=pc
http://www.360doc.com/content/17/0714/08/38884510_671210321.shtml
https://blog.csdn.net/wd168/article/details/51766443
https://www.cnblogs.com/i16i1007/p/6650555.html
https://zhuanlan.zhihu.com/p/28283323