Pentru a avea o imagine cât de cât mai clară, trebuie lămurite nişte lucruri.
Programatorul este o persoană care scrie texte sursă, mai bune sau mai proaste, după cum ştie meserie sau este mediocru şi plin de el. la viaţa mea am văzut foarte mulţi programatori.
Programatorii profesionişti sunt cei care au fost instruiţi la cursuri, au facultate de specialitate şi au lucrat la proiecte de succes, dovedind că înţeleg corect problemele şi scriu texte sursă acceptate ca fiind de foarte bună calitate, de către cei ce gestionează proiectele. Ei sunt punctuali, ştiu să-şi îmbunătăţească programele şi au un nivel foarte bun al dialogului cu ceilalţi membri ai echipei.
Programatorii autodidacţi sunt cei care nu au pregătire în domeniul informaticii, dar care sunt suficient de ambiţioşi în ale perfecţionării, fie prin a citi de pe Internet tot felul de documentaţii, fie prin a lucra programe după ureche sau după ce au citit cărţi în care sunt date fragmente de programe. Ei trebuie evaluaţi nu după vorbe, ci după calitatea programelor scrise de ei. Trebuie analizate textele sursă scrise de ei şi trebuie făcută diferenţa între ceea ce au luat ei de pe Internet ca open source şi ceea ce ei au scris. De multe ori, programatorii autodidacţi se laudă cu cea ce au scris alţii.
Ciclul de dezvoltare software este format din toate etapele care permit realizarea de produse software. Fiecare etapă se descrie prin: resurse necesare, durate, persoane implicate, riscuri, eficienţă, intrări şi livrabile. Este important să se stabilească modul în care etapele sunt apreciate ca fiind de calitate sau având cusururi, ceea ce le-ar cataloga ca fiind fără calitate, ceea ce duce la insuccesul întregului ciclu de dezvoltare.
Calitate software privită ca totalitatea însuşirilor tehnic, economice şi sociale cu care este înzestrat un produs software destinat a soluţiona probleme ale utilizatorilor. Acum, calitatea este privită cu totul altfel decât acum 50 de ani, când programarea era considerată o artă sau ca acum 25 de ani când programatorii erau tot timpul alături de utilizatori şi programul nu lucra independent ca azi şi nici nu alocau automat resurse aşa cum se întâmplă azi, când se fac plăţi pe Internet şi sunt conduse procese sau se fabrică piese sau este asistată conducerea automată a avioanelor.
Metrica de calitate este privită ca un sistem de indicatori puşi în corespondenţă cu caracteristici de calitate software. Metrica trebuie să fie acceptată de cei care o utilizează şi aceştia trebuie să aibă încredere în ea. Metrica software nu trebuie să fie extrem de sofisticată, iar achiziţia de date trebuie să se facă automat. Trebuie ca valorile numerice date de indicatori să fie puse în corespondenţă cu niveluri calitative şi oamenii trebuie să fie instruiţi să folosească rezultatele oferite de o metrică. Dacă metrica se utilizează de dragul de a avea justificări, fără a avea un rol activ, mai bine o lăsăm baltă, că muncim degeaba. Metrica se foloseşte ca un instrument care ne ajută, dacă suntem cu creierul la noi, să facem produse software mai bune, mai ieftine şi să fim mai buni pe piaţa software.
Sistemul de indicatori se construieşte aşa cum crede fiecare utilizator sau fiecare dezvoltator sau fiecare investitor, în funcţie de scopul urmărit. Un acelaşi produs software are propriul său sistem de indicatori, căci fiecare utilizator al sistemului de indicatori, fie că el este utilizator de produs software, fie că este dezvoltator, fie că este investitor, fie că este administrator, după cum acesta îl vebe, în raport cu obiectivul urmărit. De aceea nu este deloc important fundamentul pe care se construieşte sistemul, dacă acela care l-a construit crede cu tărie că face un lucru bun.
Stabilitatea indicatorilor este pusă în evidenţă de utilizatorii de indicatori atât timp cât aceştia nu simt nevoia de a schimba structura expresiei analitice, modificare procedurii de culegere a datelor sau modalitatea de a pune în corespondenţă a intervalelor numerice unde se plasează valorile indicatorii, cu niveluri calitative. Oamenii sunt cei care dau stabilitate indicatorilor, exact aşa cum este cu termometrul care arată că tot ce este peste 36 de grade sau sub 36 de grade este nasol.
Echipa de dezvoltatori este formată din programatori, designeri, testări, analişti, implementatori, autori de specificaţii, autori de documentaţii, manageri de calitate şi multe alte categorii. Calitatea echipei este dată de calitatea şi de experienţa fiecărui membru al său. Dacă uneori se pune accent pe caracterul compensatoriu, se face eroare, căci un programator foarte bun nu are cum să compenseze un designer prost, în timp ce un programator excelent compensează un tester mediocru, căci face el însuşii testare.
Utilizatorii sunt cei care dau sau nu verdictul bun asupra calităţii unui produs software. Ei sunt cei care evaluează produsul în raport cu ceea ce sunt ei înşişi. dacă dezvoltatorul nu studiază grupul ţintă şi construieşte produsul pentru un utilizator abstract, va avea surpriza ca utilizatorii reali să respingă produsul. Acum când un produs e pus pe Internet şi utilizatorii sunt de nivelul miilor sau zecilor de mii, este extrem de important ca dezvoltatorii să ştie profilurile utilizatorilor şi să facă produsele special pentru aceştia.
Interfaţa este esenţială pentru a face ca un produs software să fie atractiv. Utilizatorul trebuie să aibă senzaţia că produsul a fost făcut pentru el. aşa ceva se produce dacă şi numai dacă dezvoltatorul studiază profilurile de utilizatori şi oferă fiecărui profil exact ceea ce respectivul are nevoie. Dacă se cere vârsta utilizatorului, se va produce adaptarea conţinutului la vârstă. Unui utilizator de peste 90 de ani îi vom oferi un text cu un font ceva mai mare. Dacă produsul are o bază de date care contorizează erorile făcute de fiecare utilizator, i se va oferi acestuia teste mai simple la erori numeroase, pentru a-l face un pic mai fericit. Unui utilizator cu puţine erori i se va creşte gradul de dificultate şi tot aşa.
Validarea datelor de intrare este esenţială. Am văzut mulţi programatori care nu fac validări. Era un programator arogant care nu valida numele şi nici prenumele. Am introdus numere, am introdus caractere speciale. El a rămas ca la dentist. Validarea se va face analizând dacă sunt numai litere, dacă nu sunt litere repetate de mai mult de două ori, dacă primul caracter este o literă mare. Ar fi de-a dreptul crocant dacă dezvoltatorul ar avea o bază de date de prenume şi dacă s-ar cere utilizatorului să confirme că sirul de litere introdus este cel dorit, după ce verificând în baza de date proprie, nu se găseşte nici un element.
Efortul de utilizare este extrem de important şi dezvoltatorul trebuie să ştie că utilizatorii au limitări de resurse, ei nu trebuie să piardă timpul cu acomodarea cu produsul. Am văzut produse software prost elaborate care nu-l atenţionează pe utilizator că trebuie să aibă o imprimantă. Fără opţiune de a salva într-un fişier, utilizatorul, neavând imprimantă pierde totul, căci dezvoltatorul îl dispreţuieşte pur şi simplu.
Continuitatea este lucrul de care orice dezvoltator trebuie să ţină seama, căci a face o interfaţă total diferită de ceea ce există în târg, îl obligă pe utilizator să piardă timpul cu acomodarea şi să respingă produsul software ca nefiind bun, doar din cauză că lui îi este peste mână.
Acestea sunt doar câteva concepte, văzute de mine cu subiectivismul ce mă caracterizează. Probabil altcineva ar crede că lista ar trebui să fie alta. Dacă aşa stau lucrurile, să-şi facă singur lista şi să intre sub pat sau sub masă şi să trăiască clipe de reverie sublimă, iar eu îi voi fi extrem de recunoscător, că şi-a văzut visul cu ochii.
Pentru zona aceasta nimic nu este perfect. Numai Pasărea măiastră a lui Constantin BRÂNCUŞI este perfectă. Deci cu imperfecţiunile acceptate, viaţa în zona calităţii software merge mai departe lin, cu graţie şi subtil.
|