Introducing Agile methodologies Scrum, XP and Kanban Kanban Board www.torak.com
About Dimitri Ponomareff Dimitri Ponomareff (www.linkedin.com/in/dimka5) is a Coach. Whether it's a sports team, software products or entire organizations, Dimitri has that ability to relate and energize people. He is consistently recognized as a very passionate and successful change agent, with an overwhelming capacity to motivate and mobilize teams on their path to continuous improvements. He is a master facilitator, as well as a captivating speaker with consistent, positive feedback regarding his ability to engage an audience. As a certified Coach, Project Manager and Facilitator of "The 7 Habits of Highly Effective People", Dimitri brings a full spectrum of knowledge in his delivery of methodologies. Through teaching by example, he is able to build teams of people who understand where to focus their work to generate the most value. He has coached and provided tailor-made services and training for a multitude of organizations. The short list includes, American Express, Charles Schwab, Bank of America, Morgan Stanley, Choice Hotels International, JDA Software, LifeLock, First Solar, Mayo Clinic and Phoenix Children's Hospital. Dimitri enjoys his work, and does everything to ensure he shares his knowledge with others who seek it. www.tora
Agile Overview ● Agile Manifesto ● Lean software development principles
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 www.tora
12 Principles of Agile Software 1. Our highest priority is to satisfy the 7. Working software is the primary measure of customer through early and continuous delivery progress. of valuable software.
8. Agile processes promote sustainable 2. Welcome changing requirements, even late in development. The sponsors, developers, and development. Agile processes harness change for users should be able to maintain a constant the customer's competitive advantage. pace indefinitely.
3. Deliver working software frequently, from a 9. Continuous attention to technical couple of weeks to a couple of months, with a excellence and good design enhances agility. preference to the shorter timescale.
10. Simplicity the art of maximizing the 4. Business people and developers must work amount of work not done--is essential. together daily throughout the project.
11. The best architectures, requirements, and 5. Build projects around motivated individuals. designs emerge from self-organizing teams. Give them the environment and support they need,
and trust them to get the job done. 12. At regular intervals, the team reflects on
how to become more effective, then tunes and 6. The most efficient and effective method adjusts its behavior accordingly. of conveying information to and within a
Lean software development principles 1. Eliminate waste 5. Empower the team
2. Amplify learning 6. Build integrity in 3. Decide as late as possible 7. See the whole 4. Deliver as fast as possible www.tora
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) www.tora
Agile Timeline 1970 1980 1990 2000 Waterfall Predictive: phases, documentation-centric, functional handoffs, get it right the first time Spiral, RAD, RUP Iterative: process framework, phases, tool driven, artifact heavy Scrum, XP Adaptive: iterative, self-organizing teams, value driven, transparent www.tora
Prescriptive vs. Adaptive More More (roles, activities & artifacts) Prescriptive Adaptive 120+ 13 9 6 0 RUP XP Scrum Kanban Do Whatever Source: Kanban and Scrum, making the most of both. Henrik Kniberg & Mattias Skarin www.tora
Prescriptive vs. Adaptive Waterfall Agile Predictive Process Adaptive Process Scope Constraints Cost Time (requirements) Value/Vision Plan Driven Driven Scope Estimates Cost Time (features) The plan creates cost and The vision creates feature schedule estimates estimates www.tora
Sequential vs. Overlapping development Requirements Design Code Test Rather than doing all of one Agile teams do a thing at a time... little of everything all the time. Source: “The New New Product Development Game” by Takeuchi and Nonaka. Harvard Business Review, January 1986. www.tora
Software development process Traditional Agile Time Analysis Analysis Design Time Design Code Code Test Test 50% complete? 25% complete 0% usable 100% usable www.tora
Envision / Explore cycles Constant User Interactions www.tora
PDCA - Plan, Do, Check, Act PLAN DO PDCA Cycle ACT CHECK Continuous Improvements www.tora
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 ● 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 www.tora
Kanban: Start 1 to do in process done Start with a simple task board with 3 columns: to do, in process and done. a Each card represent a work item in the current scope. Names can be associated with b the cards. c The key is to setup an easy way to visualize the work, and create an area for social interactions. www.tora
Kanban: Start 2 to do in process done Start with a simple task board with 3 columns: to do, in process and done. a Each card represent a work item in the current scope. Names can be associated with b the cards. c The key is to setup an easy way to visualize the work, and create an area for social interactions. to do in process done A problem with such a simplistic board, is the lack of rules and the concept of time- a boxing. b a b a a A typical problem is accumulating too much work in progress (WIP). b a c Kanban is more than just adding work items on a board, it's also applying a PULL c c process. www.tora
Kanban: Start 3 to do in process done Start with a simple task board with 3 columns: to do, in process and done. a Each card represent a work item in the current scope. Names can be associated with b the cards. c The key is to setup an easy way to visualize the work, and create an area for social interactions. to do in process done A problem with such a simplistic board, is the lack of rules and the concept of time- a boxing. b a b a a A typical problem is accumulating too much work in progress (WIP). b a c Kanban is more than just adding work items on a board, it's also applying a PULL c c process. to do ready in process done To truly embrace Kanban, we must regulate the volume of cards on the board. This a can easily be accomplished by identifying clear thresholds associated to better a defined stages of work (columns). b Another improvement is to set a multi-tasking limit per user (2) and using late binding c c of tasks to owners. Note that not all team members must have 2 tasks with their 2 5 names, this is a maximum of 2. www.tora
Kanban: Mechanics to do ready in process done a a b to do ready c in process done c a 2 5 a b 1. Team member A completes a card to do ready in process done c c and moves it to the "done" column. a 2 5 a a b 2. Team member A pulls a new card c c from the "ready" column and starts working on it by placing it in the "in 2 5 process" column. 3. The team responds to the pull event and selects the next priority card by moving it to the "ready" column. www.tora
Scrumban: Flow to do ready in process done to do ready specify execute done b b a a b b c c c c 2 5 2 2 3 Now that we have established our team capacity and we have a pull system, we can streamline the ideal flow. www.tora
Kanban: Flow to do ready in process done to do ready specify execute done b b a a b b c c c c 2 5 2 2 3 Now that we have established our team capacity and we have a pull system, we can streamline the ideal flow. backlog ready specify complete execute done a b a b c c 8 2 3 3 www.tora
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 www.tora
● 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"