Po raz pierwszy usłyszałem o lean manufacturing w kontekście Toyoty w mojej klasie działalności gospodarczej. Każdy, tak jak ja, kto przeczytał o zasadach lean, był całkowicie zafascynowany koncepcją obniżenia marnotrawstwa i zwiększenia produktywności poprzez celowy projekt.
Z biegiem czasu, szczupłe zasady przepływu rozwoju produktu został przyjęty przez wiele branż, nawet poza produkcją, która obejmuje rozwój oprogramowania.
Lean zasady rozwoju jest zwinne podejście, które zostało opracowane na zasadach szczupłej produkcji. To samo, które jest używane przez Toyotę jako metodologia zarządzania i optymalizacji procesu produkcji pojazdów w celu zminimalizowania odpadów i zwiększenia wartości dla klienta.
Wiem, co musisz myśleć. Jeśli zasady lean powstały wokół produkcji pojazdów, to jak pasuje do nich tworzenie oprogramowania?
Połączenie między metodologią lean agile a rozwojem oprogramowania zostało po raz pierwszy przedstawione w 2003 roku w książce o nazwie „Lean Software Development: An Agile Toolkit” autorstwa Toma i Mary Poppendieck.
W książce, Poppendiecks zinterpretował, jak zasady lean mogą być stosowane w procesie rozwoju oprogramowania. Zarówno procesy tworzenia oprogramowania, jak i procesy produkcyjne podążają za powtarzalnymi strukturami i opierają się na wysokich standardach jakości. Zależą również w dużym stopniu od pracy zespołowej, aby wszystko zostało wykonane.
Pytanie brzmi jednak, jak można to zrobić. W tym artykule przyjrzymy się, jak dostosować nasz proces tworzenia oprogramowania do zasad lean software.
Table Of Content
- Jakie są mocne i słabe strony zwinnego rozwoju oprogramowania Lean?
- Siedem zasad rozwoju oprogramowania Lean
- Wprowadzanie siedmiu zasad Lean do naszych projektów rozwoju oprogramowania:
- Mądre zastosowanie zasad rozwoju oprogramowania Lean
- Przezwyciężanie wyzwań związanych z wykorzystaniem zasad Lean
Rozwój oprogramowania Lean wprowadza w życie kilka podstawowych zasad w celu optymalizacji produktywności. Rozwój oprogramowania posiada wiele kluczowych cech, co czyni go najlepszym procesem do wdrażania szczupłego rozwoju oprogramowania.
- Powtarzalne procesy
- Współpraca zespołowa
- Jednolite standardy
- Jakie są mocne i słabe strony zwinnego rozwoju oprogramowania Lean?
- The 7 Principles Of Lean Software Development
- Aligning The 7 Lean Principles Into Our Software Development Projects:
- 1. Eliminacja marnotrawstwa
- 2. tworzenie wiedzy
- 3. Build Quality In
- 4. Szybkie dostarczanie
- 5. Empower Your Team
- 6. opóźnienie w podejmowaniu decyzji
- 7. optymalizacja całości
- Phase Wise Application of the Lean Software Development Principles
- Overcoming The Challenges of Using Lean Principles
Jakie są mocne i słabe strony zwinnego rozwoju oprogramowania Lean?
Mocne strony zasad szczupłego rozwoju produktu obejmują:
- Usprawnione podejście umożliwiające dostarczanie funkcjonalności w ograniczonym czasie
- Eliminacja niepotrzebnych działań, która może obniżyć koszty
- Umocnienie zespołu programistów, pomagające im podejmować decyzje, które mogą zwiększyć ich morale.
Słabości metodyki szczupłego rozwoju oprogramowania obejmują:
- Zależy w dużym stopniu od zaangażowanego zespołu, co czyni ją mniej skalowalną w porównaniu z innymi ramami
- Polega na ścisłej dokumentacji. Niepowodzenie w tej części może prowadzić do poważnych błędów w rozwoju.
The 7 Principles Of Lean Software Development
Istnieje siedem kluczowych zasad podejścia lean software development pracujących w celu przyspieszenia dostarczenia i przyniesienia wysokiej wartości użytkownikom końcowym:
- Eliminate Waste
- Create Knowledge
- Build Quality In
- Fast Delivery
- Empower Your Team
- Delay in Making Decisions
- Optimize the whole
Aby spełnić te cele cum principles, korzystamy z takich narzędzi jak:
Zarządzanie zapasami – Stosujemy praktykę, w której obniżamy liczbę operacji, które są w toku za jednym zamachem poprzez zastosowanie teorii lub ograniczeń lub teorii kolejek.
Kanban – Jest to system zarządzania projektami typu pull, gdzie ograniczamy zadania, które są coraz ukończone jednocześnie. Pomaga nam to w zapobieganiu przeciążenia procesu rozwoju.
Mapowanie strumienia wartości – Jest to metoda wizualizacji, w której wizualizujemy cykl rozwoju – od żądania klienta do wdrożenia. Pomaga nam to w demonstracji i pomaga zoptymalizować czas spędzony na utrzymaniu i na rzeczywistym przetwarzaniu.
Spójrzmy teraz na to, jak dostosowujemy siedem zasad lean do naszego cyklu rozwoju oprogramowania w naszej roli jako wiodącej firmy rozwijającej oprogramowanie lean.
Aligning The 7 Lean Principles Into Our Software Development Projects:
1. Eliminacja marnotrawstwa
Najważniejszą zasadą szczupłego rozwoju produktu, którą przyjmujemy, jest eliminacja wszystkiego, co nie przynosi żadnej wartości użytkownikom końcowym. Zaczynamy od zidentyfikowania wartości produktu, który mamy zbudować.
Ułatwia to identyfikację marnotrawstwa, takiego jak niepotrzebny kod, niejasne cele, dodatkowe funkcje i dodatkowe procesy, itp.
Marnowanie jest jednym z największych wyzwań transformacji cyfrowej. Z naszego doświadczenia wynika, że można je znaleźć w wielu domenach:
- Marnowanie pracy w toku, czyli pracy cząstkowej. Można to obniżyć poprzez wprowadzenie ograniczeń w pracy w toku, w trybie Kanban.
- Marnowanie odpadów nadprodukcji. Pojawiają się one, gdy cykle informacji zwrotnej stają się zbyt długie i pojawia się zapotrzebowanie na serię dodatkowych funkcji.
- Marnowanie procesów. Są one eliminowane przez naszą firmę rozwoju oprogramowania poprzez podejście programowania parami i lepszej współpracy.
- Odpady Handsoff. Rozwiązujemy ten problem poprzez nie utrzymywanie naszego zespołu funkcjonującego jako silosy. Pracujemy jako zgrany zespół, który pomaga w zwiększeniu wydajności.
- Wady oprogramowania. Marnotrawstwo ma tendencję do przesączania się, gdy jakość nie jest częścią procesu rozwoju oprogramowania z różną równowagą i kontrolą.
2. tworzenie wiedzy
Proces rozwoju oprogramowania, sam w sobie, jest jednym, który jest mocno generujący wiedzę. Appinventiv od początku był firmą niezwykle skoncentrowaną na wiedzy. Jest to jeden z głównych powodów, dla których byliśmy w stanie włączyć technologię blockchain i AI do projektów przed jakąkolwiek inną firmą zajmującą się tworzeniem aplikacji w branży.
Ujednolicamy tę zasadę z naszym procesem rozwoju, wdrażając kilka kluczowych metod, takich jak: przeglądy kodu, przeprowadzanie szkoleń, komentarze do kodu, dokumentacja projektu, programowanie w parach i sesje dzielenia się, itp.
3. Build Quality In
Nasz zespół zajmujący się tworzeniem oprogramowania zapewnia, że zawsze koncentrujemy się na dostarczaniu produktów wysokiej jakości. Zawsze udoskonalamy nasz proces rozwoju, aby wyeliminować projekt od pierwszego kroku do produktu końcowego.
Istnieją różne podejścia do rozwoju oprogramowania lean agile, które stosujemy, aby poprawić jakość produktu:
- Pair programming – aby obniżyć straty związane z błędną komunikacją i uzyskać maksymalną wydajność.
- Kryteria testowania – oferowanie inżynierom systemu zapewniającego, że spełnia on wymagania.
- Rozwój integralny – poprawa jakości dzięki terminowym, spójnym informacjom zwrotnym.
- Niższe stany oczekiwania – ochrona jakości i usprawnienie wydajności przy jednoczesnym zmniejszeniu luki w wiedzy.
- Automatyzacja – wykorzystanie zasobów takich jak AI i uczenie maszynowe w celu obniżenia, a ostatecznie wyeliminowania błędów w procesach rozwoju.
4. Szybkie dostarczanie
Podstawy zwinnego rozwoju skupiają się w dużej mierze na szybkim dostarczaniu procesów oprogramowania. Zasady Lean Agile, będące częścią tego podejścia, również kładą nacisk na szybkie dostarczanie. Oznacza to po prostu, że zespół projektowy musiałby dostarczać moduły zgodnie z planami kamieni milowych.
Osiągnięcie szybkiego czasu tworzenia aplikacji staje się łatwiejsze, gdy istnieje stabilny przepływ pracy, który pomaga zespołom w zrozumieniu wartości procesu, a tym samym ułatwia osiągnięcie szybkich rezultatów.
5. Empower Your Team
Ta jedna zasada lean jest tym, czego przestrzegamy niezależnie od zespołu i projektu. Nasz zespół, który koncentruje się na tworzeniu oprogramowania dla startupów, rozumie, że kiedy pracujecie razem, musicie się szanować. A kiedy sprawy idą na południe lub nie idą zgodnie z planem, należy skupić się na sprawdzeniu luk w procesie pracy, które mogły doprowadzić do konfliktów i wyzwań.
Od początku naszej działalności koncentrujemy się na tworzeniu korzystnego środowiska pracy, w którym dajemy przykład. Aby poprawić morale, umożliwiamy również swobodę twórczą naszym zespołom, dając im możliwość wyboru najlepszego podejścia do każdego zadania.
6. opóźnienie w podejmowaniu decyzji
Wiemy, co myślisz – opóźnienie w podejmowaniu decyzji musi być złym pomysłem.
Ale kiedy podążamy za zasadami lean agile, wierzymy, że późne podejmowanie decyzji nie jest równoznaczne z nieodpowiedzialnością. W rzeczywistości zachęca to zespół do utrzymywania otwartych opcji przez długi okres czasu, aby mógł zebrać dane, które mogą pomóc w podjęciu ważnych decyzji.
W wyniku tego nasz projekt nigdy nie cierpi z powodu negatywnych skutków, które pojawiają się z powodu podejmowania złych decyzji.
7. optymalizacja całości
Dążymy do optymalizacji całego procesu rozwoju, który nie jest ograniczony tylko do podprocesów. Pracujemy ze zrozumieniem, że jeśli dodamy wartość do określonego zestawu procesów, produkt końcowy w końcu zostanie dotknięty, a wyniki końcowe będą niezoptymalizowane.
Aby poradzić sobie z sub-optymalizacją, zachęcamy do działania z dobrymi możliwościami pracy. Optymalizujemy cały proces, co umożliwia identyfikację przepływów wartości dla całego zespołu, który z kolei obiecuje wartościowe i terminowe dostawy.
Phase Wise Application of the Lean Software Development Principles
Overcoming The Challenges of Using Lean Principles
Mimo że artykuł, aż do tego momentu, był nastawiony na to, jak metodologia Lean czyni ją korzystną dla płynnego procesu tworzenia oprogramowania, istnieją pewne dominujące wyzwania, które muszą zostać rozwiązane.
- Członkowie zespołu muszą być self-directed i być w stanie pracować jako spójna jednostka.
- Mogą być przypadki, w których wymagania mogą utrzymać wzrost bez finalizacji w zasięgu wzroku. Te muszą być zarządzane z delikatnością po rozmowie z klientami.
- Lean metoda jest silnie skoncentrowany na ciągłym doskonaleniu. Harmonogramy dla wdrożeń są również zazwyczaj długie. To z kolei może zwiększyć linię czasu, kiedy jesteś w stanie czerpać korzyści.
.