Tak więc nie raz dedykowane rozwiązanie jest lepsze mimo, że może być kosztowniejsze ale tu wraca jak bumerang to czego prawie nikt nie robi przy projektach IT: analiza strategiczna firmy i budowa scenariuszy rozwoju a potem dopiero wymagania na system IT.
Swego czasu popełniłem artykuł o dedykowanych systemach zatytułowany Schyłek
epoki krawców. Była to polemika z wypowiedzią Prezesa jednej z firm IT, który
oświadczył: "Powoli odchodzi się od rozwiązań szytych na miarę.
Dawniej byli krawcy i im zlecało się robienie garniturów. Teraz po prostu
krawców już nie ma". I nadal uważam (mimo, że artykuł uzyskał dość
niska ocenę u czytelników), że epoka krawców nie odeszła!
Dzisiaj będzie o strategii firmy. Najogólniej rzecz ujmując (A.A. Thompson,
A.J. Strickland 1996) Strategia jest: 1) planem działania; 2)
odzwierciedla wzorzec zarządzania w sferze rynku; 3) wskazuje jak wypełnić
misje i osiągnąć założone cele.
Ja nadal uważam, że liderzy rynku to firmy korzystające z usług "krawców"!
Na forach internetowych i blogach pojawiają się dyskusje na temat analiz
wymagań, jakości oprogramowania, projektowania systemów itp. Motorem tych
dyskusji są pojawiające się od czasu do czasu informacje o kolejnych
nieudanych projektach zarówno tych wdrożeniowych jak tych strategicznych (w
sensie doradztwa strategicznego).
Ostatnimi czasy przybywa zwolenników teorii, że systemy dedykowane dla biznesu
odejdą w niebyt. Ciekawe jest jednak to, że lansują tę teorię tylko
dostawcy gotowych, ewentualnie tak zwanych parametryzowanych systemów wdrażanych
zresztą także nie małym wysiłkiem i współtworzących także
tę niechlubną czarną statystykę nieudanych projektów IT.
Ale co to jest ten system dedykowany? Pisany od zera? Nie! Dziś nikt rozsądny
nie pisze systemów dla biznesu od zera czyli nie startuje od
pustego ekranu. Jak rozumiemy pojęcie systemu dedykowanego? System
dedykowany moim zdaniem to taki, który powstał z myślą o konkretnej firmie.
Czy trzeba go pisać od zera?
Specyfiką firmy są dane i ich "inność" wynikająca np.
z modelu biznesowego czy np. specjalnie opracowanej metody współpracy z kontrahentami.
Może to
być specyfika rozliczeń z kontrahentami, dedykowany model samoobsługi przez
sieć i wiele innych. Specyfiką firmy jednak (raczej) nie jest to, że faktury wystawia
czy to, że ma magazyn. Te moduły czy komponenty z reguły są już kiedyś
zrobione i pisanie ich jeszcze raz
nie ma sensu i dzisiaj żadna rozsądna firma
z doświadczeniem nie tworzy tych elementów systemu od zera. Ma swoje lub kupione i sprawdzone
biblioteki, komponenty, te które z wielu powodów są powtarzalne (np. ustawa o
rachunkowości jasno precyzuje jak wystawić fakturę). Powtarzalne są także
elementy zapewnienia bezpieczeństwa, interfejs użytkownika itp.
Niektóre nowe systemy "gotowe" to tak na prawdę taka właśnie "kupa
bibliotek i komponentów" z "motorem systemu", który jest
czymś pomiędzy systemem gotowym a pisaniem go "od zera".
Więc jak?
Ano, nie ma moim zdaniem jedynie słusznej decyzji. Firma musi sobie sama
odpowiedzieć na ile jest specyficzna i na ile ma sens
wdrażanie gotowego systemu albo po prostu zatrudnić analityka i wykonać
analizę biznesową i systemową.
Stale dziwi mnie to, że tak wiele firm podejmuje decyzje o zakupie tak
zwanego gotowego
systemu nie mając analizy wymagań i oceny progu rentowności. Na jakiej podstawie ta decyzja?
Rozsądniej było by może:
- przeprowadzić analizę biznesową, określić zakres projektu,
- przeprowadzić analizę wymagań i opisać nie tylko oczekiwania w
stosunku do systemu ale także cel jaki firma chce osiągnąć z pomocą
nowego systemu by ocenić próg rentowności projektu,
- przeprowadzić wybór dostawcy pytając ile będzie kosztowało osiągniecie
powyższych wymagań nie decydując z góry czy ma to być system gotowy czy
dedykowany bo skąd gwarancja, który będzie mniej korzystny.
Mój ostatni projekt developerski plus kilka analitycznych (modele procesów i wymagania)
potwierdzają moje wcześniejsze przypuszczenia. Niektóre firmy mają skuteczna
strategię rynkową polegającą na stałym powiększaniu luki do lidera (ich dystans
do konkurencji). Ogólnie rzecz biorą polega to na tym, by utrudnić konkurencji szybkie skopiowanie
naszego produktu. Jak? Jeżeli elementem tego
produktu jest np. sposób świadczenia usługi to:
- system standardowy czyli dostępny na rynku może kupić niemalże natychmiast
każdy konkurent,
- system dedykowany jest trudny lub nawet niemożliwy do szybkiego skopiowania (chodzi o uzyskaną
dedykowaną funkcjonalność)
Inaczej rzecz ujmując zbudowanie systemu dedykowanego (co by to nie miało tu znaczyć) daje dużą szansę,
że konkurencja będzie miała duży problem z szybkim jego "zmałpowaniem"
czyli użyciem standardowego, dostępnego na rynku systemu i co jeszcze gorsze, referencyjnych rozwiązań.
Zakup takiego "gotowca" to nic innego jak podkładanie się, bo konkurent kupi to
samo na rynku bez większego wysiłku. Powiem więcej, dostawca takiego gotowca,
jak tylko skończy go wdrażać sam pobiegnie do naszych konkurentów oferując
im "branżowe,
prekonfigurowane rozwiązania do szybkiego wdrożenia".
Implementacja dedykowanego systemu
Moje doświadczenie wskazuje między innymi na to, że największej
"odkrytych" podczas wdrożenia "nowych potrzeb" dotyczy danych i ich formatów oraz dedykowanych procedur. Dlatego w środowisku developerów
coraz częściej słyszy sie o analizach i wdrożeniach (tworzeniu) nowych
systemów zorientowanych na model dziedziny, która to właśnie najczęściej
kryje tę
"specyfiką" firmy a wykonanie takiej całościowej analizy
zabezpiecza przed takim "odkryciami" niemal zupełnie.
Spotkać można w literaturze i nie tylko opis czterowarstwowego modelu aplikacji gdzie druga od dołu
warstwa to właśnie warstwa modelu dziedziny. To tu zawarta jest specyfika modelu biznesowego, przetwarzane informacje i reguły biznesowe. Jest to także najważniejsza warstwa aplikacji i projektu zarazem. Tak więc powielenie jej w kolejnej firmie,
u kolejnego klienta, wraz z gotowym systemem, czym jest?
Jestem zwolennikiem tezy, że to model biznesowy jest źródłem przewagi na rynku a nie użyte narzędzia czy same produkty. Jednak system informacyjny firmy wspiera ten model (no często tak jest lub powinno być).
Wśród wielu wzorców projektowych, opisanych między innymi przez Fowlera, jest jeden bardzo skuteczny i zalecany: wzorzec modelu dziedziny. Szczegóły w książce ogólnie rzecz polega na tym, że projekt systemu zaczynamy od wykonania analizy systemowej i modelu biznesowego firmy nad którym dopiero nadbudowujemy aplikację. Ale temat wzorców projektowych i dedykowanych
systemów to już inny artykuł ;), pojawi się niedługo....