63
Agile Intro & Journey Lawrence Song Sunday, 26 May 13

IDs书友会 - 主题5 - 敏捷开发分享 · Agile Journey

Embed Size (px)

DESCRIPTION

您是否需要在企业整体内部,跨团队成员或者太规模的工作项目当中运用精益思想与敏捷实践,加快企业流程改造?运用精益思想与敏捷开发能持续改善经营绩效,从而获得竞争优势。 究竟什么才是正在的敏捷了. 现在大家都在说在用敏捷的Startup, Retro, Story Board. 是不是有这些活动就是敏捷了? 怎么才能令自己的团队敏捷? 那么多敏捷的方式(XP, Scrum, Lean, Kanban etc)有什么区别了?

Citation preview

Page 1: IDs书友会 - 主题5 -  敏捷开发分享 · Agile Journey

Agile Intro & JourneyLawrence Song

Sunday, 26 May 13

Page 2: IDs书友会 - 主题5 -  敏捷开发分享 · Agile Journey

How many ppl is using agile methodology?

Sunday, 26 May 13

Page 3: IDs书友会 - 主题5 -  敏捷开发分享 · Agile Journey

Agenda

• Are we agile?

• Agile Values and Principles

• Agile Processes

• Case Study

Sunday, 26 May 13

Page 4: IDs书友会 - 主题5 -  敏捷开发分享 · Agile Journey

Are we agile?

Sunday, 26 May 13

Page 5: IDs书友会 - 主题5 -  敏捷开发分享 · Agile Journey

Stand upSunday, 26 May 13

Page 6: IDs书友会 - 主题5 -  敏捷开发分享 · Agile Journey

Iteration (Kick off, planning, estimate & prioritization)

Sunday, 26 May 13

Page 7: IDs书友会 - 主题5 -  敏捷开发分享 · Agile Journey

Story WallSunday, 26 May 13

Page 8: IDs书友会 - 主题5 -  敏捷开发分享 · Agile Journey

RetroSunday, 26 May 13

Page 9: IDs书友会 - 主题5 -  敏捷开发分享 · Agile Journey

ShowcaseSunday, 26 May 13

Page 10: IDs书友会 - 主题5 -  敏捷开发分享 · Agile Journey

We do all the practices.Yeah, we are agile!!!

Sunday, 26 May 13

Page 11: IDs书友会 - 主题5 -  敏捷开发分享 · Agile Journey

Don’t just do agile

Sunday, 26 May 13

Page 12: IDs书友会 - 主题5 -  敏捷开发分享 · Agile Journey

Be agileAgile is about culture and mindset

Sunday, 26 May 13

Page 13: IDs书友会 - 主题5 -  敏捷开发分享 · Agile Journey

Agile

• Agile + Development = Continuous Delivery

• Agile + Operation = DevOps

• Agile + Infrastructure = Cloud

• Agile + Startup = Lean Startup

Sunday, 26 May 13

Page 14: IDs书友会 - 主题5 -  敏捷开发分享 · Agile Journey

Agile Manifesto & Principle

Sunday, 26 May 13

Page 15: IDs书友会 - 主题5 -  敏捷开发分享 · Agile Journey

Agile Manifesto

• 个体和互动 高于 流程和工具 Individuals and

interaction over process and tools

• 工作的软件 高于 详尽的文档 Working

software over comprehensive

• 客户合作 高于 合同谈判 Customer

collaboration over contract negotiation

• 响应变化 高于 遵循计划 Responding to

Sunday, 26 May 13

Page 16: IDs书友会 - 主题5 -  敏捷开发分享 · Agile Journey

12 Principles behind the Agile Manifesto

Sunday, 26 May 13

Page 17: IDs书友会 - 主题5 -  敏捷开发分享 · Agile Journey

我们最重要的目标,是通过持续不断地及早交付有价值的软件使客户满意。

Sunday, 26 May 13

Page 18: IDs书友会 - 主题5 -  敏捷开发分享 · Agile Journey

欣然面对需求变化,即使在开发后期也一样。为了客户的竞争优势,敏捷过程掌控变化。

Sunday, 26 May 13

Page 19: IDs书友会 - 主题5 -  敏捷开发分享 · Agile Journey

经常地交付可工作的软件,相隔几星期或一两个月,倾向于采取较短的周期。

Sunday, 26 May 13

Page 20: IDs书友会 - 主题5 -  敏捷开发分享 · Agile Journey

业务人员和开发人员必须相互合作,项目中的每一天都不例外。

Sunday, 26 May 13

Page 21: IDs书友会 - 主题5 -  敏捷开发分享 · Agile Journey

激发个体的斗志,以他们为核心搭建项目。提供所需的环境和支援,辅以信任,从而达成目

Sunday, 26 May 13

Page 22: IDs书友会 - 主题5 -  敏捷开发分享 · Agile Journey

