Lean software development – eliminacja strat

Zdecydowana większość dojrzałych projektów jest skostniała, czy to ze względu na biurokratyczne procesy, którymi obrosła, czy to przez problemy w samym kodzie źródłowym. 

W takich warunkach warto się na chwilę zatrzymać i zadać sobie pytanie: ile czasu w naszej pracy faktycznie dostarczamy wartość dla końcowego odbiorcy usług czy produktu?

Jak zatem wytwarzać więcej softu, którego potrzebuje klient, przy mniejszych nakładach pracy? Przede wszystkim eliminować marnotrawstwo. 

Eliminacja strat to fundamentalna zasada szczupłego wytwarzania oprogramowania (lean software development), z której wynikają wszystkie inne zasady.

Zatem pierwszym krokiem do wdrożenia szczupłego rozwoju jest nauka dostrzegania marnotrawstwa. Drugim i każdym kolejnym krokiem jest odkrywanie największych jego źródeł i ich usuwanie. Po pewnym czasie można stopniowo eliminować nawet rzeczy, które na początku wydawały się niezbędne.

Dostrzeganie strat 

Funkcjonalność, która czeka na użycie, jest marnotrawstwem. Tworzenie czegoś, co nie jest natychmiast potrzebne, jest marnotrawstwem. Ruch jest marnotrawstwem. Czekanie jest marnotrawstwem. Wszelkie dodatkowe etapy przetwarzania są marnotrawstwem i oczywiście defekty są marnotrawstwem. 

Powolna lub nieefektywna komunikacja skutkuje opóźnieniami, frustracją, brakiem koncentracji i nieporozumieniami z interesariuszami.

Biurokracja po prostu opóźnia szybkość działania. Wiele procesów tworzenia oprogramowania wymaga papierkowej roboty w celu uzyskania podpisu klienta. Czy Twój usługobiorca  naprawdę uważa, że dzięki temu produkt jest dla niego bardziej wartościowy?

Częściowo wykonana praca nie dodaje wartości klientowi ani nie pozwala zespołowi wyciągnąć z niej wniosków, co więcej, częściowo wykonane oprogramowanie szybko się starzeje.

Dobrym pomysłem może wydawać się wprowadzenie do systemu dodatkowych funkcji na wypadek, gdyby okazały się potrzebne. Programiści mogą chcieć dodać nową możliwość techniczną tylko po to, aby sprawdzić, jak ona działa. To może sprawiać wrażenie nieszkodliwego, ale przeciwnie, jest to poważne marnotrawstwo.

Niekończąca się opowieść

Pamiętaj, że z eliminacją strat jest jak z delegowaniem czy sprzątaniem. To praca cykliczna, wynikająca z podstawowej zasady fizyki: entropia układu nigdy nie maleje. W trakcie pozbywania się jednego marnotrawstwa będą pojawiać się inne. Czy to syzyfowa praca? Nie, ponieważ ma ona sens. Każda eliminacja zbędnej pracy powinna przynieść pozytywny skutek w postaci odpowiedniej ilości naprawdę potrzebnego oprogramowania.

Źródła 

  1. Lean Software Development: An Agile Toolkit

Udostępnij ten wpis


Dobrnąłeś do końca. Jeśli ten artykuł był dla Ciebie wartościowy i chcesz otrzymywać informacje o kolejnych, to zapraszam Cię do zapisania się do listy mailingowej. Gwarantuję zero spamu.

Radek.

Inne artykuły

ML w AWS – Sagemaker Autopilot

Automatyczne tworzenie modeli uczenia maszynowego z pełną widocznością w usłudze AWS Sagemaker – korzyści z wygenerowanego Jupyter Notebooka.

ML w AWS – Sagemaker Studio – IDE w przeglądarce

Sagemaker Studio – interaktywne środowisko dla Data Scientist. Z Jupyter Notebooks na pokładzie, oferuje współpracę, śledzenie eksperymentów i integrację z systemem kontroli wersji. Przegląd quasi …

ML w AWS – wstęp do usługi Sagemaker

Sagemaker: Wytwarzanie usług ML w chmurze AWS na nowym poziomie Odkryj potężną usługę Sagemaker, która gromadzi wszystkie niezbędne funkcjonalności związane z wytwarzaniem usług uczenia maszynowego w …

Rozwijasz czy produkujesz oprogramowanie?

Opracowywanie przepisów to proces uczenia się metodą prób i błędów. Nie oczekujesz, że pierwsza próba nowego dania wykonana przez szefa kuchni będzie ostatnią. W rzeczywistości …

CD4ML: Continuous delivery for machine learning

Zacznijmy od początku: czym jest ciągłe dostarczanie (continuous delivery)? To podejście w wytwarzaniu oprogramowania, w którym wdrożenie nowej wersji jest decyzją biznesową. Ale jak to …