Sotia catre programator:
- Du-te si tu pana la alimentara si ia un salam! ..aa, si, daca au oua, ia 10.
- Ok pisi, sigur ca da
Merge programatorul la alimentara:
- Buna ziua, aveti oua?
- Da
- Atunci dati-mi va rog 10 salamuri
Geek joke
The customer is not a moron. She is your wife.
David Ogilvy
Ca unul care se afla de cele mai multe ori in rolul sotului din povestea de mai sus, si in urma numeroaselor explicatii si exemple pe care a trebuit sa le dau pentru a reconcilia cele 2 tabere din citatele de mai sus, m-am decis sa incerc acest mic ghid folositor atat celor care formuleaza cerinte pentru programatori, cat si acestora din urma, care trebuie sa le inteleaga. Ma voi focusa mai mult pe programarea web, deoarece aici am mai multa experienta.
Clientul spune, programatorul trebuie sa inteleaga:
- buton = orice zona dreptunghiulara pe care se poate face click
- in cat timp fi gata XYZ daca primesti toate materialele maine? = vei primi o parte din materiale cel mai devreme saptamana viitoare, si va trebui sa te descurci in acelasi deadline pe care-l dai acum
- mentenanta = tot ce-i poate trece prin cap clientului legat de produsul realizat (nenumarate modificari, noi feature-uri, ajustari grafice, update de continut etc)
- bug-fixing = ceva ce trebuia facut inainte de lansarea produsului, si care se efectueaza gratis dupa acceptarea lui
- quality assurance = ceva care se face pentru haine si masini, nu pentru produse software
- nu merge softul = folosind browserul firefox, dupa ce a instalat 50 de extensii, clientul a incarcat o poza 7200×5400 si a scris un text foarte scurt pe una din paginile statice. Ca urmare, layout-ul pentru acea pagina s-a deformat si nu se mai vede decat scrolland
- poze pentru site = orice poza, avand orice dimensiune si rezolutie. De exemplu daca e nevoie de poze landscape 320×240, o poza cu dimensiunile 120×600 e candidatul perfect.
- specificatii = Un document Word care contine un singur rand: “un soft care sa creeze o comunitate virtuala”.
Programatorul spune, clientul trebuie sa inteleaga
- buton = tagul html <input type=”button” />
- va fi gata in Y zile = va fi gata in 2xY zile
- mentenanta = rezolvarea bug-urilor critice in minim 1 saptamana de la sesizarea lor
- bug-fixing = ceva ce se face intotdeauna dupa lansarea oficiala a produsului
- quality assurance = daca utilizatorul se comporta exact cum s-a gandit programatorul, programul va functiona
- softul se comporta normal = pe o instalare de firefox identica cu cea a programatorului, se scrie un text de minim 10 randuri, se salveaza (fara poza), apoi se prelucreaza imaginea in Adobe Photoshop in asa fel incat sa fie de rezolutia 314×203 si sa aiba un chenar negru, se editeaza pagina salvata mai devreme, se uploadeaza poza si apoi se salveaza pagina din nou.
- poze pentru site = poze la dimensiunea 343×267, cu chenar alb, toate cu extensia “jpg” scris cu litere mici
- specificatii = document in care este descris pe 3 pagini A4 cum ar trebui sa arate o pagina HTML de 10 randuri
Sper ca in urma acestor lamuriri, este clar ca nevasta programatorului ar fi trebuit sa fie mult mai clara:
if(alimentara->items(”salam”).count() > 0) {
sot->cumpara(”salam”, 1);
}
if( alimentara->items(”oua”).count() > 0) {
if( alimentara->items(”oua”).count() < 10 ) {
sot->cumpara(”oua”, alimentara->items(”oua”).count());
} else {
sot->cumpara(”oua”, 10);
}
}
Related Articles
No user responded in this post
Leave A Reply