About ‘Lean’ Development Approaches
In the context of stakeholders, a ‘benefit’ is a measurable gain, advantageous to an objective. An ‘output’ is a categorisation of what an operation produces.
Whereas Agile development lionises adaptability and swiftness, Lean has a fundamentally different root in TOC (Theory of Constraints) manufacturing that introduces a paradigm shift towards limiting or eliminating critical constraints and streamlining the development process.
Highly adopted by Agile developments and adapted from ‘lean principles’, focusing on waste elimination in manufacturing, ‘lean methodology’ dictates development projects that gain efficiency by considering all aspects that are of low value, lowest in a ‘Value Stream’, to users as ‘waste’ or ‘muda’ to be left out of design and construction or minimised to their least demanding but still effective states.
Lean methodology must be applied to a development lifecycle that is geared by a suitable approach; such as Lean RAD-based OOA UML or Lean DevOps-based SSADM.
Lean’s primary principles are:
|Eliminate Waste||Recognising waste to be discarded using ‘value stream mapping’ modelling. ‘Waste’ describes waits, defects, management tasks, task switching, unneeded features, extra processes, partial developments and workflow changes between iterations.|
|Big-Picture Perspective||Omnipresent understanding of project, environment and ethos with standardised well-organised development stages; “Think big, act small, fail fast; learn rapidly”, building good relationships between all organisational objects, meat and metal – physical and logical.|
|Amplified Learning||A bias towards developmental processes, eschewing exhaustive design and documentation. Integrating practices for organisational learning, on-the-fly testing and sourcing solutions from the users.|
|Team Empowerment||Using a ‘Work-Out’ technique to allow better communication from developers to management, raising morale and efficiency.|
|Swifter Delivery||Allows for distributions to have ‘minor’ defects. Using ‘just-in-time’ ideology, to present products that capitalise on ‘early-bird’ contexts. Uses multiple design options for decision making aid.|
|Conceptual Integrity||Regular simple communication with clients, in an orderly piece-by-piece fashion. Developing increments to, if possible, merge with previous code instead of join beside. Requiring understanding and solving of the problem without much delay between.
A balance of maintainability, responsiveness, efficiency and flexibility in terms of design, organisation and the product. Includes refactoring, to clean-up code packages by removing redundancies and synchronising modulation.
|Decision Delaying||Delaying decision making for beneficial manoeuvrability. Adopting iterative approaches and establishing methods for rapid action. Includes planning with a focus on allowing for options and adaptability in coding and organisation.|
Not used in traditional Agile developments, Value stream mapping is a development tool used to visually define and prioritise operational processes and states. Diagrams are composed of three fields; Information, Material flow and a Lead Time ladder that chronologically identifies timing details for the above objects. Each field aligned, the information and material fields hold adjacently-relational objects. To helpfully aid identification of ‘waste’ and extraneous roles in relation to a ‘story’, Shigeo Shingo suggests that in each field, the lesser valued actions are mapped as diversions from a main and singular horizontal line of most valued action.
Lean, though including critical testing, also leaves the option open to mark automated tests as ‘waste’ and cease much of their use. Lean also allows use of TDD (test-driven development) for long term projects or ones that involve legacy module packages.
Lean methodology may trade Scrum daily-standups in Agile for Kanban boards, which map a simpler but similar set of progress points; Upcoming, Doing and Done. This auto-recorded written method can simplify and stabilise communication over traditional Agile spoken daily-updates which require more demanding organisation. Of course, techniques and approaches can be and are simultaneously adopted as necessary.
The fundamental difference between ‘Agile’ and ‘Lean’ methodologies is the focus, on efficiency as opposed to Agile’s adaptability and coordination, leading to compatibility between Agile and Lean adoption on an operation.
Both methodologies have a focus on fast-deliverables so they are comparable – even if Lean is more suited to less formal utility. A benefit of both is that the shorter a development lifecycle, the higher the level of communication and learning is promoted within – also, the shorter the release timeframe and client’s wait.