Agile w Data Science: czy to ma sens?

Wstęp

Na łamach naszego bloga mieliśmy okazję pisać już o Data Science, a także o zwinnym i kaskadowym zarządzaniu projektami. W tym artykule zamierzam przyjrzeć się wykorzystaniu metodyk zwinnych w projektach Data Science. Odpowiem na pytanie kiedy warto stosować metodyki zwinne przy pracy z danymi, a kiedy agile może kreować dodatkowe problemy.

Ze względu na sporą ilość materiału, którą zebrałem podczas prac nad artykułem, zostanie on podzielony na dwie części. W części pierwszej skupimy się na rozważaniach dotyczących tego, czy Agile jako taki w ogóle ma szansę być efektywnie zastosowany w środowisku Data Science.

Druga część poruszy tematy bardziej praktyczne i wskaże jak dopasować ramy zwinnego zarządzania projektami na potrzeby Data Science w krótkim studium przypadku.

Czym jest Agile? – przypomnienie i kontekst

W celu rozpoczęcia rozważań na temat wykorzystania metodyk zwinnych w zarządzaniu projektami Data Science należy przypomnieć czym tak w ogóle są owe metodyki.

Wytwarzając oprogramowanie i pomagając innym w tym zakresie, odkrywa się lepsze sposoby wykonywania tej pracy. W wyniku tych doświadczeń przedkłada się:

  • ludzi i interakcje ponad procesy i narzędzia
  • działające oprogramowanie ponad szczegółową dokumentację
  • współpracę z klientem ponad negocjacje umów
  • reagowanie na zmiany ponad realizację założonego planu

Według Manifestu agile docenia się to, co wymieniono po prawej stronie, jednak bardziej ceni się to, co po lewej.

Współcześnie, ze względu na rosnącą popularność metod zwinnych, większość osób kojarzy lub nawet intuicyjnie rozumie Manifest. W kontekście Data Science dużą rolę odgrywają pierwsze słowa Manifestu – „Wytwarzając oprogramowanie…”. Jak można się domyślić, pomimo wielu podobieństw, projekty Data Science rządzą się własnymi prawami i tak jak w innych obszarach efektywne wykorzystanie dowolnego frameworku Agile będzie wymagało pewnego dostosowania. Więcej o metodykach zwinnych możecie dowiedzieć się z naszego wpisu o Zarządzaniu Projektami w Innowacjach.

“Agile Data Science”

Ze względu na wspomniane powyżej różnice pomiędzy tworzeniem oprogramowania a projektami z obszaru Data Science, niektórzy praktycy twierdzą, że zastosowanie Agile w tym kontekście wymaga nowej, dostosowanej definicji.

Dodatkowo różnicę tę widać w doświadczeniu i profilach linked.in programistów i analityków Data Science. Przebadaliśmy ponad 100 profili osób z pozycją Data Scientist i ponad 100 profili osób z pozycją Software Developer. Oczywiście niewielka próba sprawia, że wynik analizy jest łatwo podważyć, jednak wstępny rezultat jest interesujący.

Adopcja agile wśród specjalistów data science

Tylko 44% profili osób o pozycji Data Scientist (i podobne) posiada jakiekolwiek doświadczenie lub certyfikat związany ze zwinnym zarządzaniem projektami. W przypadku pozycji software developer było to prawie dwukrotnie więcej – 81%.  (N=103, N=102, źródło analiza własna, analiza profili linked.in z uzupełnionymi certyfikatami i edukacją)

Jedną z przyczyn względnie mniejszej adopcji agile w Data Science może być trudność w wyspecyfikowaniu ostatecznego produktu. W związku z tym we wdrażaniu metodyk zwinnych w Data Science skupiono się na tym co jest przewidywalne i łatwe do opisania – procesie analizy danych, który staje się główną częścią iteracyjnego rozwoju produktu. Russell Jurney pokusił się nawet o ujęcie całej definicji w formie jednego Tweeta:

Definicja agile data science w formie tweeta od O. Reilly

Luźno tłumacząc na język polski otrzymamy następującą formułę: „Celem zwinnego Data Science jest dokumentowanie i prowadzenie eksploracyjnej analizy danych w celu odkrycia i podążania ścieżką krytyczną do zadowalającego produktu”.

Zalety zwinnego zarządzania projektami Data Science

Takie ujęcie podejścia do zwinnego zarządzania projektami w kontekście Data Science pozwala rozwiązać problemy, takie jak:

  • Określenie finalnego produktu i stworzenie Listy Wymagań lub Backlogu na początku projektu
  • Zmieniające się wymagania i zakres projektu – trudności z estymacjami
  • Każdorazowy przyrost działającego kodu/fragmentu oprogramowania na końcu sprintu (Scrum, DSDM)

Dzięki temu zespoły mogą również wykorzystywać cechy Agile, które przyspieszają pracę i skupiają się na zarządzaniu zespołem, takie jak:

  • Jasno określone zadania na najbliższy sprint wraz z szacunkiem czasu pracy
  • Okresowa priorytetyzacja zadań – co jest najważniejsze dla projektu w tym momencie?
  • Ciągłe monitorowanie wymagań biznesowych i zbieranie informacji zwrotnej – dostarczanie wartości faktycznie pożądanej przez klienta/biznes

Podsumowując: Agile w Data Science wymaga umiejętnego dostosowania, jednak kluczowe aspekty skupiające się na tworzeniu tego, co faktycznie generuje wartość biznesową dla klienta, pozwalają na sprawniejsze i szybsze dostarczanie produktów prac.

W związku z powyższym – w drugiej części artykułu omówię krótkie studium przypadku, obrazujące w jaki sposób wykonać dostosowanie metodyk zwinnych do projektów Data Science tak, aby zachować ducha agile przy jednoczesnej sprawnej realizacji projektu w tym obszarze.