Jestem Paweł Fornalski i założyłem IAI S.A., spółkę notowaną obecnie na NewConnect. Oprócz zarządzania firmą jako CEO, jestem głównym architektem IAI-Shop.com, największej platformy do prowadzenia sklepu internetowego w Polsce. Inni mogą mnie znać również z jeszcze dawniejszych czasów, Portalu Hip-Hop.pl i innych portali społecznościowych. Na tym blogu, nie reprezentuję IAI tylko siebie i przedstawiam moje skrajnie subiektywne opinie na tematy związane z polskim e-commerce, e-business i nowoczesnym prowadzeniem firmy. W przypadku pytań służę pomocą na pawel at fornalski.pl
Paweł Fornalski | Create your badge
Blog > Komentarze do wpisu
Żelazny trójkąt - Meandry wdrożeń projektów informatycznych (cz. 2)

W poprzednim artykule omówiłem pokrótce sprawę wyceny projektu i starałem się przekonać do zasady, która mówi, że cena projektu powinna być uzależniona bezpośrednio od ilości pracy którą należy w niego zaangażować. Teraz chciałbym Ci wyjaśnić, dlaczego dzieje się tak, że projekt ma obsuwę czasową lub realizowany jest ze stratą. Na koniec wyjaśnię również czemu czasami projekt, z który kasujesz kopę siana i miał Ci pomóc zmienić samochód na lepszy, okazał się być fiaskiem finansowym.

Pan Joseph Phillips w swojej książce „Zarządzanie projektami IT" nazwał ścisłą zależność projektów IT żelaznym trójkątem projektów. Wyobraź sobie trójkąt równoboczny. Jego boki reprezentują czas, koszt i zakres funkcjonalny projektu. Projekt rusza i wszystko wydaje się być w równowadze, zaplanowałeś tyle czasu ile trzeba, wyceniłeś projekt, tak żeby opłacić pracowników i jeszcze zarobić i ustaliłeś zakres projektu. W trakcie realizacji, lub po niej, jeszcze przed oddaniem projektu np. strony lub sklepu klient zaczyna wymyślać, że chciałby dodać coś niewielkiego. Wydaje Ci się, że coś niewielkiego nie zagraża projektowi. Nic bardziej mylnego, właśnie zrobiłeś pierwszy ruch łopatą do wykopania sobie grobu. Przecież coś z pozoru niewielkiego może okazać się czymś wielkim. Jeżeli masz doświadczenie np. programowaniu wiesz, że czasami dodanie czegoś z pozoru nieistotnego potrafi zabrać kilka dni. Osoba nie mająca doświadczenia informatycznego nie jest w stanie sobie tego wyobrazić, ale programista bez wahania mi przytaknie.

Po pierwsze primo, jeżeli dodajesz coś do projektu, czego nie było w planie, nie robisz tego co powinieneś zrobić w ramach planu. Zatem albo przesuwasz termin oddania (tzw. ścieżka krytyczna) albo fundujesz sobie siedzenie po godzinach. Jeżeli między zadaniami występują jakieś dodatkowe zależności np. coś musi się skończyć by coś innego mogło się zacząć, właśnie z pozoru niewielka zmiana spowodowała całą lawinę zmian.

Po drugie primo, jeżeli płacisz pracownikom za przepracowane godziny, to właśnie dopłaciłeś kilkadziesiąt albo kilkaset złotych, jednym głupim „ok". Dodając zatem coś czego nie było w planie, wykonujesz pracę nadmiarową, za którą nikt Ci nie zapłaci. Jeżeli takich zmian wprowadzasz wiele, nie kontrolując i nie dyscyplinując zleceniodawcy, może się okazać, że projekt zajął Ci np. 20% więcej czasu. Jeżeli miałeś na projekcie zarobić 20% to właśnie na głupie zmiany, wydałeś swój zarobek i znajdujesz się w miejscu, w którym znajdowałeś się przed rozpoczęciem projektu. Jeżeli chcesz to zrobić, bo kochasz swojego klienta, to przynajmniej musisz mu uświadomić jaki prezent mu zrobiłeś. Zobacz na poniższy rysunek reprezentujący żelazny trójkąt projektu, kiedy rozszerza się zakres funkcjonalny. Kto zapłaci za zwiększone koszty? Zauważ że nawet, jeżeli klient zapłaci za dodatkowe zmiany, to czas nie wydłużył się. Ktoś zatem będzie musiał pracować po godzinach lub w większym stresie. A przecież miało być przyjemnie... czyli musisz również wydłużyć czas realizacji. Musisz też albo wyciągnąć dodatkowe pieniądze na pokrycie nadgodzin, albo uświadomić, że projekt przedłuży się np. o tydzień.

 

