11. 敏捷开发带来的好处
TOP 5 reported benefits: Improved quality (56%)
More opportunities for mid-
course corrections (56%)
Overall improved customer
and business satisfaction
(38%)
Better business-IT
alignment (37%)
Improved time to market
(32%)
A lot more than
velocity
质量改善
利于中途修正
总体改善客户和业务的满意度
商业需求与IT实施更加匹配
更快投入市场
Source: 2013 Forrester Research, Inc.
12. 敏捷开发宣言
• Manifesto for Agile Software Development
– Individuals and interactions over processes and tools
人和交互 重于 过程和工具
– Working software over comprehensive documentation
可以工作的软件 重于 面面俱到的文档
– Customer collaboration over contract negotiation
客户合作 重于 合同谈判
– Responding to change over following a plan
随时应对变化 重于 遵循计划
• 虽然右边也有其价值,但我们认为左项更加重要
13. 敏捷原则 (Agile Principles)
1. Satisfy the Customer
2. Welcome Change
3. Deliver Frequently
4. Work as a Team
5. Motivate People
6. Communicate Face-to-
Face
7. Measure Working
Software
8. Maintain Constant Pace
9. Excel at Quality
10.Keep it Simple
11.Evolve Designs
12.Reflect Regularly
24. Scrum(二):团队
Build The Right
Thing
Build The Thing
Right
Build It Fast
Scrum Team
• Achievement-oriented
• Customer-oriented
• Committed
• Motivated
• Self-organized
• Empowered
• Skilled
30. Business Analysis Capabilities
Helping organizations develop the capabilities to achieve Enterprise Agility
Understand Needs of
the Customer
Develop Product
Strategy
Manage Product
Portfolio
Achieve Customer
Acceptance
Define Business
Requirements
Product Strategy Solution Requirements Develop Product Launch Product
Operate and Support
Product
Define Product
Backlog
Establish Product
Vision
Define Product
Roadmap
Plan Launch
Engage Stakeholders
Planning
Coordinate Launch
Establish
Development
Environment
Manage Suppliers
Ensure Process
Adherence
Identify and Remove
Impediments
Ensure Internal
Communication
Maintain Work
Environment
Develop Team
Support Operations
Provide Customer
Support
Support
Implementation
Coordinate Work
Maintain
Architecture
Understand
Requirements
Maintain Product
Quality
Design and Engineer
Solution
Deploy Product
Integration Testing
Learn from Outside
Sources
Commit To Agility
Manage Risks Provide Job Training
Everyone
Environment
Perform
Maintenance and
Customizations
Product Development
http://www.slideshare.net/mcottmeyer/how-to-own-a-really-big-complex-product-v3
31. Engineering Capabilities
Helping organizations develop the capabilities to achieve Enterprise Agility
Understand Needs of
the Customer
Develop Product
Strategy
Manage Product
Portfolio
Achieve Customer
Acceptance
Define Business
Requirements
Product Strategy Solution Requirements Develop Product Launch Product
Operate and Support
Product
Define Product
Backlog
Establish Product
Vision
Define Product
Roadmap
Plan Launch
Engage Stakeholders
Planning
Coordinate Launch
Establish
Development
Environment
Manage Suppliers
Ensure Process
Adherence
Identify and Remove
Impediments
Ensure Internal
Communication
Maintain Work
Environment
Develop Team
Support Operations
Provide Customer
Support
Support
Implementation
Coordinate Work
Maintain
Architecture
Understand
Requirements
Maintain Product
Quality
Design and Engineer
Solution
Deploy Product
Integration Testing
Learn from Outside
Sources
Commit To Agility
Manage Risks Provide Job Training
Everyone
Environment
Perform
Maintenance and
Customizations
Product Development
http://www.slideshare.net/mcottmeyer/how-to-own-a-really-big-complex-product-v3
32. Leadership & Coordination Capabilities
Helping organizations develop the capabilities to achieve Enterprise Agility
Understand Needs of
the Customer
Develop Product
Strategy
Manage Product
Portfolio
Achieve Customer
Acceptance
Define Business
Requirements
Product Strategy Solution Requirements Develop Product Launch Product
Operate and Support
Product
Define Product
Backlog
Establish Product
Vision
Define Product
Roadmap
Plan Launch
Engage Stakeholders
Planning
Coordinate Launch
Establish
Development
Environment
Manage Suppliers
Ensure Process
Adherence
Identify and Remove
Impediments
Ensure Internal
Communication
Maintain Work
Environment
Develop Team
Support Operations
Provide Customer
Support
Support
Implementation
Coordinate Work
Maintain
Architecture
Understand
Requirements
Maintain Product
Quality
Design and Engineer
Solution
Deploy Product
Integration Testing
Learn from Outside
Sources
Commit To Agility
Manage Risks Provide Job Training
Everyone
Environment
Perform
Maintenance and
Customizations
Product Development
http://www.slideshare.net/mcottmeyer/how-to-own-a-really-big-complex-product-v3
38. Scrum团队: Dev Team(2) 特性团队
Component Team Feature Team
VS.
http://www.craiglarman.com/content/feature-teams/feature-teams.htm
Component Team的组织方式会导致瀑布式的开发流程,以便协调团队
间的工作任务。
Feature Team组织方式的成功依赖于团队能力,以及团队对于重构、
持续集成、自动化测试等敏捷开发工具和实践的使用。
42. SCRUM工件:PB(1)Items
My primary rule for including any
item in the product backlog is that
the work must be something the
product owner can understand
and can reasonably prioritize
against features. So if you do
choose to include PBIs of
type technical work, you will need
to make the value of the item
clear to the product owner.
http://www.innolution.com/blog/demystifying-product-backlog-
concepts
43. SCRUM工件:PB(2)User Story描述
As a <USER ROLE>,
I want a <FUNCTIONALITY>
So that I can get
<BUSINESS VALUE>.
基于目标和场景驱
动,体现业务价值
47. SCRUM工件:PB(6) 非功能性需求描述
• Nonfunctional requirements represent important system-level constraints that
affect the design and testing of most or all items in the product backlog.
Nonfunctional requirements are used to specify various characteristics such as
system performance, accuracy, portability, reusability, maintainability,
interoperability, capacity, platform fan-out, and so on.
• 以User Story方式描述NFR,有助于理解部分技术决策背后的原因,如:
– As a customer, I want to be able to run your product on all versions of Windows from
Windows 95 on.
– As the CTO, I want the system to use our existing orders database rather than create a new
one, so that we don't have one more database to maintain.
– As a user, I want the site to be available 99.999 percent of the time I try to access it, so that
I don't get frustrated and find another site to use.
– As someone who speaks a Latin-based language, I might want to run your software
someday.
– As a user, I want the driving directions to be the best 90 percent of the time, and
reasonable 99 percent of the time.
• 参考http://scaledagileframework.com/nonfunctional-requirements/
53. Scrum活动:Release Planning(1)
– Who: Scrum Coach, Product Owner, Scrum
Team, Scrum Master, Key Stakeholders
– When: before release n+1 begins (.5 -2
days)
– How / Topic(s):
• PO presents the vision, strategy and
goals.
• PO present key dates and
milestones.
• PO presents draft of the prioritized
backlog.
• Discussion to understand user
stories.
• Review rough estimates + prioritized
features.
• Agreement on Sprint length (in
weeks) and target release dates.
• Release Plan is organized by scope
(functionality) or time (release every
N sprints).
• Continual Planning. The initial
release plan is a ‘blueprint’ to get
started and will be revised.
Selected stories
for the release
Product Vision
High level
prioritized goals &
roadmap
Key risks and
assumptions
Stakeholder
consensus
Prioritized product
backlog
Goal: Establish the overall release schedule and determine in what sprint stories will likely be delivered.
Product Backlog
(priority draft)
Release Plan
Rough Estimates
产品负责人和团队一起对整个产品Backlog进行评估,提出划分发行版本和Sprint计划的主要依据。
55. Scrum活动:Sprint Planning(1)
– Who: Scrum Coach, Product Owner,
Scrum Team, Scrum Master.
– When: before Sprint n+1 begins (2-3 hrs).
– How / Topic(s):
• PO presents the backlog items in
priority order for review.
• Stories with failed acceptance tests
from prior sprints are added*.
• Discuss story creation for defects
from prior sprints*.
• Review and clarify user stories.
• Breakdown larger stories and each
story into tasks and acceptance
criteria.
• Tasks are estimated in hours.
• 1 developer and tester assigned to
be on point per story.
• Process continues until all available
hours are used for the sprint.
Selected stories
for the sprint
Sprint Plan
Prioritized product
backlog
Teams capabilities
(hours)
Key risks and
assumptions
Stakeholder
consensus
Goal: Team to plan and agree on backlog items they can complete and confirm the tasks required to support
acceptance.
Schedule risks /
Business
conditions
Release Plan
Prior Velocity
Story Effort
Estimation
69. 流程框架的组合使用示例
Story Backlog Task Backlog In Process Task Done Story Backlog
Analysis Design Build Test Deploy
Inception Elaboration Construction Transition
Tier 1 - Scrum
Tier 2 - Kanban
Tier 3 - KanbanEpic
Feature
User
Story
http://www.slideshare.net/search/slideshow?searchfrom=header&q=Introduction+to+Agile+Planning+and+Project+Management
70. 大型项目流程框架:Scrum of Scrums
Agenda
• Three questions
– What has my team done
since we last met that might
affect other teams?
– What will my team do before
we meet again that might
affect other teams?
– What problems are my team
having that other teams
might be able to help with?
• Discussion
– Discuss items kept on an
Open Issues Backlog
86. 需求:User Story Mapping
User Story Mapping:
• What to build first
• Encouraging
iterative
development
• Scoping the project
• Planning the
project
• Prioritizing and
grooming the
backlog
• Visualizing Project
Progress
参考:
http://www.slideshare.net
/SteveRogalsky/user-
story-mapping-in-practice
User Activities
(Backbone)
User Tasks
(Walking Skeleton)
User Stories