Lean Software Development * Zarz*dzanie firm*

advertisement
Mariusz Trembiński, Nr Albumu: 14589, Informatyka PWSZ 2014.
Przedmiot: Zarządzanie firmą.
Lean Software Development
Lean (Lean Software Development) – rodzaj programownia/zarządzania nazywany
„odchudzonym” lub „wyszczuplonym”, wywodzi się z koncepcji odchudzonej produkcji (Lean
production), która została zapoczątkowana przez szefa Toyoty, Taiichi Okhno. Koncepcja ta
znalazła swoje zastosowanie także przy produkcji oprogramowania(Lean Software
Development), a została zaadoptowana przez Mary Poppendieck i Toma Poppendiecka.
Lean Software Development zostało zaprezentowane po raz pierwszy jako tytuł konferencji
zorganizowanej przez inicjatywę ESPRIT Unii Europejskiej w Stuttgarcie, w Niemczech, w
październiku 1992 r.Pomysł nazewnictwa sposobu tworzenia oprogramowania
odchudzonego (Lean) rozpoczoł się bardzo wcześnie, bo już po 1 lub 2 latach od pierwszego
zastosowania jej w odniesieniu do procesów produkcji i inżynierii przemysłowej.Termin
„Chudy” datuje się na rok 1991. Został zaproponowany przez Jamesa Womacka, Daniela
Jonesa i Daniela Roosa w książce The Machine That Changed the World: The Story of Lean
Production jako termin języka angielskiego, używany do określania podejścia do zarządzania
w firmie Toyota. wyszczuplone zarządzanie (ang. lean management) nosi nazwę
amerykańską, jednak rodowód jego jest w całości japoński.
Rozwój standardu
Lean Management jest zakorzeniona w koncepcji szczupłej produkcji (ang. lean production),
która została opracowana i po raz pierwszy użyta w japońskiej firmie Toyota, przez szefa
produkcji firmy Taiichi Ohno. Koncepcja ta została przyjęta przez Mary Poppendieck i Tom
Poppendiecka i opisana w książce, której tytuł stał się nazwą metody. W odchudzonej
produkcji oprogramowania wyróżnia się 7 zasad obsługiwanych przez 22 narzędzi Lean
Manufacturing charakterystycznych i dostosowane do „zwinnych praktyk”.
Zastosowanie
Metodyki zwinne ze względu na swą różnorodność są nieporównywalne. Lean Software
Development dotyczy z kolei zarządzania projektami, ale w znacznie szerszym ujęciu niż
metodyka SCRUM, która przykładowo dotyczy strony zarządzania projektem, pozostawiając
inżynierskie sprawy – projektowanie, kodowanie, zarządzanie konfiguracją, testowanie itd.
samo organizującemu się zespołowi a np: XP* - dotyczy spraw inżynierskich i nie dostarcza
żadnych specyficznych narzędzi do zarządzania projektem.
*Programowanie ekstremalne (ang. eXtreme Programming, XP)
...............................................
MARIUSZ TREMBIŃSKI | LEAN SOFTWARE DEVELOPMENT
(ZARZĄDZANIE FIRMA)
1
Definiowanie zasad Lean Software Development
Definiowanie zasad odchudzonego tworzenia oprogramowania jest trudne, ponieważ nie
istnieje konkretna metoda ani proces odchudzonego tworzenia oprogramowania. Metodyka
odchudzona nie jest tożsama z osobistym procesem tworzenia oprogramowania (Personal
Software Process), modelem V, modelem spiralnym, EVO, tworzeniem oprogramowania
opartym na funkcjach (Feature-Driven Development), programowaniem ekstremalnym,
metodą Scrum ani tworzeniem oprogramowania opartym na testowaniu (Test-Driven
Development). Proces tworzenia oprogramowania lub zarządzania projektem można określić
jako „odchudzony”, jeśli dopilnowano, aby był dostosowane do wartości cyklu
odchudzonego tworzenia oprogramowania i zasad odchudzonego tworzenia
oprogramowania. Dlatego też osoby oczekujące prostego rozwiązania do szybkiego
wdrożenia, które występuje jako rozwój oprogramowania typu Lean, będą
rozczarowane. Należy dostosowywać własny proces rozwoju oprogramowania poprzez
zrozumienie zasad szczupłego zarządzania i przyjęcie wartości podstawowych szczupłego
zarządzania.
Zasady Lean software development
1. Eliminacja marnotrawstwa (ang. Eliminate Waste) - marnotrawstwem jest wszystko,
co nie nie wnosi żadnej nowej wartości do produktu.To klient uznaje co jest ważne
dla danego produktu więc wartością jest to, co klient uzna za wartościowe. Należy
umieć rozpoznawać straty aby je wyeliminować. Jeżeli niektóre działania mogą być
pominięte lub wynik można osiągnąć bez owych działań, to są to straty. Np. Pisanie
oprogramowania, które w dalszej fazie projektu okaże się niefunkcjonalne i należy je
usunąć, jest stratą. Awarie oraz spadki jakości są stratami. Podsumowując, wśród
strat wymienić można m.in.:



