Wszyscy wiemy, że projekty IT bardzo często kończą się niepowodzeniem. Wiemy również, dlaczego tak jest. Dziś chcielibyśmy jednak na temat nieudanych wdrożeń spojrzeć z nieco innej perspektywy - przyglądając się im od podstaw. To właśnie na początkowym etapie projektów bardzo często dochodzi do wielu nieporozumień na linii klient - dostawca oprogramowania, a te niejednokrotnie sprawiają, że cały projekt kończy się fiaskiem. Co zrobić, aby tak nie było?

Kryterium gotowości w projektach IT

Wdrożenie oprogramowania (a zwłaszcza systemu e-commerce) rządzi się swoimi prawami. Zazwyczaj trwa od kilku do nawet kilkunastu miesięcy, podczas których zmieniają się zarówno wymagania projektowe, jak i sam skład osobowy - po stronie klienta i firmy wdrożeniowej. W spotkaniach, podczas których omawiany jest zakres funkcjonalny systemu, bierze udział wiele osób i jak się później okazuje - każda z nich zupełnie inaczej interpretuje podjęte ustalenia. Właśnie w ten sposób rodzą się nieporozumienia, a ostateczny kształt projektu znacznie rozmija się z jego początkową wizją. Zmarnowany czas, pieniądze oraz cierpliwość sprawiają, że frustracja obu stron narasta, a szanse na wdrożenie projektu zgodnie z przyjętymi na początku założeniami spadają do zera.

Aby tego uniknąć, coraz więcej firm decyduje się na zastosowanie charakterystycznych dla metodyk zwinnych kryteriów DoR (Definition of Ready).  DoRy stanowią podstawę metodyki Scrum, a sama specyfika projektów IT wręcz wymusza stosowanie ich na co dzień. Dlaczego? Ponieważ coraz więcej firm przyznaje, że od samego dostarczenia projektu o wiele ważniejsza jest jego jakość.

Scrum - metoda wytwarzania oprogramowania opartego o iteracyjno-przyrostowe ramy postępowania. Ma on zastosowanie w realizacji projektów w oparciu o metodyki zwinne zgodne z manifestem Agile.

Agile - programowanie zwinne, stanowiące alternatywę dla tradycyjnych metod kaskadowych. Metodologia ta wyróżnia się zdyscyplinowanym procesem zarządzania podczas produkcji oprogramowania, który zakłada częste inspekcje wymagań  i rozwiązań, a także kładzie spory nacisk na procesy ich adaptacji.

Rolą DoRów jest określenie wszystkich cech, jakie musi posiadać zadanie, aby mogło zostać przyjęte do realizacji. Pozwalają one na “odsianie” zadań źle lub niejasno zdefiniowanych i decydują o tym, czy i kiedy dane zadanie może wejść do sprintu.

Sprint - główny element zwinnych metodyk wytwarzania oprogramowania. To stały przedział czasowy trwający do jednego do czterech tygodni, w ramach którego powstaje działający i wdrażalny przyrost oprogramowania.

Definicja gotowości (i związane z nią jasne wytyczne projektowe) to jeden z czynników wspierających samoorganizację zespołów. Pozwala ona na łatwą priorytetyzację zadań, a dodatkowo uniemożliwia osobom spoza zespołu wpływanie na kolejność ich realizacji.

Czym jest DoR?

Aby określić, czy zadanie jest gotowe do przyjęcia do realizacji, zespół scrumowy każdorazowo musi przejść przez następujący proces:

  • zapisanie wymagania jako user story (prostego i krótkiego opisu oczekiwań, jakie względem funkcjonalności ma klient/potencjalny użytkownik systemu);
  • estymacja czasu potrzebnego na realizację wymagania;
  • zmieszczenie wymagania w ramach jednego sprintu (lub podzielenie go na kilka mniejszych etapów).;
  • zdefiniowanie kryteriów akceptacyjnych wymagania.

Przejście tego procesu sprawia, że podczas pielęgnacji backlogu produktu zespół jest w stanie dokładnie określić, czy jego poszczególne elementy wymagają dalszego doprecyzowania lub całkowitej dekompozycji, czy też są gotowe do realizacji i można rozpocząć planowanie ich wdrożenia.

Backlog - spriorytetyzowana lista wszystkich zadań, jakie powinny być wykonane, aby otrzymać produkt. To jedyne źródło wymagań dla wszelkich zmian, które należy wprowadzić do produktu i podstawa wymagań klienta wobec jego ostatecznego kształtu.