Żelazny trójkąt projektów IT
Kto zapłaci za dodatkowe zmiany? Jeżeli ty, uświadom klientowi, że robisz mu prezent.

W interesie projektantów, menedżerów e-firm a nawet klientów leży dokładne kontrolowanie zmian w projekcie i zrozumienie tej zależności. W książkach do zarządzania projektami zaleca się zbieranie na piśmie wniosków o zmiany i każdorazowe ich rozpatrywanie. Może się przecież zdarzyć, że zmiana nie będzie dodatkowo nic kosztowała, a zwiększy użyteczność i przydatność systemu, strony lub produktu. Nie tyle ważne jest zbieranie tego w postaci jakiegoś tam określonego formularza, co ważne jest samo zdyscyplinowanie i uświadomienie zarówno klientom jak i pracownikom, że wprowadzanie samodzielnie zmian do projektu, powoduje że może się on zakończyć fiaskiem, albo przestanie być pod koniec tak przyjemnie. Takie wnioski o zmiany przesyłane np. e-mailem, są lepiej dopracowane i klient za przysłowiowy tydzień nie wprowadzi zmian do swoich zmian.

Przykład
Opowiem może jak poradziliśmy sobie z tym w IAI-System.com. Otóż w naszym utrapieniem są klienci, którzy zamawiają standardowy sklep, ale po uzgodnieniu wstępnych oczekiwań i po zamówieniu sklepu, wymyślają coś, czego w systemie nie ma. W takiej sytuacji musimy to dodać do systemu lub przebudować. Jeżeli takich zmian jest kilka wdrożenie sklepu, które powinno zająć 2 tygodnie, potrafi wydłużyć się do 2 miesięcy (np. oczekiwanie na większe poprawki do systemu). Klient nam się rozmywał, bo 2 miesiące to całkiem sporo i zdarzało się, że komuś pierwszy entuzjazm do otwarcia sklepu mijał. Poza tym byliśmy na tym mocno stratni, bo pracowaliśmy bardzo dużo, by po paru miesiącach zainkasować niewielkie honorarium (standardową opłatę). Z drugiej strony wycena na poziomie np. 2000zł (standardowo 899zł) w przypadku standardowych klientów mogła ich odstraszyć. Bardzo długo szukałem rozwiązania tego problemu, aż udało mi się to samodzielnie rozpracować.

Jeżeli klient nie chce niestandardowego sklepu (wycenianego osobno na podstawie ilości godzin, które przepracujemy) to kasujemy go 899zł i przeznaczamy na pracę nad sklepem do 40 roboczogodzin. Jeżeli uda nam się zrobić coś w 20 to albo dodajemy coś ekstra, albo zapisujemy sobie to, że zostało nam 20 godzin i przy następnych zleceniach robimy coś gratis. W tym czasie jesteśmy w stanie przygotować projekty i wygenerować kompletny, indywidualnie wyglądający sklep. Jeżeli jednak klient chce coś zmienić np. wprowadzić top we flashu, wykonujemy to po tym jak uznajemy podstawową funkcjonalność sklepu za skończoną. Mieliśmy i takie zlecenia: „zróbcie mi top, gdzie ląduje helikopter, strzela hałbica, wyskakują żołnierze z helikoptera i strzelają", a przecież zrobienie takiej animacji samo w sobie może oznaczać 10 albo i 80 godzin pracy fleszowca. Sam to w tym momencie to projekt przekraczający wdrożenie sklepu IAI-Shop.com Dlatego przygotowujemy top np. w PNG i staramy się cały sklep uruchomić w 2 tygodnie od zamówienia. Później klient może zlecić nam wymianę topu na animację, po przesłaniu dokładnych wytycznych lub zgadzając się pokryć ilość godzin jaką przepracujemy podczas tworzenia. Może też zlecić to komuś innemu i przesłać go nam do podmiany. W ten sposób, zgodnie z obietnicą na stronie firmowej, po 2 tygodniach ma sklep, który może sprzedawać. Jeżeli nie spieszy mu się, nie musi go przecież wykorzystywać.

