Agile,  Technologia

AI Scrum Master

Mój niedawny wpis na socialach na temat tego, że za jakieś dwa lata ujrzymy sztuczną inteligencję zdolną działać jako Scrum Master dla zespołów zdalnych (bo ich interakcje idą przez kanały, które poddają się łatwo maszynowej analizie) wywołał ku mojemu zaskoczeniu spore kontrowersje a nawet niektórych oburzył. Śpieszę więc temat rozwinąć żeby z jednej strony pokazać co mam na myśli a z drugiej wyjaśnić czego na myśli nie mam i nigdy nie miałem.

Moją prognozę bazuję na obserwacji rozwoju technologii AI, którą obserwuję od jakiegoś czasu korzystając z różnych narzędzi AI w miarę jak stają się one dostępne. W grudniu spędziłem sporo czasu korzystając z modelu OpenAI GPT-3 i jego możliwości są naprawdę ogromne. Zamiast jednak o nich pisać może po prostu krótka demonstracja.

Zadałem modelowi pytanie o typową sytuację (jest to jedna z sytuacji „szkoleniowych” ze szkolenia Professional Scrum Master). Model bazuje na informacji zaciągniętej z Internetu – a więc m.in. z Wikipedii, stron internetowych, Twittera i tak dalej. Demo udostępniane bezpłatnie nie ma włączonej możliwości poszukiwania i dociągania informacji na bieżąco (z tego powodu nie zna wydarzeń itp. po roku 2021). Można jednak trochę dodatkowych informacji przesłać jako element zapytania, co to też uczyniłem wklejając w ramach zapytania fragment ze Scrum Guide dotyczący Scrum Mastera. Dla zwięzłości w poniższym zrzucie jest on wycięty – każdy może go sobie zobaczyć tutaj.

Ponieważ odpowiedź – choć w punktach zawiera jednak dużo ogólników więc „drążyłem” dalej:

Widzę tu poważny błąd, a mianowicie w odpowiedzi modelu widać założenie, że zmiany jakie wprowadził Hugo są sprzeczne z Definition of Done. Tak jednak nie jest, co wiemy wprost z opisu zadania. Zwracam więc modelowi uwagę na to.

To już dużo lepiej, ale kontynuujmy i spróbujmy przejść do konkretów – co konkretnie powinien powiedzieć Scrum Master do zespołu?

A co nasz model powiedziałby do Hugo (kiedy ten się pojawi)?

Jak Tobie podobają się odpowiedzi modelu?

Moim zdaniem są naprawdę niezłe zwłaszcza biorąc pod uwagę, że:

  • jest to bezpłatne demo modelu,
  • jest trenowane na losowych zasobach z Internetu – a więc bez żadnej kontroli jakości z punktu widzenia Scruma ani skupienia na dialogach w zespołach,
  • jest to demo modelu GPT-3 – a więc starszego modelu, nowy model GPT-4 przygotowywany przez OpenAi ma mieć możliwości większe o dwa rzędy wielkości. Ten nowy model będzie dostępny już w bieżącym, 2023 roku!

Zastanów się teraz przez chwilę jakie możliwości będzie miała ta technologia za dwa lata? Jakie za dziesięć? Bo jej możliwości nie przyrastają obecnie liniowo ale wykładniczo.

Oczywiście, model to jedno, przygotowanie go do pełnienia roli Scrum Mastera to drugie. Jak takie przygotowanie powinno wyglądać? Otóż należy wytrenować model na dobrych źródłach (Scrum Guide, zawartość dobrych książek na ten temat) oraz interakcjach dobrych Scrum Masterów z ich zespołami. Należałoby zatem wytypować pewną pulę zdalnych zespołów, które uznalibyśmy za dobre w Scrumie, mające sprawnych Scrum Masterów, a następnie zapewnić modelowi dostęp do pełnego strumienia danych dotyczących tych zespołów i ich interakcji. W połączeniu z ogólnym modelem językowym – a więc tym, na czym ogólnie wytrenowana jest instancja modelu taka jak GPT-3 – powinno to dać w efekcie AI, które będzie w stanie sprawnie i prawidłowo reagować na różne sytuacje w zespołach.

