techIT.ro Do we have a problem? Let's tech it!    












Daca ai impresia ca educatia e scumpa,
atunci încearca sa vezi cum e ignoranta.
Andy McIntyre









Home  |  Dictionar IT  |  Download  |  Forum  |  Despre noi  |  Contact

Analiza cerinţelor software. Introducere

Această serie de articole este destinată tuturor persoanelor implicate în proiecte de dezvoltare de software: şefi de departament, şefi de proiect, analişti (în primul rând lor), arhitecţi software, programatori sau specialişti în asigurarea calităţii.
Un prim argument pentru a fi citite (dar şi pentru a fi scrise :-)) este acela că, în universităţile occidentale aceste lucruri sunt predate tuturor studenţilor care se pregătesc pentru o carieră în IT. Cartea conţine, inevitabil, numeroase elemente de Inginerie software, utile oricărui specialist IT: despre ciclul de dezvoltare în proiectele software, despre interacţiunile dintre disciplinele implicate în proiect etc.

Un al doilea argument este acela că Analiza software este una dintre disciplinele cu impact foarte mare asupra succesului sau insuccesului proiectului software. Statisticile arată peste 60-80% din costurile non-calităţii sunt cauzate de înţelegerea, culegerea şi managementul inadecvate ale cerinţelor. Conform Software Engineering Institute (SEI), primii doi factori care contribuie la eşecul proiectelor, în privinţa respectării bugetelor şi termenelor sunt: specificaţiile inadecvate ale cerinţelor şi schimbările necontrolate ale acestora. Aşa cum vom vedea mai departe, de aceste lucruri se ocupă, în cea mai mare măsură, Analiza.


Argumente

În România, deşi domeniul IT este recunoscut ca fiind unul dintre cele mai dinamice din economie, şi ne place să credem că reprezentăm o forţă pe piaţa de IT, singura disciplină în care excelăm este programarea. Ori programarea nu reprezintă decât maximum 30 – 50% din efortul necesar într-un proiect software.
Bunele practici recomandă ca efortul consumat pentru Analiză să fie între 10 şi 30% din efortul total consumat într-un proiect. Pentru aceasta, la nivel de ţară, este desigur nevoie de foarte mulţi oameni specializaţi în domeniul Analizei, este nevoie de cursuri de specialitate, de cărţi sau de articole în revistele de specialitate.
Cu toate acestea, în România cărţile despre Inginerie Software, Analiză, Project Management sau Asigurarea calităţii în software se pot număra pe degete, în unele dintre domenii nefiind publicată chiar nici-o carte. Cursuri, despre aceste domenii în facultăţile de specialitate, nu există deloc.

Spre comparaţie, în Statele Unite, lucrurile scrise în această carte se studiază la facultate. Americanii au chiar un standard care conţine recomandări privind specificaţiile software: IEEE Std 830-1993: IEEE Recommended Practice for Software Requirements Specifications.

În 2005, Center for National Software Studies (www.cnsoftware.org) a lansat un raport, în urma celui de-al doilea summit naţional pe probleme legate de domeniul software, denumit „Software 2015: A National Software Strategy to Ensure U.S. Security and Competitiveness”, care arată rolul major al software-ului şi al inovaţiei software asupra succesului economiei americane: „Software-ul şi inovaţia software au o importanţă mare în succesul producţiei de automobile, telecomunicaţii şi de asemenea, asupra tuturor celorlalte industrii. Din perspectiva securităţii naţionale, sistemele militare [...] sunt toate dependente de software-ul inovativ, de înaltă calitate.”
Strategia propusă prevede sarcini concrete precum: motivarea tinerilor pentru dezvoltarea carierei în software, educarea în domeniul Ingineriei Software, identificarea priorităţilor cercetării şi dezvoltării, creşterea câştigurilor financiare pentru performanţa în inovare.

Vorbind de România, această situaţie poate fi o oportunitate: suntem în faţa unui teren liber, pe care avem ocazia de a construi aşa cum trebuie.

Prin urmare, aceaste articole au fos scrise, în primul rând, pentru că în România există un gol imens în acest domeniu. Au fost scrise cu gândul ca oricine este interesat de domeniu să poată afla de aici:
- ce este Analiza, ce sunt cerinţele, ce sunt Use Case-urile, specificaţiile şi care este rostul existenţei lor;
- care sunt principiile care stau la baza acestei discipline şi cum se lucrează efectiv în Analiză;
- de ce dau companiile bani pe software, ce se aşteaptă să primească şi ce se întâmplă să primească uneori.


De ce trebuie sa ne preocupe intelegerea problemei clientului

Cel mai important lucru din acest articol

Aşa cum ne arată statisticile principala cauză a eşecului proiectelor software este insuficienta implicare a clienţilor.
Buna înţelegerea a problemelor clientului, neapărat legată de împărtăşirea unei viziuni comune între echipa de dezvoltare şi client sunt două faţete de bază ale implicării clientului.

Fără ele, echipa de dezvoltare nu are referinţele de bază pentru a putea şti dacă ceea ce dezvoltă este corespunzător sau nu şi, prin urmare, implicarea puternică a clientul în proiect şi înţelegerea comună a problemelor lui este vitală.

Altfel, este ca şi cum te-ai deplasa într-o direcţie oarecare, fără să ştii unde vrei să ajungi.

Mesajul acesta este adesea (şi cel mai bine!) ilustrat printr-o caricatură despre diferenţa care apare adesea în practică, între problema clientului, înţelegerea problemei şi ceea ce se realizează de fapt (vezi imaginea din dreapta!):

techit.ro





Colecţia:  Analiza cerinţelor software

Articolul următor:  Despre Analiza cerinţelor



  


  Adauga un comentariuSpune-ti parerea despre acest articol!