Ciekawe
jest to, że dostawcy i wykonawcy oprogramowania często zawyżają wartość
swoich usług w zasadzie na życzenie zamawiających. Robią nie ze
złej woli, robią to bo zamawiający niejako sami o to proszą.
Dyskutuję przy okazji projektów z wieloma programistami, projektantami, wdrożeniowcami i
prawie wszyscy mówią jedno: to zamawiający ma określić swoje
wymagania, jeśli określi jej zbyt ogólnikowo musimy w ofercie założyć margines bezpieczeństwa kosztów na wszelkie zmiany i uściślenia
jakie klient najprawdopodobniej wniesie podczas realizacji tak słabo udokumentowanego projektu.
Korekty będą na pewno bo na podstawie "jednej strony" opisu wymagań nie da
się stworzyć miarodajnego projektu, twórca oprogramowania będzie więc gdybał na
koszt zamawiającego. To z tego powodu, moim zdaniem, popularne są metody
odkrywania wymagań poprzez kolejne prototypy. Programista sam nie
określi wymagań ale będzie żądał pieniędzy za te prototypy no
bo przecież nie będzie dopłacał do swoich usług.
Czy tu
ktoś kogoś naciąga? Absolutnie nie! Albo inaczej: taki „oszczędny”
zamawiający naciąga sam siebie...
Zapytałem
na tym forum: kto więc ma określić wymagania na oprogramowanie czy
serwis WWW? Padła zgodna odpowiedź: zamawiający. A jak nie
potrafi? To niech sobie kogoś do tego wynajmie. Padło także inne
ciekawe stwierdzenie: wykonanie kosztorysu i harmonogramu (np. jako
oferta na przetarg czy konkurs) wymaga szczegółowego opisu co ma
zostać wykonane. Jeżeli zamawiający nie potrafi sam takiego
szczegółowego opisu wykonać powinie kogoś zaangażować.
Zapytałem, jak? Znowu w drodze konkursu lub przetargu? Zgodnie usłyszałem: NIE!
Bo wygra najtańszy a to nie wróży dobrze, ma być najlepszy bo im
lepszy opis tym tańsze oferty złożymy. Ciekawe nie?
No tu
zapytałem dlaczego. Odpowiedź: dobra dokumentacja wymagań to także
dobra wycena, która wtedy nie wymaga nakładania wielu dodatkowych
narzutów na wszelką niewiedzę i prototypy. Klienci tak na prawdę
zawsze zapłacą za całość wykonanej pracy czyli spędzone
roboczo-dni (podobno programiści i firmy IT raczej nie dopłacają
do interesu). Rzecz w tym, że jak nabywcy źle udokumentują
wymagania to zapłacą za wszelkie niepowodzenia i dodatkowe prace.
Skąd
ta dyskusja? Niedawno miałem przyjemność wzięcia udziału w
dyskusji na forum programistów zapoczątkowanej lakonicznym pytaniem:
Zlecę
wykonanie małego serwisu www. Planuję utworzenie serwisu z
lokalnymi informacjami kulturalnymi bądź społecznymi. W serwisie
znajdą się elementy takie jak:
- wydarzenia
- kalendarz
wydarzeń
- forum dyskusyjne
- ogłoszenia
- profile
użytkowników
- galeria
- artykuły
- + kilka innych,
typu "kontakt", "cennik", etc.
proszę o oferty.
Pierwszy post z
odpowiedzią na to zapytanie:
Klient
pisze "mały", żeby podkreślić, że mało zapłaci.
Podobne w brzmieniu są teksty tupu: "dla fachowca to 5 minut
roboty", "Cóż to jest postawić kilka kresek w korelu",
"chcemy dokonać drobnej korekty" (i litania na 100 stron),
i tym podobne...
Jak
widać, Ci ludzie mają chyba duże doświadczenie z takimi
zamawiającymi. Szczególnie tymi, którym się wydaje, że np.
freelancer to desperat, który zrobi wszystko za jałmużnę (to głos
z tego forum). Sam zresztą coś takiego kiedyś usłyszałem,
negocjacje skończyłem dość szybko a jak potem się okazało
pracownicy tej firmy sami opisali wymagania bo prezes nie dał na to
budżetu, niestety słono zapłacił wykonawcy za kilka wersji oprogramowania
i przedłużające się prace.
Co o
tym sądzić? Z rozmów i doświadczeń wielu ludzi na tym forum i
nie tylko tym można ciekawy wniosek wyciągnąć. Obawiam się, że
menedżerowie dużych firm i korporacji, publikujący specyfikację
wymagań w postaci niemalże kilku czy kilkunastu zdań zrzucają
odpowiedzialność za to co otrzymają (za otrzymane oprogramowanie)
na dostawcę, ten ostatni więc narzuca „swoje 1000% marży” na
zapas. Zamawiający o tym wie ale godzi się bo za te marżę zrzucił
odpowiedzialność z siebie na dostawcę zaznaczając, że przecież
ogłosił konkurs ofert (lub przetarg) i wybrał najkorzystniejszą.
Co
ciekawe wielu ludzi w mniejszych firmach nie zdaje sobie chyba sprawy
z tego zjawiska i naśladuje te praktyki „większych kolegów”
widząc tylko treść takich zapytań ale nie widząc już ich
skutków (do których mało kto się zresztą przyznaje). Spisując
swoje wymagania np. na przysłowiowej już „jednej stronie A4”,
są jednak szczerze zdziwieni jak zobaczą cenę bo nie rozumieją
jej wysokości. Wtedy uciekają się do szukania tanich programistów,
w końcu „to proste oprogramowanie do wykonania”. Skutki wielu z
nich zna: pieniądze wydane a oprogramowania gotowego do pracy nie
ma, w przypadku stron i serwisów WWW kończy się to często jakimś
żałosnym portalem, z którego drwią użytkownicy ale nie ma już
budżetu na stworzenie lepszego.
Co
zrobić? Posłuchać programistów: dać im porządnie opracowane
swoje wymagania nie zapominając, że z reguły oni tego nie lubią
robić sami. Jak ich zmusić, to będą po protu podejmować kolejne
próby na podstawie kolejnych życzeń zleceniodawcy (to projekty
„czas i materiał”) lub powiedzą, że poza tym co wykonali
niczego więcej się nie da. Ta druga wersja to projekty „stała
cena za dzieło”. Ogłaszając konkurs na wykonanie takiej
specyfikacji wymagań należy się zaś kierować głównie
rozsądkiem a nie ceną.