Tarkvaraarenduses on raiskamist niisamuti kui igas teises ärisektoris. Selles postituses vaatame seitset tüüpi raiskamist tootmisettevõttes ja püüame kõrvutada iga tüübi juurde tarkvaraarendusele vastavad näited.
Ületootmine
Kui tellimusi pole, siis püütakse toota selle jaoks, et kui kunagi tellimused tulevad, siis oleks kohe võimalik toode ostjale anda. Toodetud tooteid ja pooltooteid tuleb aga kuskil ladustada. Seetõttu iga valmis (pool)tootega tuleb arvestada lisakulutustega.
Tehases: Toodetakse lambipirne, kuigi keegi pole neid tellinud. Toodetakse lambipirnis kasutusel olevat klaasi, kuigi see protsess, kes selle klaasi pirnile peale paneb pole seda tellinud.
Tarkvaraarenduses: Tehakse eeltööd või uuringuid, kuigi pole kindel kas projekt töösse läheb. Tehakse analüüsi, kuigi programmeerijatel on käed tööd täis ning seda analüüsi ei jõuta ära tarbida. Kirjutatakse koodi, kuigi testijad ei jõua seda koodi testida.
Üleliigne ootamine
Raiskamine tekib siis kui töötaja peab ootama ja valvama, et mingisugune automaatne protsess lõppeks. Vahel lähevad töövahendid katki või pole lihtsalt tööd, sest eelnev protsess pole sisendit andnud.
Tehases: Klaasipuhumisaparaat läheb katki ning töötajad ei saa edasi töötada. Lambipirni kokkupanijad ei saa edasi töötada, sest klaase pole. Töötaja peab ootama kuni robot klaasi pirni peale asetamiseks vajaliku töövahendi klaasipirni peale asetab.
Tarkvaraarenduses: Programmeerija ootab kuni rakendus deploy –takse serverisse, et näha kuidas see töötab. Programmeerija peab ootama kuni rakendust kompileeritakse. Programmeerija ootab kuni analüütikud on oma tööga valmis saanud, et tal oleks midagi programmeerida.
Üleliigne transport
Raiskamine tekib, kui pooleliolevat tööd liigutatakse tehases ringi uue tööpingi juurde või hoopis lattu, et see hiljem jällegi välja võtta. Samuti kui mingi teave on töötajatest kaugel peavad nad seda taga otsima.
Tehases: Koostisosad ei ole käepärast vaid mööda tehast ringi. Pidevalt on vaja käia midagi toomas. Pooleliolevad tööd viiakse kaugele ära ja siis tuuakse jälle tagasi.
Tarkvaraarendus: Analüütikud ei tea täpselt mida kliendil vaja on ja helistavad pidevalt kliendile et seda küsida ehk teave on kaugel. Tegeletakse mitme ülesandega üheaegselt ehk tõstetakse pooleliolevat tööd lattu ja tagasi. Google on aeglane ja info tuleb sealt kaua.
Ületöötlemine või vale töötlemine
Tekib kui võetakse ette lõpptulemuseks mittevajalikke samme või kui eelneva protsessi tulemusena võetakse ette valesid samme. Samuti kui tekivad defektid. Raiskamine on ka toodete tegemine kõrgema kvaliteediga kui see vajalik on.
Tehases: Kasutatakse valesid või kulunud töövahendeid ning tulemus ei ole piisava kvaliteediga. Toote disain on kaheti arusaadav ning toode tuleb teistsugune kui alguses mõeldud oli.
Tarkvaraarenduses: Nõuded ei ole piisavalt täpsed, et programmeerida vastav lahendus ning ka testimise jaoks ei ole arusaadav millistele testidele lahendus vastama peab. Kõik selline, mis põhjustab hiljem algse tööülesande juurde tagasi suundumist.
Üleliigne lõpetamata toodang
Osaliselt on see raiskamine seotud ületootmisega kuid peamine probleem on selles, et kui igal sammul on suured puhvrid sisend- ja väljundtoodetest vahel, siis ei ole näha kust on tootmine balansist väljas. Samuti nagu esimese punkti juures mainitud, ei paista defektid piisavalt kiiresti välja. Samuti on toote valmimise aeg pikk.
Tehases: Hoitakse liiga palju toorainet, mille ladustamine maksab. Sammude vahel on liiga palju sisend- ja väljund(pool)tooteid, mille ladustamine maksab.
Tarkvaraarenduses: Hoitakse programmeerimises üle kahe ülesande korraga, milles orienteerumine kulutab kontekstivahetuse näol aega. Puhvrite puhul ei ole aru saada, kes teeb tööd ja kes ei tee. Kas välised osapooled peavad oma kokkulepetest kinni või mitte.
Üleliigsed liigutused
Mittevajalik liigutamine puudutab igasuguseid liigutusi, mida ei ole vaja teha või oleks võimalik teha oluliselt efektiivsemalt. Sellisteks liigutusteks võib olla millegi otsimine või tõstmine. Samuti on üleliigne jalutamine raiskamine.
Tehases: Mingite mutrite otsimine töökohast kaugemalt. Koostisosade toomine laost. Tööriistade tõstmine edasi-tagasi.
Tarkvaraarenduses: Info otsimine Google-st. IDE ei ole mugav kasutada ning operatsioonide teostamiseks peab vajutama üleliigselt klahve või kasutama hiirt. Üleliigsed koosolekud on raiskamine, mis toovad ka kaasa üleliigse jalutamise.
Defektid
Defektide alla läheb igasugune töö, mida on vaja teha pärast seda kui töö on märgitud lõpetatuks. Defektid kulutavad aega, mida ei ole alguses töö aja sisse arvestatud.
Tehases: Defektsete kaebuste inspekteerimine. Defektide kõrvaldamine lisatööd tehes. Asendustoodete valmistamine defektsete tööde välja vahetamiseks. Toodete tagasikutsumine.
Tarkvaraarenduses: Vaidlused teemal, kas konkreetne käitumine on defektne või polnud seda spetsifikatsioonis. Muus osas on sarnane tehase defektidega.
Kokkuvõte
Selle postituse kirjutamise käigus tundus mulle, et tüübid kohati kattuvad. Samas võib olla ka põhjus selles, et üks või teine raiskamine ongi mitmetüübiline, näiteks defektid tekitavad üleliigseid liigutusi või üleliigne lõpetamata toodang peidab defekte.
Kokkuvõtteks tulekski nende tüüpide järgi igasuguseid tööprotsessi osi vaadelda ning leida need töösammud, mida saab teha paremini või tuleks üldse ära jätta. Ilmselt ei saa selline muutumine kunagi valmis vaid alati tuleb edasi minna ning asju veel paremaks teha. Tööprotsesse mitte parendades toimub automaatselt vastupidine protsess ning segadus ainult suureneb.
Loe veel sarnastel teemadel:
- Meisterlikkuse taassünd, 30. aprill
- Kasulikud iteratsioonid, 31. august
- Töö kiirendamine ReSharper’i ja klaviatuuriga, 27. veebruar
- Kasutajalugude struktuur, 15. september
- Millest alustada?, 20. aprill
KAIZEN FEED
Telli endale Kaizeni uudisvoog
KOMMENTAARIDE FEED
Telli endale kommentaaride voog
KAIZEN TWITTER
Lühiuudised Kaizeni autoritelt
KAIZEN FACEBOOK
Liitu Kaizeniga
MIS ON KAIZEN?
Kaizen on Saiku tarkvaraarendusealane blogi, kus kirjutame erinevatest lähenemistest meisterlikule tarkvaraarendusele.
KATEGOORIAD
- .NET (18)
- Analüüs/Arhitektuur (11)
- Arendus (66)
- Ettevalmistus (1)
- Juhtimine (2)
- Varia (24)
SILDIPILV
- .NET (41)
- ilus kood (23)
- Arendus (23)
- C# (20)
- Analüüs/Arhitektuur (14)
- Testimine (10)
- raamat (8)
- Ruby (8)
- projektijuhtimine (8)
- printsiibid (6)
- produktiivsus (5)
- ReSharper (5)
- PHP (5)
- NHibernate (4)
- objekt-orienteeritud (4)
- pidev integratsioon (4)
- Viited (4)
- agile (4)
- Java (4)
- Geekdinner (4)
- lean (4)
- raamatukogu (4)
- CI (3)
- Cruise Control.NET (3)
- Robert C. Martin (3)
- scrum (3)
- iteratsioon (3)
- suhtlus (3)
- jQuery (2)
- TechEd 2008 (2)
- Visual Studio (2)
- valideerimine (2)
- intervjuu (2)
- tööpakkumised (1)
- analüüs (1)
- ASP.NET (1)
- ümberstruktureerimine (1)
- üritus (1)
- CodeRush (1)
- dokumentatsioon (1)
- Kent Beck (1)
- LINQ (1)
- Martin Fowler (1)
- Moq (1)
- Rhino Mocks (1)
- stackoverflow (1)
- võltsitud objektid (1)
- Whiteboard Wednesday (1)
- hindamine (1)
- tarkvara kvaliteet (1)
- ajagraafikud (1)
- Saiku (1)
- koolitus (1)
- tagasivaate (1)
- koosolek (1)
- dünaamilised keeled (1)
- staatilised keeled (1)
- FluentNHibernate (1)
- facebook (1)
- aastapäev (1)
- Rake (1)
- Oredev 2008 (1)
- toyota way (1)
- raiskamine (1)
- NDepend (1)
- podcasts (1)
- väle tarkvaraarendus (1)
- raido tonts (1)
- minimal marketable feature (1)
- kasutajalugu (1)
- twitter (1)
- Joomla! (1)
- MVC (1)
- andmebaas (1)
- versioonimine (1)
- diskussioon (1)
- regulaaravaldised (1)
- motiveerimine (1)
- mõõdikud (1)
- agileestonia (1)
- riistvara (1)
- koolitused (1)
- kujundus (1)
- kodulehed (1)
- veeb (1)
