W toku prowadzonych analiz, regularnie spotykam na etapie “zgłaszania wymagań biznesowych”, oczekiwania w rodzaju: “system ma pozwalać na wystawienie faktury na towar, którego nie ma w magazynie i pozwalać na ujemne stany magazynowe”, “system ma pozwalać na korygowanie treści historycznych dokumentów”, i wiele podobnych. To jest to co nazywam “łamanie praw fizyki w systemach”.
W zasadzie przyczyna takich żądań jest dość prosta: wielu ludzi lubi drogę na skróty, z powodów popełnianych błędów czy nawet nieuczciwości, chciało by zamazać historię albo np. móc kolejny raz oszukać. Takie “łamanie praw” pozostało by tylko “pobożnym życzeniem”, gdyby nie szkodnik w postaci programisty, który powie: ależ ja to bez problemu mogę oprogramować! Jak klient choć raz coś takiego usłyszy, to pojawia się feeria kolejnych podobnych życzeń! Jaki tego efekt? Ano lawina błędów logiki, kolejne wymagania “naprawiające” skutki poprzednich w rodzaju: ujemne stany magazynowe mają zostać bo są fajne, ale proszę dopisać jakieś reguły, żeby raporty magazynowe remanentowe nie pokazywały tego, bo wychodzą głupoty. I tak bez końca… a wdrożenie trwa i trwa i trwa….. jedna “fajna poprawka” i kolejne dziesiątki błędów (lub długie dni korekt wszystkich zależnych funkcji) w innych miejscach systemu.
Nie raz słyszę w firmach programistycznych, że “klient nasz Pan”, a gdy mówię, że to przecież nielogiczne i wywoła błędy w wielu innych miejscach (np. raporty zawierające dane o ujemnych stanach magazynowych) słyszę: klient płaci to ma, za naprawianie błędów też płaci bo mamy kontrakt “czas i materiał”, i tu wygląda na to, że to ja jestem szkodnikiem, bo nie daję im zarobić, albo w innej sytuacji “czepiam się bo odrzucam wymagania sponsora projektu”.
Czy to problem małych firm? Średnich? Niedoświadczonych? Czy to jest problem rzadki? Nie! To mega problem, bo takie zapędy mają nie tylko “pracownicy firm”, to zapędy polityków, wszelkich VIP-ów, całych korporacji, wręcz całego społeczeństwa. Co ciekawe, drugim po programistach szkodnikiem, są tu nie raz, o dziwo (mają na studiach logikę!), prawnicy. Dlaczego? Bo u tych obserwuję podobne ciągoty jak u programistów: “klient płaci, klient nasz pan, napiszemy taki paragraf”. W wielu przypadkach programiści i prawnicy to najemnicy, którzy wiedzą, że za takie “łamanie praw” zapłacą i tak ich klienci a nie oni, w końcu “klient sam chciał”, co niestety jest prawdą (ale tylko to, że chciał). Ale dlaczego klient nie dowiaduje się od nich o ryzyku? A może dowiaduje się i ignoruje je?
Popatrzmy na to:
Kilka tygodni temu Europejski Trybunał zdecydował, że operatorzy wyszukiwarek muszą umożliwić Europejczykom możliwość wpływania na to, jakie informacje o nich prezentowane są w wynikach wyszukiwania. Google już dostosował się do tego orzeczenia i udostępnił użytkownikom stosowne narzędzie przez pierwsze trzy dni skorzystało z niego ponad 40 tys. osób, jednak decyzja trybunału wciąż budzi kontrowersje. Założyciel Wikipedii, Jimmy Wales nie owija w bawełnę ? jego zdaniem ?prawo do bycia zapomnianym? to po prostu cenzura. (Prawo do bycia zapomnianym czy zwykła cenzura? – Computerworld. 20.06.2014)
I to właśnie nie jest nic innego, jak próba łamania praw fizyki. Jak rozumieć “możliwość wpływania na to, jakie informacje o nich prezentowane są w wynikach wyszukiwania”, skoro wyszukiwarka pokazuje (wcześniej opisane gdzieś) fakty , czyli “ma pamięć historii” (podobnie jak każdy człowiek). Owszem, na pewno jest masa ludzi, chcących czyścić zapisy o swoich “dokonaniach” w przeszłości, ale to jest właśnie próba ingerencji w prawa fizyki (ingerencja w przeszłość, a w pamięć ludzi się da? Też nie.). Czy programista może? Owszem, podobnie jak twórcy kreskówek, może łamać prawa fizyki, ale kreskówek nikt nie używa jako narzędzia pracy w realnym świecie a oprogramowania tak (choć podobno dzieci oglądające zbyt dużo kreskówek, doznają więcej obrażeń ciała podczas zabaw z rówieśnikami).
Czy to, żądania innych niż w rzeczywistości reguł, ma sens? Nie ma żadnego, bo nawet jeżeli prawnik zapisze w umowie lub ustawie, że “wolno latać machając szybko rękami”, nie zmienia to faktu, że “fizyka mówi, że się nie da” i nikt i tak tą metodą nie poleci. Pierwszy konflikt praw fizyki z programem lub zapisem umownym, wywołuje kolejne żądania naprawy skutków konkretnego przypadku, co oczywiście w żaden sposób nie chroni przed kolejnymi wpadkami: lawina korekt i narastająca niedoskonałość aplikacji, treści umowy czy ustawy (tak wygląda np. nasze prawo!) tylko podnosi koszt całości.
Długo tu nie trzeba było czekać:
Decyzja Trybunału Sprawiedliwości UE o “prawie do zapomnienia internauty” przez Google przyjęta została entuzjastycznie. Wiadomo – prywatność rzecz święta. Ale jego wprowadzenie wywołało nieprzewidziane skutki [kto nie przewidział?? przyp. mój].
Jak informuje The Guardian, z wyników wyszukiwania przez Google znikają strony z artykułami i felietonami gazety. Teksty te zawierają nazwiska osób, które nie chcą być znalezione w sieci. Zarówno The Guardian, jak i BBC oraz Daily Mail otrzymały powiadomienie (poprzez Google Webmaster Tools) następującej treści: “Z przykrością zawiadamiamy, że z powodów prawnych nie możemy dłużej pokazywać następujących stron z waszej witryny:” – i tu następuje lista linków. (“Prawo do bycia zapomnianym” stwarza dziwne sytuacje – PC World – Testy i Ceny sprzętu PC, RTV, Foto, Porady IT, Download, Aktualności. 04-07-2014)
Tak się właśnie kończy z góry przegrana walka z prawami fizyki. Teraz będzie już, z europejskim prawem, tylko coraz gorzej. Nie ma żadnej świętości. Nie chcesz się wstydzić? Nie rób rzeczy wstydliwych! To proste prawdy, proste i niezmienne jak prawa fizyki, walka z nimi jest możliwa tylko w kreskówkach a w oprogramowaniu tylko do czasu, gdy się ono nie zetknie z rzeczywistością i tu zawsze przegra z “prawami fizyki”.
Dlatego zbieranie wymagań tylko metodą spisywania oczekiwań czy wręcz żądań, użytkowników, jest jedną z najgorszych metod pozyskiwania wymagań! Praktycznie zawsze prowadzi do powstawania specyfikacji bardzo złej jakości (niespójne i niekompletne) oraz niekontrolowanego rozrastania się harmonogramu i budżetu projektu. Dostawcy oprogramowania, godzący się na taki styl prowadzenia projektu, świadomie lub nie, działają na szkodę swoich klientów. Analiza systemowa organizacji jako sposób pozyskania wymagań, który chroni przed takimi zjawiskami.
Dlatego pamiętajcie Państwo, nie róbcie sobie krzywdy żądając zachowań systemu nieadekwatnych do rzeczywistości bo zawsze przegracie. Reguły biznesowe, to nic innego jak prawo organizacji, jeżeli będzie ono w zapisach kolidowało w prawami natury i logiką, przegracie. Niestety na Wasz koszt.
“Założyciel Wikipedii, Jimmy Wales nie owija w bawełnę ? jego zdaniem ?prawo do bycia zapomnianym? to po prostu cenzura”. I moim zdaniem ma trochę racji, ale to “prawo” to po protu próba “łamania praw fizyki”, historii nie zmieniamy…
W kwestii chciejstwa ludzi:
Amerykański koncern Google poinformował w czwartek, że w ciągu miesiąca otrzymał 70 tys. wniosków od europejskich użytkowników chcących usunięcia pewnych wyników podawanych przez jego wyszukiwarkę w ramach zagwarantowania “prawa do bycia zapomnianym” (Google otrzymał 70 tys. wniosków o ‘bycie zapomnianym’ – It).
Niestety realnie, w naturze, i tak nikt nie ma gwarantowanego “prawa do bycia zapomnianym”.
2014-11-94 Absurdy idą już jak lawina… Artysta chce, aby usunięto złą recenzję. Wszystko przez absurdalne unijne prawo | Gadżetomania.pl.
Całkowicie zgadzam się z Jarkiem – sam mam podobne doświadczenia, i mam identyczne zdanie na temat takich “wynalazków”. Potrafi to być także bardzo dokuczliwe dla wykonawcy, kiedy pracuje on w trybie zleceniowym: pozwalanie na takie “zaburzenia zdrowego rozsądku” owocują na koniec zwykle poootwornym przesunięciem terminu odbioru systemu, czyli de facto terminu otrzymania upragnionych $$$ 😉 Zdarzyło mi się kilkukrotnie nawet zrezygnować z wykonania zlecenia z tego powodu – i to bynajmniej nie z chęci uchronienia zleceniodawcy przed kłopotami (jak najbardziej prawnymi), ale z chęci uchronienia swojej firmy przed utratą płynności finansowej 😉
Dobrze, Jarku, że napisałeś ten artykuł – może komuś to da trochę do myślenia.
W pełni się zgadzam z tym co napisałeś Jarku.
Niestety łatwiej zmieć oprogramowanie niż mentalność ludzi, która tworzy kulturę organizacyjna. W manualnych procesach biznesowy norma są rożnego typu obejścia, czy furtki do ułatwiania sobie pracy. Ktory pracownik chciałby z nich rezygnować? Szybko sponsor staje przed wyborem zmiana organizacyjna + nowy system lub tylko nowy system. Co najczęściej wybiera wszyscy dobrze wiemy.
Dodatkowo często klient traktuje analityka nie jako doradce a jako wyrobnika / skrybę (winy tego stanu rzeczy można szukać po obu stronach), co skutkuje tym, ze ignoruje jego rady i prawa fizyki są łamane.
Czasem w człowieku (analityku) coś pęka i sobie myśli “nie mój cyrk, nie moje małpy”. Jeśli klient nie chce uczyć się na błędach innych to będzie musiał na swoich (o ile w ogóle się kiedyś nauczy).
Ja przyjąłem zasadę, że w zarządzaniu wymaganiami rozdzielam wymagania biznesowe (to czego oczekuje zamawiajcy0 od specyfikacji rozwiązania (np. przypadki użycia i reguły biznesowe), to mi pozwala uczciwie skomentować np. takie “ujemne stany magazynowe”, przekazuję rekomendacje np. usunąć wzmaganie, podaję też ryzyka ich utrzymania. To jest uczciwy kompromis moim zdaniem, jednak tam gdzie ja jestem projektantem nie dopuszczam takich reguł.
Ciekawy artykuł, który dotyka wielu kwestii. W przypadku zarządzaniem oczekiwaniami klienta ważna jest umiejętność wytłumaczenia skutków: konieczność zmian, koszta, etc. Na moich klientów koszt bardzo ładnie działa. Niestety wielu programistów pracuje prawie za darmo i to oni uczą, że można zmieniać zakres prac non-stop. Ale to ich problem. Na stany ujemne jest taka funkcja jak backorders od wielu lat w erp, więc nie widzę tutaj problemu programistycznego.
Co do ukrywania się w sieci, też są konsekwencje. Jesli komuś naprawdę na tym zależy, trudno. Nie będzie zapraszany do wywiadów i innych komentarzy. Nowi będą mieli więcej przestrzeni.
Backorder to nie tyle stan ujemny co przyjęte i oczekujące zamówienie na towar, którego nie ma w magazynie. W prawie polskim (innych nie znam zbyt dobrze) obowiązek podatkowy istnieje wyłącznie w dwóch przypadkach: wydanie towaru lub przyjęcie pieniędzy. Wydać i zafakturować można wyłącznie towar posiadany, ewentualne przyjęcie przedpłaty na towar zamówiony wymaga wystawienia faktury zaliczkowej a nie zwykłej sprzedażowej (i nie ma dok. WZ). Fizyczny (remanentowy) ujemny stan w magazynie jest niedopuszczalny.