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