Nielen každý programátor, ale aj webdizajnér, grafik či murár má svoje spôsoby a metódy komunikácie. Ja sa snažím s klientom už na prvom stretnutí nastaviť postupy a dozvedieť sa čo najviac relevantných informácií na to, aby som dokázal načrtnúť jeho predstavu čo najreálnejšie.
Nedávno som pracoval na projekte, ktorý mal jednoduché zadanie - stiahnuť určité informácie z viacerých web stránok a zobraziť ich v zozname. To by bolo v poriadku, v zadaní od klienta však bola jedna netypická podmienka. Všetky informácie sa mali aktualizovať každých 30 sekúnd! A práve kvôli konkrétnym podmienkam klienta si vždy položím tieto tri otázky už na prvom stretnutí.
EXISTUJÚ NA TO TECHNOLÓGIE?
Už na začiatku je potrebné zistiť, či na danú úlohu existujú technológie a nakoľko reálne je jej úspešné vypracovanie. Niektoré technológie, ako sú napríklad rozpoznávanie obrazu s cieľom zistiť číslo a meno pretekára prebiehajúceho cieľovou páskou, alebo vycvičenie neurónovej siete na zisťovanie výšky napadaného snehu cez noc, sú aj napriek ich zložitému výkladu reálne. V tom konkrétnom prípade som si vystačil aj s klasickými technológiami, ktoré ponúka World Wide Web.
JE K DISPOZÍCII DOSTATOČNE VÝKONNÝ HARDVÉR?
Práve táto otázka bola pri spomínanom projekte tá najhlavnejšia. Stačilo len trocha matematiky a hneď sme vedeli, že to naozaj nebude jednoduché. Pre predstavu to vysvetlím na malom príklade:
- 40 webových stránok s informáciami
- 500 podstránok na každej z nich
- veľkosť 1 podstránky je 0,25 MB
- požadovaný obnovovací čas je 30 sekúnd
(40*500*0.25)/30 = 166MB/s
To znamená, že za 1 sekundu musíme stiahnuť 166 MB, na čo by sme potrebovali internet s rýchlosťou internetovej linky 1,2 Gbit, čo je pre väčšinu finančne nereálne. Jedinou možnosťou bolo ukázať zákazníkovi nereálnosť jeho požiadavky. Navrhol som riešenie, ktoré zodpovedalo obnovovaniu každé dve minúty, kde by sme sa vošli do dátového toku pod 0,33 Gbit.
SÚ NA TO KAPACITY?
Či už programujeme na vlastnú päsť, alebo sme začinajúca firma, naše personálne kapacity hrajú kľúčovú rolu. Aj programátori sú ľudia, a tak je nemožné, aby jediný človek sedel za monitorom do hlbokej noci. Preto je potrebné si predbežne odhadnúť čas strávený prácou na projekte. Skúsenosti z predošlých projektov mi pomohli identifikovať potrebný časový rozsah jednotlivých úloh. Na začiatku, keď som tieto skúsenosti ešte nemal, som si každý projekt rozložil na čo najmenšie časti a tak definoval približný čas trvania.