Po drugie wiadomo, że sklep jest uruchomiony i programista wie, że jego praca już się skończyła, a należy jedynie zaalokować czas fleszowcowi. Na tej podstawie łatwo mogę kontrolować rzeczywisty koszt projektu i oferować tanio kompletny sklep niewymagającym specjalnych kombinacji klientom, oraz dogadzać klientom lubiącym zmiany i przy tym gwarantując sobie zysk. Mogę też lepiej zarządzać czasem i zadaniami pracowników. Unikam też w ten sposób odpowiedzi na pytanie „Ile kosztuje sklep" w sposób „to zależy", podając cenę 899zł. W praktyce 99% projektów mieści się w tych 899zł, które podane są w cenniku. Wiele poprawek natury programistycznej np. zwracanie jakiegoś elementu do warstwy prezentacji robimy za darmo i klienci nic za to nie płacą. W takiej sytuacji mają uruchamiany sklep z zastrzeżeniem, że w menedżerze zadań wpisaliśmy zadanie programistyczne i zrealizujemy je np. po 2 tygodniach, nanosząc zmiany do obecnego sklepu.

Happy end
I wiecie co? Nasi klienci są teraz bardziej zadowoleni, pracownicy też, nie mówiąc o mnie. Przecież każdy lubi wiedzieć, że wszystko znajduje się pod kontrolą i czuć, że jego praca przynosi zysk, za który można pracować u siebie, a nie rozglądać się za pracą etatową. Taki układ powoduje też, że nasze działania są transparentne i klient doskonale wie z czego wynika cena. Np. nie boję się pytania, czemu top we flashu kosztuje więcej niż cały sklep.

Obiecałem również wyjaśnić w jaki sposób projekty ekskluzywne, kończą się klapą finansową. Sprawa jest prosta. Kasujesz klienta za dużo i wiesz o tym, więc na każdą jego zmianę zgadzasz się, sam też czasami przekraczasz to czego od Ciebie oczekuje. W efekcie projekt wymyka się spod kontroli, a ty to co miałeś zarobić straciłeś na przeróbki i poprawki.

C.D.N. już w poniedziałek. Dajcie też znać jak Wam się podoba tekst i przysyłajcie dalsze pytania.

sobota, 21 października 2006, pfornalski
Komentarze
Gość: br-design.pl, 213-192-121-122.softlab.gda.pl
2006/10/21 22:32:09
Nie no ja tu widze sporo lub, mimo ze artykul Ok.

Opisales Pawle przyklad gdzie klient wie czego chce, a ty wiesz jak go za to skasowac (np. ten fragment o animacji w topie), ale to nie jest zaden problem dla myslacych managerow.

Problem jest w momecie kiedy klient np. dzwoni i mowi "przesuncie mi logo 5 mm w lewo", ty dzwonisz do grafika i mowisz, "przesun logo 5 mm w prawo", grafik to robi i pisze/oddzwania "zrobilem", ty dzwonisz do klienta "zrobione", klient dzwoni "to moze teraz troche wieksze by je robic?". Ty dzwonisz do grafika...

2 dni, 16, godzin i 37 wykonanych połączeń w te sprawie póżniej...

"W sumie to chyba jednak ja bym zmienił te tło na ciemniejsze".

Wiadomo, nie powiesz klientowi ze przesuniecie logo w prawo kosztuje np. 200 zl (bo doskonale wiesz juz ze to sie na tym nie skączy, i mniej wiecej spedzicie nad tym razem 5 godzin i wydasz 50 zl na sam telefon do klienta) bo wtedy powie ze jesteś przynajmniej nie normalny i godzisz się na to i to jest klapa.

Z jednej strony nie chcesz odmawiać klientowi takich prostych rzeczy lub go kasować za to, z drugiej strony telefony, czas twój i grafika wprowadza naprawdę wielkie zmiany tak jak już o tym pisałeś.

