In the past software development followed the waterfall approach—trying to understand the customer’s new needs and then working on the software development for months, releasing the final output. Customer feedback is given when the overall project is completed.
In 2001 the Agile approach to software development was born. In this approach the client needs are broken down into segments and are
prioritized by their importance to the customer. The prioritized segments are broken down into bite-sized pieces called sprints with a dedicated team of 6-10 people taking one to four weeks to complete and delivering a functional product to the customer.
Agile is clearly aligned with five core Lean principles:
- Adding value for the customer
- Mapping value streams
- Creating flow
- Keeping pace with the customer demand rate (Takt time)
- Right the first-time quality
Customer Value Add
This is about clearly understanding customer needs. In the agile approach, more time is spent on the front end of the project to clearly define the required outcomes ensuring that the outcomes are operationally-defined, and the customer is on-board. Agile offers an advantage for customer deliverables that are not well defined because these issues are discovered in the planning phase of the development process.
Learning to See – Mapping Value Streams
As with all Lean projects we strive to understand the current process by mapping it. The same should hold true for the agile project. Nothing should be automated until the current process has gone through a Lean management process to remove wastes. “If you automate garbage you just get garbage faster.” When we take the time to understand how work really happens we get a picture of how things are actually done including the amount of variation in the process.
A process should be designed with as few hand-offs and workarounds as possible before the software is created. To get past the old beliefs of “we have to do it this way,” make sure you understand the current state of how things are actually done. Then examine the current state for waste and rework and ask employees about the barriers that prevent them from doing a good job and ideas for improving the process. With this data in hand you can design a streamlined and effective future state. Make sure you test the future state using the PDCA (Plan, Do, Check, Act) cycle. Once these steps have been completed, the Agile development process can begin.
Keeping Pace with the Customer Demand Rate
Agile is aligned with customer needs by creating useable output that can be demonstrated and tested in much shorter cycle times (1 to 4 weeks) rather than waiting many months for a waterfall software output that may have missed the customer request date.
Right the First Time
Each step of the development is tested to ensure that what is being designed is what the team to take corrective actions and mistake-proof new software.
Agile is a leaner approach to developing software than the traditional waterfall approach, creating more feedback and therefore, better alignment with the customer’s needs.
Willie Carter has nearly four decades of continuous improvement experience, which have enabled him be a good listener, teacher, coach and leader as he helps organizations do more with less and become more agile. In addition to his consulting practice, he is on the adjunct faculty at Roosevelt University, Chicago, IL. You can reach out to Willie for more information at 847-919-6127.