Jak wiadomo w bajkach odnaleźć można ukrytą mądrość. W takim razie pora na bajkę, ale strzeżcie się – ukryta w niej mądrość może przewrotnie obrócić się przeciwko wam. Gotowi? No to zaczynam…

Wracając z jednej ze swoich podróży, tuż u jej końca, król napotkał na trakcie ubogiego wędrowca. Widząc jego liche odzienie, znoszone obuwie i raczej mizerną posturę, zaczął go wykpiwać. Wędrowiec znosił to ze spokojem, co tym bardziej irytowało króla i prowokowało do kolejnych docinków. Kiedy w pewnym momencie rzekł do niego, że jest tak chudy dlatego, że żywi się powietrzem, wędrowiec wreszcie postanowił się odezwać i odrzekł, że wręcz przeciwnie, zamierza dzisiaj na obiad zjeść wyjątkowo smaczną i pożywną zupę z kamienia. To powiedziawszy sięgnął po kamień leżący u brzegu traktu i włożył go do sakwy. Usłyszawszy te słowa król potraktował je jako niebywałą zuchwałość, bo oto jakiś nic nie znaczący wędrowiec śmie drwić sobie z królewskiego majestatu twierdząc, że pożywi się zupą z kamienia. Nakazał więc swojej straży pojmać zuchwalca i oznajmił mu, że ma zamiar zjeść dzisiaj w zamku ową zupę z kamienia i oby była ona tak smaczna i pożywna jak wędrowiec twierdzi, bo w przeciwnym razie każe mu przywiązać do szyi kamień, który wystarczyłby na tysiąc zup i wrzuci wraz z nim do przyzamkowej fosy.

Po przybyciu do zamku wędrowca zaprowadzono do kuchni. Tam oznajmiono kucharzowi, że dzisiejszy posiłek przyrządzi królowi właśnie ów nieznajomy i że maja mu w tym celu użyczyć kuchni oraz wszystkich niezbędnych do przygotowania zupy sprzętów. Osłupiały kucharz wraz z kucharczykami stanął pod ścianą i zaczął przyglądać się czynnościom wykonywanym przez wędrowca, który zupełnie niezrażony stojącym przed nim zadaniem, raźno zabrał się za przygotowanie zupy z kamienia. Poprosił o spory garnek, do którego nalał wody i rozpaliwszy ogień w palenisku powiesił go nad nim. Następnie starannie umył kamień i wrzucił do garnka. Czekając na zagotowanie się wody, podjął rozmowę z kucharzem. Zaczął się rozwodzić nad zaletami zupy z kamienia, że przecież praktycznie nic ona nie kosztuje, a można się nią wyśmienicie najeść. W trakcie tej tyrady, ni stąd ni zowąd, mimochodem, zapytał kucharza, czy to nie obrazi królewskiego majestatu, jeśli zupa będzie pozbawiona warzyw? Kucharz zdecydowanie stwierdził, że bezsprzecznie będzie to obraza majestatu. W takim razie dobry człowieku – rzekł wędrowiec – czy nie masz w spiżarni jakichś warzyw, przecież nie chcemy, aby król poczuł się urażony? Oczywiście w królewskiej spiżarni był bogaty wybór wszelkiego rodzaju warzyw. Wędrowiec wybrał co ładniejsze, polecił kucharczykom przygotować je odpowiednio i już po chwili znalazły się one w garnku. Wędrowiec wrócił więc do konwersacji z kucharzem i w pewnym momencie, dając po sobie poznać niepokój, zapytał czy czasami brak mięsa w takiej zupie nie będzie jeszcze większą obrazą królewskiego majestatu. Kucharz wręcz przeraził się, bo wiedział jak władca uwielbia mięso. Sam więc czym prędzej pobiegł do spiżarni, aby wybrać najbardziej dorodną sztukę mięsa, po czym osobiście pokroił ją na drobne kawałeczki i wrzucił do garnka. Wówczas wędrowiec zapytał czy to prawda, że królewskie podniebienie jest znane z wysublimowanego smaku. Kucharz potwierdził tę opinię o władcy i zgodził się z sugestią wędrowca, że w związku z tym zupa musi być odpowiednio przyprawiona. Następnie osobiście – z racji znajomości preferencji smakowych króla – doprawił zupę. Gdy minął stosowny czas, ugotowaną zupę przelano do wazy i zaniesiono do władcy. W trakcie, gdy król się nią pożywiał, do syta najadł się też tym co pozostało w garnku sam wędrowiec oraz kucharz z pomocnikami. Kucharz nie mógł się nadziwić, jak niebywałą zupą jest zupa przygotowana przecież z tak niejadalnej rzeczy jak kamień. Wkrótce i z królewskich komnat dotarło, że król uznaje kunszt kucharski wędrowca i nakazuje kucharzowi pozyskać od wędrowca przepis na zupę z kamienia, ponieważ życzy sobie, aby na stałe weszła ona do jego jadłospisu. Tym sposobem wędrowiec zarówno uszedł cało z niespodziewanej opresji, jak i najadł się do syta i koniec końców zadrwił z zadufanego w sobie króla.