Opisany przeze mnie przykład tyczy się grafiki, ale oczywiście równie dobrze może to być np. działanie koszyka (chociać klienci mają tendencje to wymyślania głównie przy grafice).

I jak uradzisz nas od tego Pawle? ;-)
-
2006/10/22 00:22:13
Nie ma złotego środka. Taki klient wymaga oczywiście taktu, jednak w granicach rozsądku. Nie jestem typem BOGU (Bend Over Grease Up) stąd tak radykalny artykuł jak fornalski.blox.pl/2006/09/Do-czego-jest-potrzebny-CRM.html

Z pewnością zawsze warto dokumentować zmiany, chociażby po to, aby w przyszłości klientowi móc powiedzieć wykonałem telefonów za 50zł i spędziliśmy nad tym parę godzin. Znam też sytuacje odwrotne, kiedy dobry klient przez lata nic nie zmieniał, a teraz jest lekko upierdliwy. Wtedy przymykam na to oko. To kwestia taktu i wyczucia, więc pozostawiam t każdemu do indywidualnej oceny. Mogę tylko napisać, że u mnie zadziałało tłumaczenie otwarcie i asertywnie tej prostej zasady, tak aby klient wiedział z czego żyję i kiedy będę go lubił a kiedy nie.
-
Gość: dwalendziak, dnk51.neoplus.adsl.tpnet.pl
2006/10/22 15:41:08
art. super, ale moze napisz cos o tym jak wygląda współpraca z programistami, dla których to ty jesteś klientem
-
Gość: janbloch, aku222.internetdsl.tpnet.pl
2006/10/23 13:51:55
Witam,
Po pierwsze gratuluję znakomitego bloga, miło się go czyta, dużo ciekawych, mądrych informacji. Fajnie, że pisze Pan też o swoim życiu prywatnym - to zawsze przyciąga. Jako polonista muszę jednak zwrócić uwagę na 2 błędy dość często powtarzające się na Pańskim blogu:
1. na prawdę piszemy naprawdę. Naprawdę!
2. po półtorej roku mówią osoby głównie kiepsko wykształcone, o co Pana nie posądzam. Po półtora roku to poprawne określenie. Ten rok, a nie ta rok.
Raz jeszcze gratulując bloga, kłaniam się nisko:)
-
2006/10/23 18:28:31
Dziękuję za poprawkę. Język polski być taka trudna sprawa :)
-
Gość: , xdsl-207.elblag.dialog.net.pl
2006/10/25 01:10:07
Really Great Blog!!

I read it everyday.

well as i asked you before and for sure nearly all the clients they ask, to their service providers.
How, can i or they be sure that your people work on my project? for the given period of time which is paid by me or by any of your clients?

This is a very hard thing to tell. The only thing comes here is trust but (do you trust your clients that, they will pay you or any other service providers?).
Are you sure that when you outsource some project to a programmer, are you sure that he or she is working on your project in the giving Paid time?

this is what i think Paweł. :)

My Best Regards to you and i hope one day you will write a very good book.
-
2006/10/25 11:16:52
Witam
to o czym piszesz to nic innego jak zastosowanie metodologi APM. Polecam zgłębienie tematu związanego z Agile (na początek agilemanifesto.org) - znajdziesz tam z pewnością wiele przydatny odpowiedzi.
-
Gość: Els, fdi250.internetdsl.tpnet.pl
2006/10/25 11:50:01
Witam.

Pawle, jedna zasadnicza uwaga. W pierwszej części artykułu piszesz:

"Gościu, który przychodzi do mnie do domu sprawdzić piec, skasuje za 10 minut roboty 100zł, w serwisie skasują 350zł za samo podpięcie komputera do samochodu. Informatycy tym czasem za miesiąc swojej pracy biorą 200zł. Nic dziwnego, że potem informatycy w Polsce traktowani są jak ludzie niższej kategorii."

