A Never Ending Battle for Continuous Improvement J.J. Zang 200 E Randolph St # 2500 Chicago, IL 60601-6501, USA XP 2011 conference.

Slides:



Advertisements
Similar presentations
Iteration Planning.
Advertisements

The Bold, New Extreme Programming Experiment - Now in Its Ninth Year Brian Spears Follett Software Company McHenry, IL 2009 Agile Conference Student: Nick.
Agile Planning Dealing with Reality. Reality Basic agile principle – don’t expect static plans to hold, be flexible and expect changes.
©Ian Sommerville 2004Software Engineering, 7th edition. Chapter 17 Slide 1 Rapid software development.
Chapter 10 Schedule Your Schedule. Copyright 2004 by Pearson Education, Inc. Identifying And Scheduling Tasks The schedule from the Software Development.
ITEC 370 Lecture 25 Lifecycles. Review Questions? F give prototype demonstration –Testing plan for your software Life cycles –Scrum (Roles, Meetings,
Clinton Keith CTO, High Moon Studios Agile Methodology in Game Development: Year 3.
The Business Analyst Role in Agile Projects
 User assignments (product owner)  ‘circle’  1 st sprint: ◦ Scrum Boards (informative workspace)  Product -, release -, sprint -, defect backlog 
Review: Agile Software Testing in Large-Scale Project Talha Majeed COMP 587 Spring 2011.
Computer Engineering 203 R Smith Agile Development 1/ Agile Methods What are Agile Methods? – Extreme Programming is the best known example – SCRUM.
Applied Software Project Management 1 Introduction Dr. Mengxia Zhu Computer Science Department Southern Illinois University Carbondale.
Xtreme Programming. Software Life Cycle The activities that take place between the time software program is first conceived and the time it is finally.
Managing a Project Using an Agile Approach and the PMBOK® Guide
Kanban in Action City Grid Media Case Study Jason Lenny.
©Ian Sommerville 2004Software Engineering, 7th edition. Chapter 17 Slide 1 Extreme Programming.
Gaining Support for a Sustainable Agile Transformation Dennis Stevens, VP Enterprise Engagements LeadingAgile November 12, 2013.
Kanban “Signboard”.
By: Muhammad Raza Ali Khan
Acquisitions, a Publisher’s Perspective Craig Duncan Development Manager External Development Studio Building the partnership between.
1 Agile Methodology & Programming Ric Holt July 2009.
Agile Programming Principles.
Chapter 4 Agile Development
Extreme Programming(XP)
Describing Methodologies PART II Rapid Application Development* Systems Analysis and Design II.
Agile & Lean Development Conference May 2014 Kevin J. Murphy Director of Engineering Automotive Solutions Division.
R ELEASE P LANNING. H ELPFUL R ESOURCES Planning Extreme Programming, Kent Beck and Martin Fowler Extreme Programming Installed, Ron Jeffries, Ann Anderson.
Agile Methodologies: Comparative Study and Future Direction 林佳蓁 資工 4B.
5. Planning.
Extreme/Agile Programming Prabhaker Mateti. ACK These slides are collected from many authors along with a few of mine. Many thanks to all these authors.
Rapid software development 1. Topics covered Agile methods Extreme programming Rapid application development Software prototyping 2.
Extreme Programming (XP). Agile Software Development Paradigm Values individuals and interactions over processes and tools. Values working software over.
AP-1 5. Project Management. AP-2 Software Failure Software fails at a significant rate What is failure? Not delivering it on time is an estimation failure.
Task Board Evolution Nayan Hajratwala Lean / Agile Coach Chikli Consulting LLC Saline, Michigan, USA 陳柏彰.
The Long Tail Why the future of business is selling less of more ▫ISBN = ▫Chris Anderson Low Distribution and Inventory costs allow companies.
Search Engine Optimization © HiTech Institute. All rights reserved. Slide 1 What is Solution Assessment & Validation?
Chapter 7 The Practices: dX. 2 Outline Iterative Development Iterative Development Planning Planning Organizing the Iterations into Management Phases.
AP-1 4. Agile Processes. AP-2 Agile Processes Focus on creating a working system Different attitude on measuring progress XP Scrum.
Goals for Presentation Explain the basics of software development methodologies Explain basic XP elements Show the structure of an XP project Give a few.
Lecture 4 – XP and Agile 17/9/15. Plan-driven and agile development Plan-driven development A plan-driven approach to software engineering is based around.
WATERFALL DEVELOPMENT MODEL. Waterfall model is LINEAR development lifecycle. This means each phase must be completed before moving onto the next!!! WHAT.
Virtually Agile Astro Sabre (Matt Ganis) IBM, Senior Technical Staff Member Hawthorne, NY - September 20, 2007.
Definition of Done in the Age of DevOps Intel Agile and Lean Development Conference Piotr Żmijewski May 22 nd, 2014.
January 24, 2009 Agile Product Management Making Things Happen Walter Bodwell Planigle.
Overview of RUP Lunch and Learn. Overview of RUP © 2008 Cardinal Solutions Group 2 Welcome  Introductions  What is your experience with RUP  What is.
Yazd University, Electrical and Computer Engineering Department Course Title: Advanced Software Engineering By: Mohammad Ali Zare Chahooki The Project.
Dr. Rob Hasker. What if every project used Scrum?  Why might Scrum not be perfect for every project? Hard to get the big picture Early choices may have.
Phoenix Scrum User Group Simplifying Scrum Online May 21 st 2009.
Planning Extreme programming
CS223: Software Engineering Lecture 18: The XP. Recap Introduction to Agile Methodology Customer centric approach Issues of Agile methodology Where to.
University of Southern California Center for Systems and Software Engineering Core Capability Drive-Through Preparation Pongtip Aroonvatanaporn CSCI 577b.
RUP RATIONAL UNIFIED PROCESS Behnam Akbari 06 Oct
Kanban Advanced Software Engineering Dr Nuha El-Khalili.
Agile Methodology. -Dhanashree Kumkar -Plus91 Technologies.
Embedded Systems Software Engineering
Agile Project Management and the yin & yang of
Chapter 3: The Project Management Process Groups: A Case Study
Using Kanban Techniques to Control Incremental Development
Teaching slides Chapter 3.
Johanna Rothman Agile Team Measurements Chapter 12
How to Successfully Implement an Agile Project
Teaching slides Chapter 1.
Johanna Rothman Know What “Done” Means Chapter 11
Guidance notes for Project Manager
Sprint Planning April 2018.
Agile Development – a new way of software development?
Extreme Programming.
SDLC (Software Development Life Cycle)
Agile Development.
Presentation transcript:

A Never Ending Battle for Continuous Improvement J.J. Zang 200 E Randolph St # 2500 Chicago, IL , USA XP 2011 conference

Outline Introduction Changes Made Outcomes Continuous Improvement Too Much Waste in Deployment Process Flow Transfer Customer Redefinition Run a True Iterative Iteration Summary

Introduction When I was assigned to FFM project (Field Force Management) for one of the biggest international telecom companies in March, 2010, I was told I was the 7th project manager for the team and for the project. The team on the ground was completely lost and morale had hit record low. Before I agreed to take over the project, I interviewed the core team members and also spent a couple of days shadowing with each of them while they were working. The challenges the team had been facing immediately surfaced: 1.There was no scope defined 2.There was no measurement of the team capability 3.There was no “Kanban board”1 (Story card board) 4.“Push scheduling”2 mentality was pervasive 5.The trust of business stakeholders in the team was minimal 6.Most of the team members were junior with little experience and exposure to 7.Agile methodology

Changes Made As a team, the first thing we did was try to understand the business purpose of the project. Once we settled on the business goal, the team worked with our business proxy to flush out high level features. We went a little further by breaking feature sets into stories with just enough descriptions and assumptions. Keep in mind, we didn’t write detailed stories and acceptance tests. Detailed analysis of each feature and story was delayed until immediately before it was developed. The list of feature sets with highest priority was the backlog for our first release (see Fig. 1).

Fig. 1

Changes Made Next, the team tried some experiments to corroborate the viability of architectural design, technical approach, and some large estimation numbers. The team also had a couple of iterations3 to understand the team’s capability. Set up a “Kanban board” to track each story as it flowed through the workflow. Had one column for each step in the workflow (see Fig. 2). Almost for each iteration, the team picked technical cards such as spikes, technical debts along with feature stories.

Fig. 2

Outcomes What completely changed the attitude of business towards the team was our small demo at the end of each iteration. We usually demonstrated our achievements during our IPM (Iteration Planning Meeting). With steady velocity and without overtime, the team actually finished the back log one iteration ahead of time. Meanwhile, the team grew more self-organizing with some leadership guidance.

Continuous Improvement There have 9 branches in total for the nationwide release. Adopted an incremental rollout approach due to the constraints such as the size of the branch, he readiness of the branch and the availability of rollout resources. Believe it or not, it took 3 months, equivalent to development time, to roll out to the first branch, then another two months to the second branch. What went wrong? What did we miss? But more important, what did we learn?

Too Much Waste in Deployment Process Flow We all know dependencies are bad and that is why we have been trying our best to get rid of architecture dependencies, code dependencies and story dependencies. This holds true with team dependences too. With team dependencies, it will be so difficult to deliver even a small feature set since it requires a large amount of communication and coordination among teams. The complexity of the communication adds time and increases the likelihood of error, and the added overhead cost makes small incremental releases almost impossible. Decoupling is often the approach we use to minimize technical dependencies. This applies to teams too. Teams work better if they can operate independently, without significant dependencies on other teams. Building cross-functional teams by pulling some folks from each team and embedding them in this cross-function team would help in mitigating the boundary-spanning problems.

Transfer The implications of Agile must be pushed far enough into other parts of the organization so that the entire team effort is not pulled back by organizational gravity. It is a relatively easy job to gain acceptance for Agile among developers, Qas (Quality Assurance), project managers, database developers, user experience designers, analysts and so on. But it is impossible for a development team to remain Agile on its own to make it successful. If the implication of using Agile is not transferred to other departments, organizationally inertia from those departments will eventually stall and kill the whole team effort.

Customer Redefinition Traditional customer definition is limited to project sponsors, stakeholders or end users. We need to redefine customer to include the ones who support, maintain or derive value from the system. In our case, the support team, the training team, and the transformation teams are also our customers. Including these customers will give us a complete boundary-spanning view of our work. In addition, as complexity increases, cross-functional teams sometimes are not enough. A single team will not be able to handle the complexity, thus handovers are inevitable. With every handover, it is important to clarify the immediate customer’s needs and flag whenever there is an issue.

Run a True Iterative Iteration A true iterative iteration means the development team should strive to produce a releasable application. Software needs to go through a thorough system testing including such things as end-to-end scenario testing, stress testing, UAT (User Acceptance Test), etc. to make sure that the code is ready for release. It is a mistake to delay all staging activities until the system is ready for release. It is risky not to pull the “Andon”8 cord to “stop-the-line” if a true iterative iteration can’t be achieved. In our case, we should have exposed the test environment problem at an earlier stage and called for attention and action instead of hoping to chase away problems with “work around”.

Summary Most companies are aware that continuous improvement is critical but few practice it as hard as Toyota. Feeling the pain is easy, seeing the problems is hard, but taking actions towards them is even harder. This project was a successful one since the development was completed ahead of schedule and the release was on time. We would like to share our lessons, our experience and our journey with others so we can all “Change for the better”.