SOFTWARE - Documentarea ©


Când vrem să construim un produs software, să nu credem că noi inventăm apa caldă. Trebuie să ne documentăm, să vedem ce este făcut în legătură cu respectivul produs.
Identificăm următoarele situaţii:
- există un produs care face exact ceea ce ni s-a cerut să facă produsul nostru,
- există un produs care face ceva mai puţin decât s-a cerut să facă produsul nostru,
- există un produs care face cu mult mai mult decât face produsul nostru,
- nu am găsit nici un produs care să facă ceea ce s-a cerut să facă produsul nostru.
Explicăm investitorului cum stă treaba şi el va decide.
Dacă nu există nici un produs care să facă ceea ce ni s-a cerut, este clar ca lumina zilei că vom construi acel produs software şi chiar vom avea succes în piaţă cu el, pentru noutatea pe care o prezintă.
Dacă există un produs deja care face exact ceea ce ni s-a cerut, dacă acesta este inaccesibil ca preţ sau politici speciale, von construi respectivul produs, că noi avem nevoie de el, iar ceea ce există ne este inaccesibil.
Dacă există un produs care face cu mult mai mult decât avem noi nevoie şi preţul este bun, nu trebuie să-l mai producem noi şi investitorul îşi va deplasa interesul spre un alt produs care să facă altceva.
Oricum, niciodată dacă ni se cere să facem un produs, nu trebuie să pornim la treabă fără să ne fi documentat, căci există risculă să muncim şi să facem un produs software cu mult mai slab decât unul făcut de o altă echipă din ţară sau mai rău, făcut de cineva chiar de la noi din companie cu ceva timp în urmă, dar din ignoranţă şi neglijenţă nu am ţinut seama de existenţa acestuia şi am muncit aiurea.
Documentarea este absolut necesară pentru a vedea cum stau lucrurile în zona algoritmilor sau a consideraţiilor privind clase de produse software de aceeaşi complexitate, pentru a vedea:
- durate de realizare,
- costuri,
- necesar de resurse,
- niveluri ale caracteristicilor de calitate,
- clase de riscuri,
- seturi de date de test,
- interfeţe acceptabile,
- structuri de control,
- tipuri de validări,
- experienţe de implementare,
toate necesare pentru a prelua din experienţele altora tot ceea ce este în avantajul realizării produsului nostru software.
Dacă am găsit o carte cu implementări de algoritmi de optimizare, citim cu atenţie ce este scris acolo şi când trecem la scrierea de programe în care vom implementa algoritmii noştri de optimizare, vom folosi tot ceea ce ni s-a părut bun din acea carte.
Nu va fi niciodată un program bun dacă noi care-l scriem nu citim şi nu analizăm programe scrise de alţi programatori mai buni ca noi. Este ca la scrierea de versuri. Cei ce nu citesc poezie bună, vor scrie numai şi numai poezii proaste. Numai cei care au o cultură solidă, vor fi în stare să scrie versuri de calitate. La programare e la fel. Documentarea este esenţială. Când studiem programe şi documentaţii elaborate de alţii, învăţăm, mai ales dacă privim cu respect munca acelor autori şi nu ne dăm noi rotunzi că dacă noi am fi făcut acele programe, bla, bla, bla. După război, mulţi viteji s-arată. Dacă vom fi ceva mai rezervaţi şi vom da dovadă de înţelegere şi de modestie, cu siguranţă, produsul nostru software are şanse reale de a ieşi un produs bunicel sau bun. Dacă vom fi aroganţi şi vom privi de sus tot ceea ce este în jurul nostru, să nu ne mirăm că ceea ce facem va fi jalnic, respingător, oribil şi sulfuros, adică inutilizabil, căci merge de minune proverbul, râde ciob de oală spartă.