Lean Software Development - JOstapjuk/Konspeekt_Agiil GitHub Wiki

Lean tarkvaraarendus


Definitsioon oma sõnadega

Lean on tarkvaraarenduse lähenemine, mis põhineb Lean-tootmise põhimõtetel. See keskendub raiskamise kõrvaldamisele, kiirele tarnele, kvaliteedi tagamisele ja meeskonna volitamisele. Eesmärk on pakkuda maksimaalset väärtust kliendile, vähendades samal ajal tegevusi, mis väärtust ei lisa.


Peamised omadused

  1. Raiskamise kõrvaldamine
    Keskendutakse ainult sellele, mis loob väärtust kliendile.

  2. Kvaliteedi sisseehitamine
    Kvaliteet tagatakse arenduse igas etapis, mitte ainult lõpus testimisega.

  3. Kiire tarne
    Kiirem tarne võimaldab varajast tagasisidet ja paremat reageerimisvõimet.

  4. Meeskonna volitamine
    Arendajad saavad otsustada ja vastutada, mis tõstab motiveeritust ja efektiivsust.

  5. Terviku optimeerimine
    Vaadeldakse kogu väärtusahelat, mitte ainult üksikuid osi.

  6. Otsuste edasilükkamine
    Otsuseid tehakse viimase vastutustundliku hetkeni, et säilitada paindlikkus.

  7. Õppimise võimendamine
    Julgustatakse pidevat täiustamist, katsetamist ja tagasiside kasutamist.


Lean näide

Näiteks mobiilirakenduse arendamisel ei looda kohe kõiki funktsioone. Selle asemel tehakse kiiresti miinimumversioon, saadakse tagasisidet ja seejärel arendatakse ainult neid funktsioone, mis loovad väärtust. Vältitakse tarbetuid koosolekuid ja eelistatakse lihtsust.


Skeem või joonis

image


Eelised

  1. Kiirem turulejõudmine
    Esimesed versioonid jõuavad kiiresti kasutajateni.

  2. Raiskamise vähendamine
    Ressursse kasutatakse ainult väärtust loovate tegevuste jaoks.

  3. Kõrge kvaliteet
    Vähem vigu, vähem ümbertegemist.

  4. Meeskonna motiveeritus
    Otsustamisvabadus tõstab vastutust ja motivatsiooni.


Puudused

  1. Nõuab kogenud meeskonda
    Otsustamine ja enesejuhtimine eeldavad professionaalsust.

  2. Struktuuri puudumine võib tekitada segadust
    Ilma distsipliinita võib "lihtsus" muutuda ebapiisavaks.

  3. Raske rakendada jäikades organisatsioonides
    Vajab kultuurilist muutust ja paindlikkust.


Lean põhimõtted / etapid

  • Väärtuse määratlemine
    Mõista, mida klient tegelikult väärtustab.

  • Väärtusahela kaardistamine
    Nähtavaks tehakse kõik sammud, mis loovad või ei loo väärtust.

  • Voolu loomine
    Tööd tehakse sujuvalt, ilma tõrgeteta.

  • Tõmbepõhimõte
    Töö tehakse vastavalt kliendi vajadusele, mitte "push"-loogikal.

  • Täiuslikkuse poole püüdlemine
    Pidev parendamine ja reflekteerimine.


Võrdlus: Lean vs Waterfall

Kriteerium Lean Waterfall
Lähenemine Väärtuspõhine, iteratiivne, raiskamisevaba Lineaarne ja järjestikuline
Tagasiside sagedus Pidev ja varajane Alles arenduse lõpus
Kasutaja kaasamine Väga aktiivne Väike
Sobivus projektile Muutuvate prioriteetidega, kiire arendusvajadus Stabiilsed nõuded, fikseeritud ulatus
Riskijuhtimine Pidev tagasiside ja täiustamine Hiline probleemide avastamine
Toote tarne Väärtuslikud osad jõuavad kiiresti kasutajani Kogu toode tarnitakse korraga
Paindlikkus Väga paindlik Väga piiratud

Lean Software Development


Definition in Your Own Words

Lean is a software development approach inspired by Lean manufacturing. It focuses on eliminating waste, delivering quickly, building in quality, and empowering teams. The goal is to maximize customer value while minimizing non-value-adding activities.


Key Features

  1. Eliminate Waste
    Focus on activities that bring value; eliminate everything else.

  2. Build Quality In
    Ensure quality at every stage of development.

  3. Deliver Fast
    Fast delivery enables early feedback and quicker adjustments.

  4. Empower the Team
    Teams are trusted to make decisions and self-organize.

  5. Optimize the Whole
    Look at the end-to-end process, not isolated steps.

  6. Defer Commitment
    Delay decisions until they must be made, increasing flexibility.

  7. Amplify Learning
    Encourage experimentation, feedback, and continuous improvement.


Lean Example

When developing a mobile app, the team starts with a minimal version focused on core value, delivers it quickly, gets user feedback, and only adds features that bring real value. Unnecessary meetings and documentation are avoided.


Diagram

image


Advantages

  1. Faster Time to Market
    Customers receive working value early.

  2. Reduced Waste
    Focused use of resources on what matters.

  3. High Quality
    Problems are prevented, not fixed later.

  4. Motivated Teams
    Empowerment leads to better decisions and ownership.


Disadvantages

  1. Needs Experienced Teams
    Requires responsibility and self-direction.

  2. Lack of Structure Risks Chaos
    Without discipline, minimalism may go too far.

  3. Hard to Apply in Bureaucratic Organizations
    Requires a cultural shift toward agility and trust.


Lean Principles / Flow

  • Define Value
    Identify what the customer really wants.

  • Map Value Stream
    Visualize all steps and eliminate waste.

  • Create Flow
    Make work progress smoothly and predictably.

  • Establish Pull
    Work is driven by demand, not pre-planning.

  • Pursue Perfection
    Always look for ways to improve.


Comparison: Lean vs Waterfall

Criteria Lean Waterfall
Approach Value-driven, iterative, waste-reducing Linear and sequential
Feedback Frequency Frequent and early Late, at the end
User Involvement Very high Low
Best Fit Projects Fast-changing, user-focused Clearly defined, stable scope
Risk Management Ongoing through feedback and learning Risk emerges late
Delivery Early, frequent delivery of valuable features Entire product delivered at once
Flexibility Highly flexible Very rigid