Pojęciem które zwykle wiąże się z przygotowaniem projektu jest specyfikacja, która to trafia do nas najczęściej w załączniku, lub po wcześniejszym zapytaniu o samą chęć podjęcia współpracy, bywa też tak genialna (zdaniem wysyłającego), że jest tajna i może być przesłana dopiero po podpisaniu umowy o poufności.
Wśród specyfikacji wyróżniłbym następujące typy:
Specyfikacja wirtualna
Jest to specyfikacja, która nie istnieje. Zwykle pojawia się kiedy ktoś ma jakąś wizję i jest napalony żeby jak najszybciej ją zrealizować, często jest gotowy uprościć ją do minimum byleby zacząć, a potem nie da już spokoju odkrywając przed nami coraz głębsze i co raz bardziej nietrzymające się kupy jej elementy. Wirtualna napisałem dlatego, żeby odróżnić ją od kolejnej sytuacji kiedy również nie ma specyfikacji, ale klient nie twierdzi że ma i nie twierdzi że wie :)Brak specyfikacji
Mam na myśli sytuację kiedy klient ma jakiś ogólny pomysł, a może nawet częściej potrzebę, ale nie zna się lub nie ma zamiaru narzucać szczegółów rozwiązania. Chociaż na pierwszy rzut oka mogłoby się wydawać, że to źle, to z moich doświadczeń wynika, że szczególnie przy małych i średnich projektach jest to najlepsze co może być. Narzucamy wtedy swoje rozwiązania o których mamy pojęcie i tłumaczymy mu tylko co i jak. Jeśli klient jest kumaty, to wszystko idzie sprawnie :) Piszę "kumaty", bo chodzi o to żeby łatwo rozumiał co mu mówimy i logicznie formułował swoje pomysły, a nie o to żeby znał się na komputerach...Specyfikacja baaaardzo szczegółowa
Chyba jako człowiek leniwy szczególnie takich nie lubię. Wygląda to zwykle tak, że ktoś opisuje bardzo szczegółowo oczywiste funkcje, a w skrajnych przypadkach powtarza te opisy dla każdego elementu np opisuje każdą podstronę która różni się tylko treścią i jeszcze robi do tego makiety najlepiej w jakimś programie, który do tego nie służy. W takiej specyfikacji autor objaśni nam, że jak w wyszukiwarce ktoś wybierze Warszawę to mają się pokazać oferty z Warszawy, a jak Gdańsk to z Gdańska. Czytanie czegoś takiego jest męką, tym bardziej, że połowę (jeśli nie całość) czyta się często nie mając nawet informacji o czym się czyta, ponieważ autor skupiony na szczegółach zapomniał wpisać tytułu, czy krótkiego wstępu. Jak się już człowiek zorientuje o co chodzi to wypada przeczytać od nowa ze zrozumieniem, a potem przed rozpoczęciem pracy wypadałoby wyłapać i wyjaśnić każdy szczegół, który:- powinien być zrealizowany inaczej z przyczyn obiektywnych jak np: są gotowe rozwiązania działające trochę inaczej (czasem lepiej), więc np ze względu na koszty i czas lepiej wziąć gotowiec
- jest niemożliwy do zrealizowania - kiedyś mi klient napisał że strona ma mieć ekran pożegnalny, który jak potem nieszczęsny zrozumiałem miał się pokazywać po jej zamknięciu :)
- wydaje się dziwny, niepotrzebny, wynikający z niewiedzy...
Specyfikacja "taka jak" oraz specyfikacja "taka jak sprzeczna"
Specyfikacja "taka jak" to krótkie pytanie w stylu: Ile kosztowałaby u pana strona taka jak allegro/maxmodels/grupon/facebook. W sumie należałoby do tego opatentować typ odpowiedzi "tyle co". I odpowiadać tyle co allegro/maxmodels/grupon/facebook. Nie są to takie złe tematy jeśli mamy na oku jakiegoś gotowca działającego podobnie, zwykle prostszego. Posyłamy linka do dema i jeśli klientowi to odpowiada to jest git... Jeżeli nie ma gotowca to pewnie jest to za duży projekt do realizacji przez freelancera.Specyfikacja "taka jak sprzeczna" to pytanie typu: chciałbym stronę coś jak nk.pl, lub wp.pl gdzie nie dostrzegamy żadnego podobieństwa poza dwuliterową domeną ;] W tej sytuacji proponuję poprosić klienta o przesłanie specyfikacji ;)
Specyfikacja marzeniowa
Widać, że autor specyfikacji siedzi w temacie i pomyślał o wszystkim. Pisze o systemie który ma wszystkie funkcje o jakich można zamarzyć, może być rozbudowywany na wszelakie sposoby, komunikuje się z innymi dzięki funkcjonalnemu api, może zmieścić nieograniczone ilości danych działając przy tym szybko i bez zakłóceń. Jest to połączenie najlepszych wzorców, funkcje są jakby zbitką najlepszych haseł wziętych z opisów różnych dużych CMSów, czy sklepów, które nawet w nich nie koniecznie w praktyce sprawdzają się tak dobrze. Dzisiaj miałem zapytanie w którym sklep miał obsługiwać 7 systemów płatności wymienionych z nazwy i oczywiście mieć możliwość łatwego dodania kolejnych - nie wiem komu jest potrzebne 7 systemów płatności w 1 sklepie? Co zrobić z takim zapytaniem? wpadłem na to klepiąc ten wpis - należy polecić firmę która specjalizuje się w obiecywaniu cudów, a potem instaluje gotowca i zmienia CSS, lub podzleca to zadanie. Ktoś jednak musi napompować tą realizację by jej wyjątkowość odpowiadała oczekiwaniom zleceniodawcy :)ps. obiecuję że się wezmę i napiszę coś przydatnego następnym razem