Podobała się bajka? Prawda, że sprytnie wędrowiec wywiódł króla w pole? Bezapelacyjnie królowi się należało. Bywa jednak i tak, że król jest w porządku, a wędrowiec mimo to robi z niego głupca. I jakoś tak się składa, że tym królem bywa programista, a wędrowcem osoba specyfikująca wymagania.

Oczywiście przez „specyfikująca wymagania” należy tutaj rozumieć kogoś w rodzaju analityka (tak kogoś „w rodzaju”, bo jeśli to będzie analityk z prawdziwego zdarzenia, to nie ma tematu), a nie zwykłego klienta biznesowego, bo wówczas programista, zanim przystąpi do programowania, musi dodatkowo samodzielnie dokonać analizy wymagań. Pisząc więc ogólnie „specyfikacja wymagań” mam tu na myśli albo konkretny przypadek użycia, albo opowieść użytkownika w postaci, która ma bezpośrednie przełożenie na stosowany w Scrumie Product Backlog Item i w konsekwencji na wchodzące w jego skład zadania. Kiedy uzyskujemy informację, że do wykonania jest „zupa z kamienia”, wówczas wiemy, czego nam potrzeba – jest to skończony i konkretny zestaw prac do przeprowadzenia, który daje się w miarę dobrze oszacować czasowo.

I tu właśnie objawia się przewrotna natura specyfikującego wymagania (będę używał tego słowa, bo analityk – jak wspomniałem – to semantyczne nadużycie). Okazuje się, że przy odbiorze zaprogramowanej funkcjonalności, osoba specyfikująca oświadcza, że nie jest to rezultat, jakiego oczekiwała. Nagle okazuje się, że przecież – że użyję analogii z bajki – zupa musi mieć jakieś warzywa, jakieś mięso, musi być odpowiednio przyprawiona. I – co najciekawsze – jest to oczywista oczywistość (cytując klasyka). Tak programisto, powinieneś się domyślić, że tak naprawdę nie chodziło o zupę z kamienia, ale o normalną zupę, a kamień jest tylko dla zmyłki – wróć – jest pewną figurą retoryczną, elementem wyjściowym, który ma cię zmusić do myślenia, do tego abyś zadawał pytania i doszedł w ten sposób do sedna, pojął co tak naprawdę ma być zaprogramowane.

Sęk w tym, że przy takim podejściu nie ma co mówić o zwinności. No może jedynie w tym aspekcie, aby zwinąć manatki i zmykać z takiego zespołu gdzie pieprz rośnie. Przecież to czego oczekuje programista, to specyfikacja (przypadek użycia, historia użytkownika, koniec końców – przepis na zaprogramowanie). I tak będzie traktował otrzymane od osoby specyfikującej wytyczne. I nie, nie będzie się bawił w znaną ze szkoły zabawę „co autor miał na myśli”, traktując specyfikację jako zbiór metafor. Nie będzie szukał dodatkowego dna, ukrytych przejść, równoległych światów. On ma to po prostu zaprogramować, a nie wykonywać de facto robotę analityka, traktując otrzymany przepis jedynie jako luźny zarys jakiejś bliżej nieokreślonej koncepcji.

Drogi czytelniku, jeśli przecierasz oczy ze zdumienia – jesteś szczęśliwcem, bo nie miałeś do czynienia z tego typu sytuacją. Niestety są jeszcze takie firmy, które aspirują do miana Software House i zatrudniają ludzi, którzy mienią się „analitykami”. Rzecz w tym, że ten tytuł przysługuje im jedynie w części, tj.: „anal”, a to dlatego, że bardzo dobrze przedstawia on ich podejście: od dupy strony. Więc to co oni koniec końców specyfikują (i podobno przeanalizowali), to nie zupa z kamienia, ale (cytując innego klasyka – współczesnego Sienkiewicza), ch…, dupa i kamieni kupa.