不论团队内外,传递信息效果最好效率也最高的方式是

Sunday, 26 May 13

Page 23: IDs书友会 - 主题5 -  敏捷开发分享 · Agile Journey

可工作的软件是进度的首要度量标准。

Sunday, 26 May 13

Page 24: IDs书友会 - 主题5 -  敏捷开发分享 · Agile Journey

敏捷过程倡导可持续开发。责任人、开发人员和用户要能够共同维持其步调稳

Sunday, 26 May 13

Page 25: IDs书友会 - 主题5 -  敏捷开发分享 · Agile Journey

坚持不懈地追求技术卓越和良好设计,敏捷能力由此增强

Sunday, 26 May 13

Page 26: IDs书友会 - 主题5 -  敏捷开发分享 · Agile Journey

以简洁为本,它是极力减少不必要工作量的艺术。

Sunday, 26 May 13

Page 27: IDs书友会 - 主题5 -  敏捷开发分享 · Agile Journey

最好的架构、需求和设计出自自组织团队。

Sunday, 26 May 13

Page 28: IDs书友会 - 主题5 -  敏捷开发分享 · Agile Journey

团队定期地反思如何能提高成效,并依此调整自身的举止表现。

Sunday, 26 May 13

Page 29: IDs书友会 - 主题5 -  敏捷开发分享 · Agile Journey

Agile Processes

Sunday, 26 May 13

Page 30: IDs书友会 - 主题5 -  敏捷开发分享 · Agile Journey

ScrumMore focus on project management.

Sunday, 26 May 13

Page 31: IDs书友会 - 主题5 -  敏捷开发分享 · Agile Journey

• Daily scrum, planning and retrospective

• Sprint

• Burn down charts

Scrum

Sunday, 26 May 13

Page 32: IDs书友会 - 主题5 -  敏捷开发分享 · Agile Journey

XPFocus on development practices

Sunday, 26 May 13

Page 33: IDs书友会 - 主题5 -  敏捷开发分享 · Agile Journey

Sunday, 26 May 13

Page 34: IDs书友会 - 主题5 -  敏捷开发分享 · Agile Journey

• Simplicity

• TDD everything (Story, Bug) => almost 100% test coverage

• Pair programming

• Continuous Integration

• Collective Ownership

Development Practices

Sunday, 26 May 13

Page 35: IDs书友会 - 主题5 -  敏捷开发分享 · Agile Journey

LeanEliminate Waste

Sunday, 26 May 13

Page 36: IDs书友会 - 主题5 -  敏捷开发分享 · Agile Journey

Lean principles

• 消除浪费 Eliminate waste

• 增强学习 Amplify learning

• 尽量延迟决定 Decide as late as possible

• 尽快发布 Deliver as fast as possible

• 增强团队能力 Empower the team

• 建立完整性 Build integrity in

• 看整体 See the whole

Sunday, 26 May 13

Page 37: IDs书友会 - 主题5 -  敏捷开发分享 · Agile Journey

KanbanDecrease cycle time

Sunday, 26 May 13

Page 38: IDs书友会 - 主题5 -  敏捷开发分享 · Agile Journey

Six Core Practices

• Visualise

• Limit WIP

• Manage flow

• Make policies explicit

• Implement feedback loops

• Improve collaboratively, evolve

Sunday, 26 May 13

Page 39: IDs书友会 - 主题5 -  敏捷开发分享 · Agile Journey

• Ability to release anytime

• Ability to change priority on the fly

• No need in iterations

• No need in estimates

• Perfect flow visualization

5 right reasons for Kanban

Sunday, 26 May 13

Page 40: IDs书友会 - 主题5 -  敏捷开发分享 · Agile Journey

Case Study - MYOB LiveAccounts

Sunday, 26 May 13

Page 41: IDs书友会 - 主题5 -  敏捷开发分享 · Agile Journey

Project 2 years ago

• New team + offshore team

• Legacy system

• No tests at all

• Manual regression

• Take 4 weeks from code complete to release

Sunday, 26 May 13

Page 42: IDs书友会 - 主题5 -  敏捷开发分享 · Agile Journey

Introduce Process

BacklogIn

AnalysisReady

for Devin Dev

Ready for

Analysis

Ready for QA

in QAReady

for BATin BAT

Ready for

DeployDeployed

pickup handover

Sunday, 26 May 13

Page 43: IDs书友会 - 主题5 -  敏捷开发分享 · Agile Journey

Improve the internal quality

• New simple architecture (Not the best)

• 90% test coverage for new code

• Code style rules

• Continuous Integration (Local Build, CI)

Sunday, 26 May 13

Page 44: IDs书友会 - 主题5 -  敏捷开发分享 · Agile Journey

Reduce the cost of a release

• Automate dev/testing environment

• Automate functional test for legacy

• Simple manual steps to release to staging/production

• Reduced release (from code complete) from 4 weeks to 2 days

