Lean Software Development A Series of Principles Creative

  • Slides: 15
Download presentation
Lean Software Development A Series of Principles Creative Commons License – Curt Hill.

Lean Software Development A Series of Principles Creative Commons License – Curt Hill.

Introduction • Lean software development is derived from lean manufacturing – This trend starts

Introduction • Lean software development is derived from lean manufacturing – This trend starts before Ford – A book by Tom and Mary Poppendieck adapts to Software Develoment • Like agile, lean is a series of principles – These may be applied to many software development methods Creative Commons License – Curt Hill.

Lean Principles • Eliminate waste – Anything that does not add value is waste!

Lean Principles • Eliminate waste – Anything that does not add value is waste! • Amplify learning and create knowledge – Project is a learning process • • • Decide as late as possible Deliver as fast as possible Empower the team Build quality and integrity in Optimize the whole Creative Commons License – Curt Hill.

Eliminate waste • Extra features – Developers do not predict needed features all that

Eliminate waste • Extra features – Developers do not predict needed features all that well – Let the users request these and prioritize them – Software bloat • Starting more than can be completed – Adds unnecessary complexity to the system, results in context-switching, handoff delays, and other impediments to flow Creative Commons License – Curt Hill.

Waste (Continued) • Delay in the software development process – Lengthens time to customer,

Waste (Continued) • Delay in the software development process – Lengthens time to customer, slows down feedback loops • Unclear or constantly changing requirements – Results in rework, frustration, quality issues, lack of focus • Bureaucracy – Delays speed • Partially done work – Does not add value to the customer Creative Commons License – Curt Hill.

Waste (Continued) • Slow or ineffective communication – Results in delays, frustrations, and poor

Waste (Continued) • Slow or ineffective communication – Results in delays, frustrations, and poor communication to stakeholders which can impact IT’s reputation in the organization • Defects and quality issues – Results in rework, abandoned work, and poor customer satisfaction • Task switching – Results in poor work quality, delays, communication breakdowns, and low team morale Creative Commons License – Curt Hill.

Research on waste • • • Building the wrong feature or product Mismanaging the

Research on waste • • • Building the wrong feature or product Mismanaging the backlog Rework Unnecessarily complex solutions Extraneous cognitive load Psychological distress Waiting/multitasking Knowledge loss Ineffective communication. Creative Commons License – Curt Hill.

Amplify learning • • • Pair Programming Code reviews Documentation Wiki – to let

Amplify learning • • • Pair Programming Code reviews Documentation Wiki – to let the knowledge base build up incrementally Thoroughly commented code Knowledge sharing sessions Training Use tools to manage requirements or user stories Creative Commons License – Curt Hill. Short iterations

Decide as late as possible • • Early decisions do not have all the

Decide as late as possible • • Early decisions do not have all the facts Keep options open, learning as you go Do not plan in excessive detail Do not commit to projects or ideas without understanding the requirements and costs Creative Commons License – Curt Hill.

Deliver as fast as possible • Fast delivery of a working project is an

Deliver as fast as possible • Fast delivery of a working project is an agile goal – Project does not have to be complete • What slows down this intent? – Thinking too far in advance about future requirements – Blockers that aren’t responded to with urgency – Over-engineering solutions and business requirements Creative Commons License – Curt Hill.

Empower the team • The chief asset of the team is the people •

Empower the team • The chief asset of the team is the people • Respect the worth of each person – Worth: skills, talent, personality • Do not micro-manage the team – Let the technical experts be technical experts • Encourage communication Creative Commons License – Curt Hill.

Build quality in • Everyone wants this – Often the practices of the team

Build quality in • Everyone wants this – Often the practices of the team detract • There are several tools that help • Pair programming – Avoid quality issues by combining the skills and experience of two developers instead of one • Test-driven development – Writing criteria for code before writing the code to ensure it meets business requirements Creative Commons License – Curt Hill.

Quality practices • Incremental development and constant feedback • Minimize wait states – Reduce

Quality practices • Incremental development and constant feedback • Minimize wait states – Reduce context switching, knowledge gaps, and lack of focus • Automation – Automate any tedious, manual process or any process prone to human error (learn more) – IBM slogan: Machines work, people think Creative Commons License – Curt Hill.

Optimize the whole • Do not release sloppy code for the sake of speed

Optimize the whole • Do not release sloppy code for the sake of speed – Deadlines are less important than quality • Avoid bottlenecks – The process is a value stream that needs to be kept moving • If testers are behind, developers will not get the feedback they need – Put more people where the stream bogs down Creative Commons License – Curt Hill.

Finally • This has been a quick overview of the lean principles • Many

Finally • This has been a quick overview of the lean principles • Many things in this presentation we will talk about in subsequent presentations • Many of the Software Development Methodologies emphasize several of these principles Creative Commons License – Curt Hill.