Está en la página 1de 38

Introducing Agile methodologies

Scrum, XP and Kanban

Kanban Board

About Dimitri Ponomareff


Agile Coach & Trainer
Wolters Kluwer (Data-warehouse) Apriva (Mobile) Choice Hotels International (Web) First Things First / AZ ECDH (Data-warehouse) JDA Software Group (Software) Insight Enterprises (Web) Facilitator of The 7 Habits of Highly Effective People Project Manager Project Management Professional (PMP) Certified ScrumMaster (CSM) and Certified Scrum Practitioner (CSP) IT Professional Vice President of Communications - PMI Phoenix Chapter Director of Web Technologies - I-ology E-Commerce Manager - Insight Canada

Agile Overview
Agile Manifesto Lean software development principles Flavors of Agile and timeline Prescriptive vs. Adaptive Sequential vs. Overlapping Envision / Explore cycles PDCA

The Agile Manifesto


We are uncovering better ways of developing software by doing it and helping others do it.

Individuals and interactions over processes and tools Working software over comprehensive documentation Customer collaboration over contract negotiation Responding to change over following a plan
That is, while there is value in the items on the right, we value the items on the left more.
Source: www.agilemanifesto.org

12 Principles of Agile Software


1. Our highest priority is to satisfy the customer through early and continuous delivery of valuable software. 2. Welcome changing requirements, even late in development. Agile processes harness change for the customer's competitive advantage. 3. Deliver working software frequently, from a couple of weeks to a couple of months, with a preference to the shorter timescale. 4. Business people and developers must work together daily throughout the project. 5. Build projects around motivated individuals. Give them the environment and support they need, and trust them to get the job done. 6. The most efficient and effective method of conveying information to and within a development team is face-to-face conversation. 7. Working software is the primary measure of progress. 8. Agile processes promote sustainable development. The sponsors, developers, and users should be able to maintain a constant pace indefinitely. 9. Continuous attention to technical excellence and good design enhances agility. 10. Simplicity--the art of maximizing the amount of work not done--is essential. 11. The best architectures, requirements, and designs emerge from self-organizing teams. 12. At regular intervals, the team reflects on how to become more effective, then tunes and adjusts its behavior accordingly.
Source: www.agilemanifesto.org

Lean software development principles

1. Eliminate waste 2. Amplify learning 3. Decide as late as possible 4. Deliver as fast as possible

5. Empower the team 6. Build integrity in 7. See the whole

Flavors of Agile
Dynamic System Development Method (DSDM)
Dane Faulkner

Extreme Programming (XP)


Kent Beck

Feature Driven Development (FDD)


Jeff DeLuca

Scrum
Ken Schwaber

Lean Software Development


Mary Poppendieck and Tom Poppendieck

Adaptive Software Development (ASD)


Jim Highsmith

Crystal Clear
Allistair Cockburn

Behavior driven development (BDD)

Agile Timeline

Prescriptive vs. Adaptive


(roles, activities & artifacts)

Source: Kanban and Scrum, making the most of both. Henrik Kniberg & Mattias Skarin

Prescriptive vs. Adaptive

Sequential vs. Overlapping development

Software development process

Envision / Explore cycles

PDCA - Plan, Do, Check, Act

Agile Methodologies
Scrum XP - Extreme Programming Kanban

Origins ...
Scrum
1986, Hirotaka Takeuchi and Ikujiro Nonaka described a new approach to commercial product development "holistic or rugby approach" 1991, DeGrace and Stahl first referred to this as the scrum approach. Ken Schwaber used such an approach at his company, Advanced Development Methods, and Jeff Sutherland, with John Scumniotales and Jeff McKenna, developed a similar approach at Easel Corporation, and were the first to refer to it using the single word Scrum. 1995, Sutherland and Schwaber jointly presented a paper describing the Scrum methodology 2001, Ken Schwaber teamed up with Mike Beedle to describe the method in the book "Agile Software Development with Scrum".