Tutaj piszesz, że prawie wszystkie wdrożenia sklepu internetowego kosztują 900 zł. To taniej niż jeden iPod. Czy nie wydaje Ci sie, że sam sobie przeczysz? ;)
-
2006/10/26 00:12:12
To już temat na inną rozmowę. Pamiętaj że działamy w otoczeniu rynkowym i musimy "konkurować" z ofertami typu 30zł za oscommerce wystawiony na Allegro. Niemniej to zupełnie inna historia i jestem przekonany że to się akurat zmieni.
-
Gość: zx, eop71.neoplus.adsl.tpnet.pl
2006/10/26 09:07:25
-
2006/10/30 16:24:14
Czy rzeczywiście musimy? Klient który nie wie czego chce, jak sie natnie na sklepie za 30 zł, moim zdaniem po poznaniu "tematu", w końcu zdecyduje sie zapłacić wiecej i mieć pożądny sklep. To jak z tanim hostingiem, narzekamy, aż w końcu kupujemy coś pożądnego. Pozdrawiam, ciekawy blog.
-
2006/10/30 16:24:31
Czy rzeczywiście musimy? Klient który nie wie czego chce, jak sie natnie na sklepie za 30 zł, moim zdaniem po poznaniu "tematu", w końcu zdecyduje sie zapłacić wiecej i mieć pożądny sklep. To jak z tanim hostingiem, narzekamy, aż w końcu kupujemy coś pożądnego. Pozdrawiam, ciekawy blog.
-
Gość: Marcin, aajt218.neoplus.adsl.tpnet.pl
2007/06/11 20:58:40
Czy do roboczogodzin doliczacie takze czas konsultacji z klientem? Przykladowo klient prosi o jakas modyfikacje. Konsultacja zajmuje Wam 1 (rozmowa przez telefon, czytanie maila klienta i odpisywanie) a praca 2 godziny. Czy wtedy liczycie:
a) 3 roboczogodziny,
b) 2 roboczogodziny.

Jesli a) to:
Czy jesli klient chce standardowy sklep i przeznaczacie dla niego 40 godzin to doliczacie takze konsultacje przed zamowieniem? Wiecie, roznie jest. Czasami trzeba klientowi poswiecic 3-4 godziny czasu przed tym by dogadac z nim wszystko albo go przekonac do sklepu. W tym momencie teoretycznie powinien miec 36-37 godzin.

Jesli b) to:
W takim razie praca konsultantow, odpisywanie maili itd nie jest brane jako roboczo godziny. W takim razie jak traktujesz te prace bo wiadomo, ze spora czesc programistow traci np. 1-2 godziny dziennie na takie rzeczy. Oraz co robisz z klientami rozgadanymi/rozpisanymi, ktorzy leja duzo wody, opowiadaja ciekawe historie i sa malo konkretni i czasami wychodzi sytuacja taka, ze samo wykonywanie roboty to 50% czasu a kolejne 50% to konsultacja.
-
2007/06/12 11:39:26
Odnośnie pierwszego pytania, to czas rozmów nad daną poprawką jest wliczony do niej, podobnie jak czas testowania. Jest to zatem rzeczywisty czas jaki spędzamy nad danym zadaniem. Możliwe jest również podejście w którym liczy się 100zł/h i nie liczy czasu konsultacji, ale ja wolę aby klient miał świadomość. Niemniej za czas na konsultacje klient płaci tylko za skuteczne wdrożenie, czyli jeżeli zrezygnuje np. z jakiejś opcji, nie płaci również za czas konsultacji. Tak więc, odpowiedź a)

Jeżeli chodzi o pytanie a) to zauważ, że w cenniku mamy coś takiego jak stała opłata aktywacyjna 399zł. Jest to opłata właśnie za czas spędzony na wstępnych rozmowach, konfigurację wstępną, pracę przy domenach itp.
Nasi programiści oczywiście odpisują na trudne pytania techniczne, z którymi nie mogą sobie poradzić pracownicy działu wsparcia. Pieniądze na to bierzemy z abonamentów. Wysokość abonamentu jest zatem średnia czasu poświęcaną każdemu klientowi. W lipcu planujemy podwyżkę najniższego abonamentu z 99zł netto do 119zł netto i obniżkę najwyższego z 699zł do 599zł. Wynika to z tego, że policzyliśmy sobie, że coraz większy udział w kosztach ogólnych ma właśnie praca ludzi, a ta drożeje zatem musimy wykonać niewielką korektę opłat.