Enterprise Software Engineering & Software Engineering in the Enterprise Kanban 1 Scrum Problems
Length of Iterations (% respondents) No Iterations > 8 Weeks 7-8 Weeks 1,4 1,9 1,9 5-6 Weeks 4 Weeks 6,6 21 83% 3 Weeks 12,5 2 Weeks 32,6 1 Week 17 < 1 Week 5 Scott W. Ambler, Agile Adoption Survey 2007 3 Short Iterations (time boxes) Advantages: More effective feedback More effective iterations (sprints) planning 4
Short Iterations (time boxes) Disadvantages: Smaller stories are often too small to be valuable and difficult to identify In the backlog of smaller stories could be hundreds of items, instead of couple dozen in Kent Beck s days (extreme programming). New problem of management of stories has emerged. 5 Testers Race in the End of Sprint Development work often continues throughout a cycle while testing starts late and never seems to get enough time 6
OK, Let s kanban now 7
Kanban Takes the Best from the Buffet 9 Kanban 10
Kanban A card attached to boxes of parts that regulates pull in the Lean System by signaling upstream production and delivery. 11 Primary Goal: Eliminate Waste Any activity that consumes resources but creates no value is waste 12
Scrum Practices could be Sources of Waste 13 Kanban Software Development David Anderson "No Agile one's 2007 job conference title changes, that initially no sparked one's roles widespread and interest in responsibilities Kanban change, and any changes that we do make will be made incrementally." 14
Using a Kanban approach in software drops timeboxed iterations in favor of focusing on continuous flow. 15 Pull Don t build features that nobody needs right now Don t write more specs than you can code Don t write more code than you can test Don t test more code than you can deploy 16
Pull When a customer requests a given feature for a software product, they want to pull that feature out of testing so that they can start using it. 17 Pull Once that feature has been moved out of Testing and the customer is ready to pull the next feature out, there isn't anything to pull. At this point, the Testing people would then try to pull the next feature out of Development. 18
Pull And the same pull happens from Analysis to Development. 19 Limiting Work In Progress (WIP) Given a value stream, a WIP limit governs the number of work items that can be in a given state at any instant. 20
Kanban in Nutshell Pull value through the Value Stream Limit WIP Make it visible! 21 A Minimal Marketable Feature (MMF) A minimal marketable feature (MMF) is a chunk of functionality that delivers a subset of the customer s requirements, and that is capable of returning value to the customer when released as an independent entity. 22
Stories, MMFs, Themes and Epics MMF The smallest valuable set of stories in the Thema 23 MMF 24
Rolling Wave Planning Different planning buckets for different time horizons: 6 week bucket: well defined MMFs 3 month bucket: loosely defined features 6 month bucket: broad feature areas 1 year bucket: strategies, goals, market forces Update ALL of the buckets once every 6 weeks OR every time an MMF completes. 25 Cycle Time 26
Disclaimer No Engineering Practices Looks Simple, Is Hard No Silver Bullet Not Complete Takes Time Henrik Kniberg Scrum vs. Kanban Mattias Skarin 28
Kanban Limits WIP per Workflow State, Scrum Limits WIP per Iteration 29 Scrum Resists Change within an Iteration 30
What if someone turns up and wants to add E to the Kanban board? A Kanban might say Feel free to add E to the To Do column. But the limit is 2 for that column, so you will need to remove C or D in that case. We are working on A and B right now, but as soon as we have capacity we will pull in the top item from To Do. 31 Scrum Board is Reset between each Iteration 32
Scrum Prescribes Crossfunctional Teams 33 Kanban could have Specialised Teams The whole board is served by one cross-functional team. Just like Scrum. The product owner sets priorities in column 1. A crossfunctional development team does development (column 2) and test (column 3). Release (column 4) is done by a specialist team. There is slight overlap in competencies, so if the release team becomes a bottleneck one of the developers will help them. 34
Scrum Backlog Items must fit in a Sprint A Scrum team will only commit to items that they think they can complete within one iteration. If an item is too big to fit in a sprint, the team and product owner will try to find ways to break it into smaller pieces until it does fit. 35 Kanban can have Long Running Items Kanban indirectly creates an incentive to break items into relatively small pieces. But there is no explicit rule stating that items must be small enough to fit into a specific time box. 36
Scrum Prescribes Estimation and Velocity 37 Scrum Prescribes Estimation and Velocity 38
Scrum s Development Cycle When the sprint is done, the team delivers potentially shippable code to the product owner. So the team finishes the sprint, does a sprint review, and proudly demonstrates features A, B, C, and D to the product owner. 39 Full Development Cycle in Kanban 40
Kanban Daily Meetings 41 LEAN THINKING 42
Self organization: Natural Behavior of Ants 43 CAS Complex Adaptive System Lean Thinking The root of Scrum is CAS theory 44
Natural Behavior of Ants 45 Natural Behavior of Ants 46
Swarm Intelligence Prof. Marco Dorigo 47 Emergent Systems a colony of ants, the stock market, the human body immune system, and just about any collection of humans such as an industry, a business organization, a department within an organization, a team, a church group, a family, or the Rotary Club. Emergent Systems: Stock Market The stock market is an example of emergence on a grand scale. As a whole it precisely regulates the relative prices of companies across the world, yet it has no leader; there is no one entity which controls the workings of the entire market. agents, or investors, have knowledge of only a limited number of companies within their portfolio, and must follow the regulatory rules of the market. through the interactions of individual investors the complexity of the stock market as a whole emerges. 48
Self organization Self organization is a dynamical and adaptive process where systems acquire and maintain structure themselves, without external control. 49 Self organized Team In a self organized team, individuals take responsibility for managing their own workload, shift work among themselves based on need and best fit, and participate in team decision making. Team members have considerable leeway in how they deliver results, but they are accountable for those results and for working within the established flexible framework. 50
For Self organization all we NEED is: 51 Micromanagement Micromanagers will always have to micromanage, complaining the whole time about staff members who are unwilling to take responsibility. 52
So: we need a Cultural Shift Command Control is too slow: Can t process information fast enough Can t make decisions fast enough 53 So: we need a Cultural Shift 54
Lean Thinking Tools 55 Lean 56
Lean Production The first Lean system was applied by Taiichi Ohno in Toyota in 1953 to: Reduce inventory and production cycle time Improve productivity It involves several practices, such as just in time development (JIT), total quality management, and continuous process improvement (kaizen). 57 Reduction of Waste The reduction of waste is extremely important because waste always generates further waste. 58
Lean Production The term "Lean" was first coined by Womack and colleagues in their book, The Machine That Changed the World. In Japan it is known as the Toyota Production System (TPS), also, "The Toyota Way," because Toyota has recognized that the management method can be applied to more than just production. 59 Toyota Production System (TPS) The foundation of TPS is the absolute elimination of waste in both product and process. TPS aggressive elimination of waste led to the twin values of rapid product flow and built in quality. 60
Example At 9.40am on April 1, 2010, the plant produced its last car, a red Toyota Corolla S 61 seiri (sort/organization) 5S Seiton is setting everything in order. Seiso means shiny clean. Shitsuke is discipline and discipline should be sustained. Seiketsu means standardized cleanup. 62
Poka Yoke Early Error Detection Errors will not turn into defects if feedback and action take place at the error stage Dr. Shigeo Shingo Utah State University founded the Shingo prize for excellence in manufacturing in 1988 63 Poka Yoke Early Error Detection Do it right the first time! 64
Poka Yoke Early Error Detection Do it right the first time! 65 Poka Yoke Early Error Detection Concurrent testing Continuous integration Test Driven Development Active stakeholder participation Pair Programming Simple Design Collective Code Ownership etc. Do it right the first time! 66
Thinking Tools #1 Lean Thinking Thinking Tools #1 Lean Thinking 67 Thinking Tools #2 Theory of Constraints Thinking Tools #2 Theory of Constraints 68
Bottlenecks Thinking Tools #2 Theory of Constraints 69 Constraints is anything that limits a system from achieving higher performance versus its goal. Thinking Tools #2 Theory of Constraints 70
THE NEW DEFINITION OF LEAN 71 72
The New Definition of Lean The Principles of Product Development Flow, Don Reinertsen Economic Principles (21 rules) Queuing Principles (16 rules) Variability Principles (16 rules) Batch Size Principles (22 rules) WIP Constraint Principles (23 rules) Flow Control Principles (30 rules) Fast Feedback Principles (24 rules) Decentralization Principles (23 rules) 73 Kanban Top 3 Tools are: Your own brain Your own brain Your own brain 74
5 Reasons for Applying Kanban 1. Ability to release anytime Scrum and XP, usually do not release in the middle of the sprint. This is not the case with Kanban. 2. Ability to change priorities on the fly Scrum is reluctant to change the priorities in the middle of the sprint. In Kanban, if there is an urgent request to implement or a really important user story, the team can just put it on top of the queue. 3. No need in iterations Iterations are perfect for getting into a rhythm. However, after a point, when the flow is established, iterations could rather become a waste. 4. No need in estimates Just as iterations, estimates could also become a waste. You can take the most important user story from backlog and implement it. 5. Perfect flow visualization Kanban Board provides a very clear view on current work in progress. It visualizes flow and enables fast planning and tracking. 75 Why Kanban? Q: Scrum works flawlessly for all of my teams. Why overly complicate things by adding Kanban constraints? A: Kanban is built for competition. Maybe you are not in a competitive situation. Maybe your competitors are inept. If, however, you are under any pressure for systematic performance improvement, then the Kanban address inefficiencies that are built into Scrum. 76
Kanban & Agile 77 78
CMMI & Kanban love and marriage 79 80
81 A Coding Dojo A Coding Dojo is a place where programmers come to improve their skills, by following a pattern similar to the martial arts dojo. Participants meet for at a pre arranged time in a room that has one computer attached to a screen. A programming challenge is posed for each session. There are a couple of ways this is done that will be discussed later. During the session, the group spends a pre set amount of time developing a solution to the challenge. At the end of the session the code is discarded (often it is archived for future reference and study). The amount of time spent on the problem is fixed. Regardless of the state of the solution, when the time expires, the session is done. 82
Code Katas Kata (Japanese for form or pattern) are an exercise where the novice repeatedly tries to emulate a master. In karate, these kata are a sequence of basic moves (kicks, blocks, punches, and so on), strung together in a way that makes sense. You ll never be attacked in such a way that you could repeat a kata to defend yourself: that isn t the idea. Instead the idea is to practice the feel and to internalize the moves. (Interestingly, kata are not just used in the martial arts. Calligraphers also learn using kata, copying their masters brush strokes.) 83 Kumite Once you get some way into your training, you start kumite, or sparring. Kumite is a supervised exercise between two students, or between a student and a master. Here they learn to assemble the basic moves into coherent sequences, combining offensive and defensive elements into something that works. While kata could be considered static, repeating the same sequence over and over, kumite is dynamic. 84
Koans Once a kata has been learned, then the kata needs to be forgotten. Koans are questions without absolute answers which are used to break down assumptions and reveal underlying truths. The goal of a koan is not the answer, but thinking about the question. 85 Application Development: from Crafting Software to Software Craftsmanship 86