Sunday, 26 May 13

Page 45: IDs书友会 - 主题5 -  敏捷开发分享 · Agile Journey

Try a few things but failed

• Kanban

• TDD

• Pairing

• Distributed Agile

Sunday, 26 May 13

Page 46: IDs书友会 - 主题5 -  敏捷开发分享 · Agile Journey

• No unit test in front-end code. Rely on functional tests (Cannot TDD)

• Devs complain some javascript code are very complicated

• Not easy to TDD some integration code (due too slow feedback)

• Feedback cycle is too long (local development / CI)

• Hacking some front-end library

• Run all functional test in CI take more than 2

Discover Problem 8 Months ago

Sunday, 26 May 13

Page 47: IDs书友会 - 主题5 -  敏捷开发分享 · Agile Journey

Architecture doesn’t allow simple design and TDD

Sunday, 26 May 13

Page 48: IDs书友会 - 主题5 -  敏捷开发分享 · Agile Journey

Architecture change

• Long team productivity gain

• Slow down development in short term

• Introduce new technologies

• Build culture into the architecture

• Allow TDD in front-end

Sunday, 26 May 13

Page 49: IDs书友会 - 主题5 -  敏捷开发分享 · Agile Journey

Drive Architecture Change

Sunday, 26 May 13

Page 50: IDs书友会 - 主题5 -  敏捷开发分享 · Agile Journey

Discovered process /culture problems

Sunday, 26 May 13

Page 51: IDs书友会 - 主题5 -  敏捷开发分享 · Agile Journey

• PPL doesn’t want to change

• Individual over Collaboration (Heros in the team)

• It’s too hard. There is a problem, but it’s okay. I don’t want to drive change. I want consensus. I don’t like you drive the change.

• You owns that, I don’t want to touch it. (Silos)

Culture

Sunday, 26 May 13

Page 52: IDs书友会 - 主题5 -  敏捷开发分享 · Agile Journey

Burn up charts

0

25

50

75

100

Iteration 1 Iteration 2 Iteration 3 Iteration 4 Iteration 5 Iteration 6

Scope Dev Done

Sunday, 26 May 13

Page 53: IDs书友会 - 主题5 -  敏捷开发分享 · Agile Journey

Experiment - in a small team

Sunday, 26 May 13

Page 54: IDs书友会 - 主题5 -  敏捷开发分享 · Agile Journey

ObjectiveNo of defects relating to the user story we are working

on once moving to ‘Ready to QA’

Sunday, 26 May 13

Page 55: IDs书友会 - 主题5 -  敏捷开发分享 · Agile Journey

• Automate all acceptance criteria

• Define acceptance criteria together as a team

• TDD (Ping Pong Pairing)

• Raise new story for discover scope/scenarios

• Determine priority together

• Kanban - no estimate, no iteration, WIP, small story

• Fast build + feedback

• Bug repioritisation

• light weight documentation

• No BAT

How?

Sunday, 26 May 13

Page 56: IDs书友会 - 主题5 -  敏捷开发分享 · Agile Journey

Measure of success

• Number of defects raise in a story

• Cycle time from in Dev to Ready for QA

• Happiness. NPS

Sunday, 26 May 13

Page 57: IDs书友会 - 主题5 -  敏捷开发分享 · Agile Journey

New Process - Kanban

in Analysis

in Dev in QA Done

WIP: 4WIP: 4

BacklogIn

AnalysisReady

for Devin Dev

Ready for

Analysis

Ready for QA

in QAReady

for BATin BAT

Ready for

DeployDeployed

pickup handover

story writing

Sunday, 26 May 13

Page 58: IDs书友会 - 主题5 -  敏捷开发分享 · Agile Journey

New Burn up Chart

0

25

50

75

100

Iteration 1 Iteration 2 Iteration 3 Iteration 4

Scope Dev Done

0

25

50

75

100

Iteration 1 Iteration 3 Iteration 5

Scope Dev Done

Sunday, 26 May 13

Page 59: IDs书友会 - 主题5 -  敏捷开发分享 · Agile Journey

Result

• No many defects found late

• Very efficient

• Got Max NPS

• The team own the process

• Everyone is trying to improve the process

• Try and see what happen. (Rather than saying it won’t work)

Sunday, 26 May 13

Page 60: IDs书友会 - 主题5 -  敏捷开发分享 · Agile Journey

Rolling out to the rest of the team

Sunday, 26 May 13

Page 61: IDs书友会 - 主题5 -  敏捷开发分享 · Agile Journey

• Most ppl don’t want to change

• Most ppl based on feeling instead of facts. (being not logical)

• The harder you push it the more resistance you will have. (it’s a journey)

• You need your boss to support you

• Demonstration is the key

Lessons Learn

Sunday, 26 May 13

Page 62: IDs书友会 - 主题5 -  敏捷开发分享 · Agile Journey

Q & A

Sunday, 26 May 13