Dodajmy, że praca Scrum Mastera w zdalnych zespołach polega na interakcjach z zespołem na czacie oraz na video-konferencjach. Dodatkowo może obejmować także tickety w systemie klasy Rally czy Jira, karteczki na tablicach Mural/Miro, kod źródłowy i związane z nim elementy (np. opisy commitów, komentarze i dokumentację) czy zawartość wspólnych stron typu Sharepoint albo Wiki czy wreszcie e-mail. Z tego względu idealnym miejscem dla stworzenia – i późniejszego używania takiego sztucznego SM-a – byłoby zintegrowane środowisko zawierające to wszystko, a więc np. środowisko Microsoft (Office 365 + Azure DevOps).

Większość z rzeczy powyżej to przede wszystkim tekst, a więc rzecz nie nastręczająca trudności. Rozpoznawanie mowy już dziś jest na tyle skuteczne, że od strony biernej udział sztucznego Scrum Mastera w telekonferencjach już dziś nie nastręcza problemu (dygresja: już teraz można w Microsoft Teams włączyć „coacha mówienia„, który po telco podpowie użytkownikowi jak mówił łącznie z tym czy używał politpoprawnej nowomowy czyli „inclusive language”). Strona czynna wymagałaby odrobinę więcej pracy, ale już dziś dostępne są przekonywujące syntezatory mowy oraz syntetyczni aktorzy dostarczający przekonywującego obrazu, dość dobrego by wyglądał naturalnie podczas telekonferencji. Stworzenie więc takiego hipotetycznego „sztucznego Scrum Mastera”, który mówiłby na telekonferencji nie wymaga już żadnych przełomowych wynalazków a jedynie połączenia istniejących technologii (tu możesz zobaczyć świetny przykład co już da się tymi technologiami zrobić).

Biorąc powyższe pod uwagę czy naprawdę to co napisałem jest takie oderwane do rzeczywistości?

Kwestia więzi

Niektóre osoby podniosły problem, że taki Scrum Master nie mógłby zbudować relacji z zespołem ani tym bardziej empatyzować z nim, ponieważ nie będąc człowiekiem nie posiada uczuć ani w ogóle możliwości realnego zrozumienia słów, których używa. To w końcu tylko model, który przetwarza jedne wzorce tekstowe na drugie.

Moim zdaniem problem jest jednak pozorny – bardziej filozoficzny niż realny. Zasadniczo bowiem komunikacja z takim „wirtualnym Scrum Masterem” odbywa się poprzez słowa, zdania i wypowiedzi – czy to pisane czy wypowiadane. Zatem istotne jest, aby użyte przezeń wypowiedzi pasowały do sytuacji i do osób, do których będą kierowane prowadząc do pożądanych efektów (czyli współpracy w zespole, budowaniu zaangażowania, profesjonalizmu itp.). Z tego punktu widzenia nie jest istotne czy generujący te wypowiedzi byt realnie rozumie co generuje. Nie jest również istotne czy ów byt realnie odczuwa więź z zespołem – istotne jest, że używa języka w sposób dobrze udający odczuwanie tej więzi oraz, że członkowie zespołu czują więź ze swoim sztucznym Scrum Masterem.

Warto zauważyć, że np. w klasycznym coachingu coach dostarcza jedynie strukturę, używając pewnych schematów wypowiedzi prowadzi coachee przez proces rozmowy. Coaching wywodzi się m.in. z NLP, NLP zaś opierało się na fundamentalnej obserwacji, że naśladując dobrych psychologów można uzyskiwać efekty terapeutyczne. Sposób działania modelu generacyjnego, który znamy jako „AI”, jest de facto takim właśnie naśladownictwem na ogromną skalę. W efekcie model może generować naprawdę dobre wypowiedzi, świadczące pozornie o empatii i więzi. Czy to dowodzi, że model w istocie żonglujący konstrukcją języka posiada świadomość i tożsamość? Osobiście wątpię, ale to problem bardziej dla filozofów – w niczym nie przeszkadza to w praktycznym użyciu takiego narzędzia.