XP - Extreme Programming
created by Kent Beck during his work on the Chrysler Comprehensive Compensation System (C3) payroll project, who worked with Don Wells, Ron Jeffries, Martin Fowler and Chet Hendrickson takes software development "best practices" to extreme levels

Kanban for development


Japanese for "signboard" Taiichi Onho developed 1940/1950 kanbans to control production between processes and to implement Just n Time (JIT) manufacturing at Toyota manufacturing plants in Japan. 2003, David J. Anderson formulated the Kanban Method as an approach to incremental, evolutionary process and systems change for organizations

Scrum

Scrum

focus on delivering the highest business value in the shortest time allows to rapidly and repeatedly inspect actual working software the business sets the priorities & teams self-organize to determine the best way to deliver the work every sprint (1-4 weeks) anyone can see real working software and decide to release it as is, or continue to enhance it for another sprint

Scrum

1. Roles
Product Owner ScrumMaster Team

2. Ceremonies
Daily scrum Sprint planning Sprint review Sprint retrospective

3. Artifacts
Product backlog, sprint backlog, user stories Burn-down chart

XP - Extreme Programming
improve software quality and responsiveness to changing customer requirements frequent releases in short development cycles improve productivity and regular checkpoints with the customer paired programming

XP

Kanban - 3 basic principles


Kanban Board

1. Start with what you do now


Kanban does not prescribe a specific set of roles or process steps

2. Agree to pursue incremental, evolutionary change


continuous small changes that stick vs. sweeping changes that fail due to resistance and fear in the organization

3. Respect the current process, roles, responsibilities & titles


gain support, reduce fear/resistance to change and experience the benefits as a team

Kanban - 5 Core Properties


1. Visualize the workflow
Kanban literally means "signboard" or "billboard"
Kanban Board

2. Limit Work In Process (WIP)


use a pull system - establish and respect your ideal capacity

3. Manage Flow
monitor, measure and report the flow of work through each state

4. Make Process Policies Explicit


describe the process accurately in order to improve it

5. Improve Collaboratively
using models & the scientific method (empirical) to implement continuous, incremental and evolutionary changes

Kanban

source: http://finance.groups.yahoo.com/group/kanbandev/

Kanban: Start 1

Kanban: Start 2

Kanban: Start 3

Kanban: Mechanics

Scrumban: Flow

Now that we have established our team capacity and we have a pull system, we can streamline the ideal flow.

Kanban: Flow

Now that we have established our team capacity and we have a pull system, we can streamline the ideal flow.

Highlights from each ...


Scrum
ceremonies (daily scrum, review and retrospective) time-boxed work using sprints burn-down charts

XP - Extreme Programming
best practices coding (standards, collective code ownership, simple design, metaphor) continuous integration test driven development (unit tests, automated testing, acceptance testing)
When a Bug is found tests are created before the bug is addressed (a bug is not an error in logic, it is a test you forgot to write)

Kanban for development


visual board pull system JIT backlog/work continuous flow

Visualizing the work is KEY!

Scaled Agile Framework - Big Picture

Resources
http://www.extremeprogramming.org/ http://xprogramming.com/ http://finance.groups.yahoo.com/group/kanbandev/ Takeuchi, Hirotaka; Nonaka, Ikujiro. "The New New Product Development Game". Harvard Business Review. DeGrace, Peter; Stahl, Leslie Hulet (1990-10-01). Wicked problems, righteous solutions. Prentice Hall. Kanban: Successful Evolutionary Change for Your Technology Business by David J. Anderson Agile Software Development with Scrum by Ken Schwaber and Mike Beedle Mary Poppendieck, Tom Poppendieck (2003), "Lean Software Development: An Agile Toolkit"

Agile coaching, staffing and training.

Learn more at www.torak.com

Thank You

This presentation was inspired by the work of many people and we have done our very best to attribute all authors of texts and images, and recognize any copyrights. If you think that anything in this presentation should be changed, added or removed, please contact us.

http://creativecommons.org/licenses/by-nc-nd/3.0/

También podría gustarte