W trosce o dostarczenie klientowi rozwiązania najwyższej jakości, firma wdrożeniowa powinna, jeszcze przed zgłoszeniem swojej gotowości do jego realizacji, zadać sobie kilka kluczowych pytań:

  • Dlaczego decyduje się na realizację danego projektu, jaki cel chce osiągnąć?
  • Co ma być końcowym rezultatem zadania, jaką wartość ma ono za sobą nieść?
  • Jak zrealizować to zadanie, w jaki sposób je wdrożyć, czy jego realizacja jest zgodna z polityką firmy i całym, wdrażanym przez nią systemem, jak wpłynie ona na pozostałe projekty, jakie zasoby potrzebne są do realizacji projektu?

Odpowiedzi na powyższe pytania są bardzo ważne - sukces każdego z projektów uwarunkowany jest bowiem nie tylko jego odpowiednim zdefiniowaniem i zrozumieniem, ale także, a nawet przede wszystkim, gotowością firmy wdrożeniowej do podjęcia się jego realizacji. Właśnie dlatego warto wziąć pod uwagę swoje doświadczenie, możliwości, chęci, motywacje, a także warunki zewnętrzne, niezbędne do prawidłowego wdrożenia projektu.

Jeśli zespół w pełni rozumie daną potrzebę/ problem, a po ukończeniu prac nad konkretnym obszarem jest w stanie z łatwością określić czy potrzeba ta została zaspokojona (czy problem został rozwiązany), to możemy z całą pewnością przyznać, że DoR został dobrze opracowany.

Definition of Ready w praktyce

Droga, jaką przebyliśmy w merce.com do momentu zastosowania kryteriów DoR była długa, ale też bardzo pouczająca. Przez wiele lat w naszych projektach stosowaliśmy analizy przedwdrożeniowe, charakterystyczne dla kaskadowego modelu wytwarzania oprogramowania. Nawet później, pracując już zwinnie, w trosce o najwyższą jakość wdrożenia i satysfakcję klienta, wciąż przeprowadzaliśmy analizy przedwdrożeniowe. Niestety, z uwagi na okres połowicznego rozpadu wymagań względem systemu IT, to podejście okazało się niewłaściwe.

Analizę przedwdrożeniową wyróżnia to, że dotyczy całego projektu. Traktuje szczegółowo o każdym obszarze wdrożenia jeszcze przed jego realizacją, a więc nie ma prawa przewidzieć, jak ostatecznie jedne elementy systemu wpłyną na pozostałe. Jej celem jest przygotowanie do wdrożenia oraz zrozumienie procesów zachodzących wewnątrz firmy i jej oczekiwań względem projektowanego rozwiązania. Wszystko to jednak stanowi tylko idylliczną wizję, która w rzeczywistości wcale nie prezentuje się tak dobrze, jak powinna. Już w trakcie prowadzenia analizy lub tuż po jej wykonaniu część wymagań dotyczących systemu się dezaktualizuje. Zmieniają się oczekiwania przedsiębiorstwa, a projekt zaczyna żyć własnym życiem. W efekcie dochodzi do sytuacji, jakich analiza nie mogła przewidzieć, a w projekcie pojawiają się błędy. Koniec końców klient płaci za projekt, z którego nie jest zadowolony i który już chwilę po wdrożeniu wymaga zmian i zaadaptowania do nowej rzeczywistości.

Zastosowanie DoRów pozwala podzielić projekt na mniejsze części i działać bardziej zwinnie. Co nam to daje?

  • Możliwość skupienia się na efekcie, jaki powinno zagwarantować dane rozwiązanie, a nie na samym rozwiązaniu (fokus na cel, a nie sposób jego realizacji).
  • Możliwość płynnego adaptowania projektu do zmiennych oczekiwań klienta.
  • Pewność całkowitego zrozumienia potrzeb i celów klienta.
  • Pełną kompatybilność wszystkich elementów składowych systemu.
  • Zakończenie każdego wdrożenia sukcesem.

Jak dobrze stosować kryteria gotowości?

Stosowanie kryteriów gotowości w naszych projektach potraktowaliśmy jako inwestycję. To inwestycja w dobre user stories oraz mądrą organizację zadań, za której brak można naprawdę słono zapłacić. Co zrobić, aby mieć pewność, że będzie ona udana?

  • Realizować zadania, które są w pełni niezależne i stanowią wartość samą w sobie.
  • Być otwartym na negocjacje w zakresie sposobu wykonania zadania - dopóki wiemy co i dlaczego musi być wykonane, sposób, w jaki to zrobimy, powinien być traktowany tylko jako środek umożliwiający realizację celu.
  • Upewnić się, że wartość płynąca z realizacji projektu jest w pełni widoczna i zrozumiała dla interesariuszy.
  • Oszacować poziom złożoności i czasochłonności prac.
  • Skupiać się na realizacji małych, możliwych do wykonania w ramach jednego sprintu zakresów prac.
  • Testować wykonane projekty, upewniając się, że spełniają one kryteria akceptacji i realizują założone cele.

Wykorzystanie DoRów pozwala nam realizować projekty z sukcesem, a naszym klientom daje gwarancję satysfakcji.