Samouczący się…

A dodajmy, że model uczy się. Jeżeli nauczymy model jak mierzyć pozytywne zachowania w zespole (a więc jak rozpoznawać świadczące o tym, odpowiednie wzorce w języku używanym przez członków zespołu – i to nie tylko na czacie czy telco, ale także w ticketach czy w kodzie) to wówczas będzie on w stanie sam się uczyć i korygować dobór słów i fraz w wypowiedziach. Innymi słowy na skutek obserwacji skutków użycia takich czy innych fraz model będzie się uczył które są bardziej skuteczne. Ponieważ tego rodzaju model będzie jednocześnie obsługiwał setki zespołów non-stop jego doskonalenie się będzie dużo szybsze niż ludzkiego Scrum Mastera. Zarazem, będzie w stanie dobierać odpowiednie reakcje do każdego członka każdego z zespołów.

Czy taki model jest w stanie być lepszym niż najlepszy Scrum Master? Oczywiście, że nie. Czy może być dość dobry, podobny do przeciętnej osoby pełniącej taką rolę? Bardzo możliwe. Czy mógłby być asystentem, pomocnikiem początkującego Scrum Mastera podpowiadającym mu co robić albo stawiającym prognozy jak zespół zareaguje na takie czy inne działanie dając mu szansę przetestować to zanim coś zrobi? Z całą pewnością.

Czy to dobrze

Jedną rzeczą jest kwestia możliwości, którą jak sądzę dość dobrze przedstawiłem powyżej – moim zdaniem „sztuczny Scrum Master” będzie zdecydowanie w zasięgu możliwości w ciągu następnych dwóch lat. Upowszechnienie się takiego rozwiązania to oczywiście inna kwestia – i więcej czasu.

Zupełnie inną kwestią jest czy to jest dobrze.

Jakoś tak się składa, że kiedy ktoś opowiada o możliwościach technologii to czyni się z niego automatycznie jej entuzjastę. Ja natomiast widzę raczej więcej zagrożeń niż korzyści – przynajmniej na krótką metę. Tym bardziej, że Scrum Master jest akurat pozycją, która może się czuć dużo mniej zagrożona nowymi technologiami niż inni. Na przykład copy writerzy, graficy tworzący reklamy i logotypy czy nawet prawnicy mogą się obawiać dużo bardziej.

Zasadniczo zmieni się też sposób pracy programistów. Jest to zmiana na miarę tej jaką było przejście w latach sześćdziesiątych zeszłego wieku z kodu maszynowego na języki strukturalne. Programiści przyszłości nie będą więc bezpośrednio pisać kodu, lecz mówić maszynie czego oczekują i korygować wyniki, jeśli nie będą zgodne z oczekiwaniami. To również będzie możliwe w ciągu najbliższych paru lat, ale to temat na osobny artykuł.

Nie ma więc dwóch zdań, że w najbliższej dekadzie czeka nas przeoranie rynku pracy przez tą i inne technologie. Poziom zmiany o jakim mówimy porównać można do rewolucji przemysłowej przełomu XVIII i XIX wieku, która przyniosła także zasadnicze, głębokie przemiany społeczne. A przecież to nie jedyna duża zmiana i niewiadoma, z którą przyjdzie się nam zmierzyć. „Obyś żył w ciekawych czasach” to podobno chińskie przekleństwo – no cóż, nie da się ukryć, że w takich właśnie czasach żyjemy.

Komentowanie

Twój adres e-mail nie zostanie opublikowany. Wymagane pola są oznaczone *