Efficiency optimization and minimizing costs are two important components of the lean approach to software development, which has already been tested by many IT companies in practice.
Korzenie tego podejścia sięgają historii znanego producenta samochodów Toyota i opierają się na jego podejściu do rozwiązywania problemów. Polega ono na wprowadzaniu tylko takich zmian, które przynoszą korzyści, a jednocześnie wymagają minimalnych kosztów i ich wdrożenie nie zajmuje zbyt wiele czasu.
W odniesieniu do wytwarzania oprogramowania metodologia Lean została po raz pierwszy omówiona przez Mary Poppendieck i Toma Poppendiecka, którzy w 2003 roku opublikowali książkę “Lean Software Development”. Opisano w niej tradycyjne zasady szczupłej produkcji w odniesieniu do wytwarzania oprogramowania, a także zestaw 22 narzędzi (praktyk) i ich porównanie z metodyką zwinnego rozwoju.
Lean Software Development – nie jest metodyką zarządzania rozwojem projektu, jak może się wydawać na pierwszy rzut oka. Jest to zbiór zasad stosowanych w różnych projektach w celu usprawnienia procesu rozwoju i zwiększenia jego efektywności.
The 7 Principles of Lean Software Development
W sercu lean development leży kilka ważnych zasad, które pozostają praktycznie niezmienne od kilku lat. Spróbujmy wyjaśnić je w krótkich i prostych słowach.
1. Wyeliminuj marnotrawstwo. W tworzeniu aplikacji, marnotrawstwem jest wszystko to, co nie przynosi żadnej wartości biznesowej dla klienta, nie poprawia jakości tworzonego produktu ani nie przyspiesza czasu wydania projektu.
Innymi słowy, jest to to, na co wydajemy pieniądze, a z czego nie czerpiemy żadnych zysków. Na przykład, niewykorzystany kod i niepotrzebne funkcje, które nie przynoszą dodatkowej wartości zarówno użytkownikowi, jak i biznesowi, ale wymagają czasu na dyskusję, rozwój, testowanie i dokumentację.
2. Wzmacniaj uczenie się. Aby zespół mógł opracować system, który przyniesie wartość biznesową dla klienta, musi posiadać szeroki zakres umiejętności. Zespół musi gromadzić wiedzę i dzielić się nią, na przykład w formie przeglądu na koniec iteracji.
Niektóre z nowych doświadczeń będą miały charakter techniczny, a inne, wręcz przeciwnie, są klasyfikowane jako wymagania niefunkcjonalne. Na przykład, mając zrozumienie, co użytkownik biznesowy naprawdę chce, a nie co deweloperzy sobie wyobrażają. Dlatego zespół musi stale się rozwijać, uczyć i gromadzić wiedzę. To pozwala zespołowi uniknąć problemów w przyszłości.
3. Decyduj tak późno, jak to możliwe. Główną ideą jest tu czekanie do ostatniej chwili przed podjęciem jakiejkolwiek decyzji, zwłaszcza nieodwracalnej. Jest to szczególnie prawdziwe, gdy mówimy o decyzjach, które mogą mieć znaczący wpływ na sukces rozwoju.
Wszystkie decyzje muszą być poparte danymi analitycznymi i wynikami monitorowania procesów, w przeciwnym razie zespół ryzykuje, że zostanie pochłonięty przez zbyt wiele zmian i może zapomnieć o głównym celu projektu.
Im później podejmiesz decyzję, tym więcej masz umiejętności i zrozumienia, i tym mniej będziesz musiał później przerabiać.
4. Dostarczaj tak szybko, jak to możliwe. Jest to podstawa iteracyjnego rozwoju. Im szybciej pokażesz klientowi swoją pracę u podstaw, tym szybciej otrzymasz od niego informację zwrotną, a co za tym idzie, znacznie szybciej otrzyma on produkt z niezbędnymi ulepszeniami.
Ciekawa funkcja biznesowa, która weszła do produkcji w ciągu kilku miesięcy, może ostatecznie okazać się zupełnie bezużyteczna. Ale gdyby została wydana w ciągu dwóch tygodni, mogłaby okazać się korzystna dla klienta.
5. Wzmocnij zespół. Tworzenie oprogramowania to proces pracy umysłowej, więc traktuj ludzi jak kompetentnych, zmotywowanych profesjonalistów, a nie fachowców o wąskich umiejętnościach pisania kodu czy rysowania diagramów.
Aby ludzie brali odpowiedzialność, byli zmotywowani i pracowali jako solidny zespół, powinni być świadomi swojego wkładu w tworzony produkt. Konieczne jest stworzenie warunków, w których każda osoba może być skoncentrowana na pracy nad bieżącym zadaniem biznesowym.
Zaufaj swojemu zespołowi i szanuj go. Czynnik ludzki jest jednym z najważniejszych elementów udanego rozwoju oprogramowania.
6. Buduj integralność w. Zgodnie z zasadami szczupłego rozwoju, problem można albo znaleźć po jego pojawieniu się, albo zawczasu wyeliminować przyczyny prowadzące do problemu.
Autorzy Lean Software Development sugerują, aby rozwiązywać problem jakości bezpośrednio, gdy zaczyna się on pojawiać – na początku stawiając na jakość w produkcie, a nie zostawiając identyfikację i usuwanie błędów na testy lub produkcję. W tym celu warto poruszać się małymi krokami i sprawdzać jakość po każdym kroku.
7. Zobacz Całość.
Głównym sposobem rozwiązywania problemów jest rozbijanie ich na mniejsze zagadnienia i konsekwentne eliminowanie przyczyn ich powstawania. Aby jednak dostrzec źródło problemu, zespół powinien mieć dobre ogólne zrozumienie aktualnego procesu rozwoju, koncepcji i strategii tworzonego produktu.
Podsumowanie
W tym artykule poznasz zasady Lean Software Development, które możesz zastosować podczas pracy nad projektami w swoim zespole. Być może pozwoli Ci to na zwiększenie efektywności i optymalizację procesów.
Należy zrozumieć fakt, że mówimy o zasadach, a nie ścisłych regułach. Dlatego należy włożyć trochę wysiłku, aby skutecznie dostosować je do specyfiki Twojego projektu.
Chcesz rozpocząć projekt?
Nasz zespół jest gotowy do realizacji Twoich pomysłów. Skontaktuj się z nami teraz, aby omówić swoją mapę drogową!