brak znajomości oczekiwań klienta
słaba i wolna komunikacja wewnętrzna
zbędne kodowanie oraz funkcjonalność
2. Tworzenie jakości i spójności (ang. Build Quality In) – Podstawą dobrego projektu
jest jego jakości i spójność. Te dwa czynniki końcowego produktu zależą od
zachowania równowagi pomiędzy funkcjonalnością aplikacji, niezawodność i
wartością ekonomiczną wytworzoną dla klienta firmy. Spójność jest tu rozumiana
jako połączenie elementów, takich jak jakość architektury (czy jest łatwa do
pielęgnacji, łatwa do rozbudowywania, itp.), zadowolenie klienta z produktu,
zarówno w momencie dostarczenia produktu, , jak i potem przez długi czas oraz
używalności aplikacji. Firmy informatyczne tworzą często aplikacje które im samym
...............................................
MARIUSZ TREMBIŃSKI | LEAN SOFTWARE DEVELOPMENT
(ZARZĄDZANIE FIRMA)
2
się bardzo podobają i z których są dumne, niestety inne spojrzenie ma na to klient,
który oczekiwał nie do końca tego, co zostało wdrożone.
3. Wzmocnienie pozyskiwania wiedzy (ang. Create Knowledge) - tworzenie
oprogramowania jest ciągłym procesem uczenia się ale również poznawania nowej
organizacji, nowe zasady rządzące danymbiznesem dla którego tworzymy aplikację.
Dlatego też bardzo istotnym jest uzyskanie jak najlepszego sprzężenia zwrotnego.
Można to uzyskać poprzez stosowanie częstych i krótkich iteracji, każdej zakończonej
wdrożeniem nowo powstałego produktu. Jeśli nowa funkcjonalność powstała w n-tej
iteracji zostanie wdrożona, natychmiast dostaniemy informacje zwrotną od klienta,
dzięki czemu będziemy mogli zweryfikować czy wiedza jaką pozyskaliśmy jest
właściwa, a także czy oczekiwania naszego klienta zostały zaspokojone.
4. Podejmowanie decyzji najpóźniej, jak to możliwe (ang. Defer Commitment) –
podczas tworzenia oprogramowania zespół musi podjąć szereg decyzji, choćby takich
jaką technologię zastosować, z którą bazą danych związać produkt, o jakie
architektury i szkielety (ang. framework) oprzeć produkt finalny. Bardzo często nie
mamy na danym etapie realizacji projektu dość wiedzy, aby zdecydowanie podjąć
decyzje i pójść wybraną drogą. Dlatego też zgodnie z zasadami szczupłego
programowania, decyzje należy odwlekać tak długo jak się da, jednocześnie
utrzymując tworzone oprogramowanie w takim stanie, że łatwo będzie je
przystosować do zmian jakie wynikną w związku z ostatecznym podjęciem decyzji.
5. Wdrażanie najwcześniej, jak to możliwe (ang. Deliver Fast) – polega na dostarczaniu
produktu najszybciej, jak to możliwe w małych cześciach. Dzięki temu unikniemy
bolesnych zmian wymagań klienta, ponieważ po szybkim wdrożeniu klient od razu
będzie wiedział, czy zaimplementowana część produktu jest tym o czym myślał, czy
też może wymagania klienta nie zostały właściwie odczytane. Miarą dojrzałości firmy
informatycznej jest szybkość odpowiedzi na potrzeby klienta.
6. Respektowanie zespołu (ang. Respect People) – Najlepszym z możliwych rozwiązań
w kwestii zespołu jest – zespół sam organizujący swoje działania, oznacza to, że
należy zespołowi przekazać uprawnienia do decydowania, kto zajmuje się czym i za
co jest odpowiedzialny. Zaangażowani członkowie zespołu stanowią o jego
największej wartości. Osoby które dostarczają wartość dodaną, powinny mieć
możliwość pełnego wykorzystania swojego potencjału, należy wspierać je, jak tylko
się da.
7. Spojrzenie na całość (ang. Optimize the Whole) – Po zakończeniu prac nad
produktem należy patrzeć na dzieło jako na całość. Bardzo ważnym czynnkiem
decydującym o jakości całego produktu jest wykluczenie zmian w pewnych
fragmentach programu, które mogłby by zadecydować o zmniejszeniu optymalności
działania całego programu.
...............................................
MARIUSZ TREMBIŃSKI | LEAN SOFTWARE DEVELOPMENT
(ZARZĄDZANIE FIRMA)
3
Lean Management
Koncepcja Lean Management - Jedna z technik zarządzania przedsiębiorstwem,
koncepcja ta jest bardzo często wykorzystywana w gwałtownych zmianach w
organizacji firmy, co nazywane jest procesem restrukturyzacji. Jest to nowa koncepcja
zarządzania która ma za zadanie pozbycia się zbędnych „kilogramów firmy”. „Lean”
znaczy chudy zaś „Management” zarządzanie, nie ma polskiego tłumaczenia tego
zwrotu co powoduje, że w literaturze fachowej używa się zwrotu oryginalnego. Wraz
z rozwojem przedsiębiorstwa nieuniknione jest wykorzystanie tejże koncepcji,
nieuniknione jest tez to przedsiębiorstwo musi być na tyle elastyczne, aby swobodnie
reagować na zachodzące zmiany w jego otoczeniu. Firma musi się rozwijać w celu tym
szuka nowych rozwiązań z problemami gdy pogarsza się jakość pracy, obniża się
sprawność działania lub związane jest to ze wzrostem kosztów. Menadżerowie
zauważają że cos przeszkadza w funkcjonowaniu przedsiębiorstwa, wtedy następuje
ograniczenie kosztów poprzez zwolnienie pracowników. Zachodzą zmiany w firmie, są
prowadzone nowe działania, pracownicy nie maja innego wyboru – musza sie
przystosować. Bardzo często przychodzi im to z trudem ponieważ nie są gotowi do
zmian lub po prostu tego nie chcą bo jest im wygodniej.
Definicja:
„koncepcja zarządzania przedsiębiorstwem, która zakłada dostosowanie go do warunków
gospodarowania panujących na rynku na drodze przekształceń organizacyjnych i
funkcjonalnych; jest powolnym i ciągłym procesem racjonalizacji całej organizacji oraz jej
stosunków z otoczeniem poprzez wprowadzenie licznych zmian w zakresie działalności, w
strukturze majątku oraz sposobach zarządzania, ale także w dziedzinie przygotowania
zawodowego oraz kształtowania postaw pracowników; wysmuklanie, wyszczuplanie,
odchudzanie przedsiębiorstwa.”(J.Lichtarski, 1997, s.224)
Cechy metody:






zminimalizowanie kosztów produkcji
pozyskiwanie nowych klientów
przyspieszenie realizacji produktów
wysokiej produktywności produkcji i pracy
uzyskanie sprawnej organizacji i zarządzania
osiągniecie zadowalających wyników ekonomicznych
Bibliografia:
I.
II.
III.
Lean Software Development na Wikipedii (on-line)
Tworzenie odchudzone oprogramowania na MSDN(on-line)
http://mfiles.pl/pl/index.php/Lean_management
...............................................
MARIUSZ TREMBIŃSKI | LEAN SOFTWARE DEVELOPMENT
(ZARZĄDZANIE FIRMA)
4
Download