Scrum 方法
It’s light-weight, simple to understand but difficult to master.
敏捷是轻量化的,容易理解但很难掌握。
Agile Process/ Manifesto 特性介绍
Light-weight & People-based (rather than Plan-based)
- Individuals and interactions
- Working software over comprehensive documation
- Custormer collaboration over contract negotiation
- Responding to change over following a plan
敏捷一般是小量迭代的,适应快速的市场变化的
Role 职责介绍
Product Owner
- Maximize the value of the product and the work
-
- Talks to customer, understand requirements and its priorities
需要跟客户沟通 了解需求和优先级
- Talks to customer, understand requirements and its priorities
-
- Managing the Product Backlog (only person)
注意:只有PO才能去管理
- Managing the Product Backlog (only person)
-
-
- Can assign it to the development team, but still accountable
分发任务给成员 但要负责
- Can assign it to the development team, but still accountable
-
- Managing the Product Backlog
-
- Record product backlog items and order it
- Optimize the value of the work the development team performs
- Ensure transparency and clarity of the product backlog
- Ensure the development team understands product backlog
让成员理解Product Backlog很重要
The Development Team/ Core Member
- Self-organizing: turns Product Backlog into increments of potentially releasable functionality
Core Member的主要职责就是开发 在后面小节(Development Work) 重点讲 - Cross-functional: skills mix necessary to create a product
- No sub-teams:regardless of domains that need to be addressed
- Whole team is accountable
- No titles for Dev team members
The Scrum Master
-
Keeps the team focused on using Scrum properly (“servant-leader”)
-
- Everyone understands Scrum rules and values
像是教练的一个身份
- Everyone understands Scrum rules and values
-
- Remove impediments 去除阻碍
-
- Helps those outside the Scrum team which of their interactions with the Scrum team are/aren’t helpful (帮助Scrum团队之外的人,他们与Scrum小组的互动中哪些有帮助,哪些没有帮助)
-
- Maximize the value created by the Scrum team through changing team interactions
Sprint Event
主要分为以下五个部分 按顺序进行 缺一不可
1. Sprint Planning
- Identify the Sprint Goal (items from the “Product Backlog”)
- Identify work to be done to deliver this
- Two-parts meeting (Scrum Master, Product Owner and Dev team)
- Beforemeeting:ProductOwnerpreparesprioritizedlistofmostvaluableitems
- Meeting part 1 (max. 4 hours): Product Owner & Dev team select items to be delivered at the end of the sprint based on their value and on the team’s estimate of how much work needed
- Meeting part 2 (max. 4 hours): Dev team (with the Product Owner’s help) figure out the individual tasks they’ll use to implement those items
- Output: Sprint Backlog (the items selected by the team for development)
该阶段的成果就是Sprint Backlog,通过开会从Product Backlog中选择出这次Sprint需要完成的任务。
2. Daily Scrum
- To ensure problems and obstacles are visible to the team
- Timeboxed 15 minutes (same time and place each day)
- All team members including Scrum Master and Product Owner must attend
- Interested stakeholders may attend as observers
- Each briefly answers three questions:
- What did I do yesterday that helped the development team meet the Sprint Goal?
- What I will do today to help the development team meet the Sprint Goal?
- do I see any obstacles that prevent me or the Dev team to meeting the Sprint Goal?
- No problem-solving during the meeting
- Follow-up meetings if further discussion is required
每天进行的回忆,一般都是Stand-up Meeting - 站着开会 时间短快速进行。简单来说就是每人问自己三个问题:
昨天我做了什么?今天的我要做什么?我是否看到/遇到了什么困难阻碍?
3. Development Work - Dev Team
- Builds the items in the Sprint Backlog into working software
- Should inform the Product Owner if they are overcommitted or can add extra items if time allows
- Must update the Sprint backlog and keep it visible to everyone
这部分主要是core member的开发,跟随sprint backlog中自己被assign的任务去做。如果遇到了困难需要通知Product Owner。最重要的一步就是做完以后将Sprint Backlog中的In Progress的任务拖拽到Done栏。
4. The Sprint Review
- Informal meeting at end of the Sprint (max. 4-hours)
- Dev team demonstrates working software to customers/stakeholders
- Items actually done - completed, tested & accepted by the product owner
- Only functional working software - not architecture, database design etc.
- Stakeholders share their feedback, ideas, feelings, thoughts about the demo
- The Product Owner explains “Done” and not “Done” items
- Dev team demonstrates working software to customers/stakeholders
- Output: revised Product Backlog and probable items for next iteration
这是一个主要围绕demo演示的阶段。
在此阶段中,Core Member 向我们的客户演示功能。只需要展示经过测试的完整功能(Product Owner已认可),例如框架选择,数据库设计,持续集成(Jenkins)这种不需要展示。
客户会提出他们的观点和反馈,团队成员一定要将这些记录下来,后续需要讨论加入Product Backlog里。
这个阶段的成功就是 Product Owner需要修改Product Backlog 为下次iteration做准备。
5. Scrum Retrospectives
Opportunity for the Scrum team to inspect itself and create plan for improvements
Purpose
-
Inspect how the last Sprint went with regards to people, relationships, process, and tools;
-
Identify and order the major items that went well and potential improvements;
-
Create a plan for implementing improvements to the way the Scrum Team does its work
这个阶段比较好理解,就是回顾这次Sprint,我们哪些做得好哪些做得不好。
Retrospective meetings (max. 1-2 hours)
The Scrum Master and the Dev. team (maybe product owner)
-
Each person answer two questions:
- What went well during the Sprint?
- What can be improved in the future?
-
The Scrum Master notes improvements that should be added to the Product Backlog (non-functional items)
- E.g., set-up a better build server, adopting design principles, changing office layout
-
Output: identified improvements to be implemented in the next Sprint (adaptation)
Scrum Master需要记下改动帮助,这个阶段的成果就是Scrum Master帮助Product Owner确认好需要的改动,更好地进行紧接着的Sprint Planning。
Product Backlog vs. Sprint Backlog
刚入门容易对这两个东西有混淆,其实不难理解。
Product Backlog
Set of all features and sub-features (items) needed to build the product. Maintained by the Product Owner, and it evolves over the time and never complete.
The items ordered by priority - value to customer.
包含所有的需要完成这个项目的功能,用优先级排序,优先级由这个东西对用户的价值决定。
Simple spreadsheet - 可以是Excel表格
- Some items are “customer features”
- Could be a user screen, an interaction scenario or use case, a new report/algorithm
有一些是用户功能 比如场景交互。
- Could be a user screen, an interaction scenario or use case, a new report/algorithm
- Some items are internal tasks that contribute to the value of the product
有一些重要的内部任务- Design doc, GUI 这些东西取决于是否 contribute to the value
对团队和用户来说是否重要,如果没人看/ 不会看就不需要加进去
- Design doc, GUI 这些东西取决于是否 contribute to the value
Sprint Backlog
Set of Product Backlog items selected for the Sprint, and a plan for delivering the product increment and realize the Sprint Goal
看完Product Backlog,这个就很简单了。不过是从Product Backlog中挑选出来,只为当前Sprint使用的东西,或者说这次Sprint需要完成的任务。
Typically divided into 3 sections; To Do, In Progress, Done.
分为这三个栏,简单易懂,详情可以参考GitHub的Project Board。
Progress Monitoring
“Burndown” chart tracks the amount of estimated effort remaining in the a sprint
- Maintained on a daily basis by the Scrum Master
燃尽图,由SM管理,JIRA的Scrum Project里的Report功能可以自动生成。
Velocity tracks the amount of work from Sprint to Sprint
- Velocity chart graphically shows project/team’s velocity
- Team’s velocity is 25, divide the sum of the number of story points with the velocity. This will be the estimated number of iterations to perform. 团队的速度/总story point就是需要的迭代次数。