This is an old revision of the document!
Laborator 11 - Asigurarea calității și finalizarea unui proiect
Software Quality Assurance (SQA) (15 min)
ciclu de asigurare a calității produsului software
se desfășoară de-a lungul întregului ciclu de dezvoltare a produsului software, pe care îl îndrumă, monitorizează, auditează, evaluează și coordonează
complementează procesul de dezvoltare a proiectului
(în mediile enterprise) este realizat de către un grup de resurse umane dedicate asigurării calității.
Domeniul QA
metodologia QA a fost introdusă inițial în cadrul fabricilor, unde și-a demonstrat aportul la succesul producției de calitate
ulterior, s-a dorit adoptarea QA la mediul dezvoltator de aplicații software
Problema: produsul software nu este palpabil, deci măsurarea funcțiilor, a beneficiilor și a costurilor sunt mai dificil de determinat
Soluția: s-au adăugat concepte precum quality attributes (metrici software, cerinte functionale si non-functionale) pentru a putea măsura calitatea produsului software.
Cel mai cunoscut model de atribute ale produselor software de calitate este FURPS+ model, care cuprinde următoarele atribute:
funcționalitate (functionality)
utilizabilitate (usability)
cuprinde cerințe legate de ușurința de folosire a interfeței sistemului de către utilizator (interfața trebuie să fie estetică, intuitivă, ergonomică, consistentă, accesibilă și celor cu disabilități)
încredere (reliability)
performanță (performance)
cuprinde cerințe legate de timpii de lucru, precum timp de răspuns (response time), timp de revenire (recovery time), timp de lansare (startup time)
avantaje suplimentare (supportability)
cuprinde cerințe legate de ușurința testării (testability), a mentenanței (maintainability), a configurării (configurability), de gradul de scalare (scalability) și compatibilitate (compatibility) și de oferire de multiple traduceri ale conținutului interfeței cu utilizatorul.
Au apărut standarde dedicate produselor software, de tipurile:
standarde de managementul calității (Quality management)
standarde de documentare (Documentation Standards) specifică formatul și conținutul documentelor de planificare și control și a documentației produsului
standarde de Project Management
standarde de Software Engineering
Software Project Lifecycle: ISO/IEC WD 15288 System Life Cycle Processes
Software Project Requirements: IEEE Std 1233-1996 Guide for Developing System Requirements Specifications
standarde de proiectare (Design Standards) specifică reguli și metode de proiectare a soluției pornind de la specificații și formatul și conținutul documentelor de proiectare
standarde de codare (Code Standards) specifică limbajele de programare alese, convențiile de stil, reguli de construire a interfețelor și modul de comentare a surselor.
Ulterior, s-au definit proceduri:
Activități SQA
Activitățile principale SQA sunt:
asigură că standardele și procedurile de calitate alese pentru a fi urmate în proiect sunt adecvate la specificul proiectului (stabilirea lor este critică pentru că standardele oferă criteriile de evaluare a produsului și procedurile criteriile de comparare pentru procesele de dezvoltare și control)
asigură că standardele și procedurile alese sunt bine documentate pentru că activitățile de monitorizare, audit și evaluare se bazează pe ele
monitorizarea proceselor de dezvoltare și control în raport cu procedurile de calitate (pașii urmați coincid cu cei ai procedurilor?)
evaluarea proiectului în raport cu standardele de calitate.
Activitățile de evaluare și monitorizare au loc în cadrul auditurilor. Auditul este tehnica SQA de bază folosită pentru verificarea calității produsului
Există activități SQA specifice fazelor ciclului de viață al proiectului
faza de inițiere
SQA intervine în redactarea și revizuirea planului de management
asigură că standardele și procedurile alese sunt potrivite, clare și pot servi ca bază de auditare
faza cerințelor software
SQA intervine în revizuirea specificațiilor
asigură că specificațiile sunt clar exprimate, sunt categorisite corect în cerințe funcționale și non-funcționale (de interfață, de performanță, etc.), acoperă toate cerințele utilizatorului, pot fi măsurate
faza de proiectare
faza de dezvoltare
faza de testare
faza de livrare
faza de mentenanță
SQAP (Software Quality Assurance Plan)
În general, scopul unei organizații este crearea unui SQAP care să asigure nivelul dorit de calitate a produsului.
Din standardul IEEE 730-1998, structura unui SQAP conține următoarele secțiuni:
Scopul documentului (Purpose)
Documente referite
Management
Documentație
Standarde, practici, convenții, metrici
Revizii și audituri
Managementul riscului
Raportarea problemelor și acțiuni de corecție
Utilitare, tehnici și metodologii
Controlul furnizorului
Training
Colectarea înregistrărilor, mentenanța
Un exemplu de document SQAP puteți găsi aici.
Terminarea unui proiect (10 min)
Contexte de terminare
Un proiect se poate finaliza în următoarele contexte:
Feluri de terminare a unui proiect:
Extinctie (proiectul se termină prin succes sau eșec și, pe viitor, nu se va mai lucra la proiect)
Terminare prin adiție (proiectul se termină cu succes și, pe viitor, echipa care a dezvoltat proiectul se va ocupa de mentenanța produsului)
Terminare prin integrare (proiectul se termină cu succes și resursele sunt reintegrate în alte proiecte ale companiei – modul cel mai frecvent)
Checklist-ul terminării proiectului
În cazul în care se folosește un sistem de bug/issue tracking, trebuie ca toate issue-urile să fie rezolvate înainte de finalizarea proiectului chiar dacă ele nu au fost incluse în specificații.
În cazul în care nu se poate acest lucru, cei care predau proiectul trebuie să se asigure că problemele rămase deschise sunt de prioritate scăzută și nu au un impact major asupra funcționalității.
Procesul de terminare
se decide terminarea proiectului
se obțin aprobările necesare (de la clienți, sponsori)
se comunică decizia părților interesate
se realizează activitățile rămase din proiect și cele colaterale
se face post-performance analysis
se publică raportul final
se sărbătorește terminarea proiectului
se reasignează resursele (persoane și echipamente)
se efectuează închiderea financiară și administrativă
Post-Performance Analysis (PPA) (10 min)
Încheierea unui proiect nu presupune numai livrarea produsului, ci și oportunitatea de a învăța din această experiență pentru îmbunătățirea contribuțiilor la proiectele viitoare.
Recomandări:
să se determine cauzele ce au condus la valorile finale ale metricilor
să se rețină și să se înțeleagă aceste cauze, să se determine ce posibilități ar fi existat/ar exista pentru a evita producerea acestor cauze, ce posibilități sunt de stimulare a producerii a acestor cauze
să se colecteze valorile reutilizabile care au fost produse în cadrul proiectului (proceduri, checklisturi, guidelines) și să se facă publice
PPA:
este analiza situației finale a proiectului în vederea concluzionării asupra factorilor de succes și a modalităților de stimulare a lor, precum și asupra factorilor de insucces și a modalităților de prevenire, rezolvare a efectelor lor
este analiza ce stimulează procesul de învățare din experiența proiectului
este recomandat să se realizeze periodic (imediat după milestone-uri) pentru a putea folosi concluziile analizei chiar in faza următoare
Procesul PPA are următorii pași:
invitarea echipei la analiză (propunând ca fiecare membru să reflecteze asupra factorilor de succes/insucces și să vină cu propuneri de îmbunătățire – se trimite un chestionar de analiză)
colectarea individuală a feedback-ului fiecărei persoane implicate în proiect (individual pentru a înțelege întreaga panoramă a proiectului)
realizarea unei întâlniri a echipei în vederea concluzionării asupra: ce și cum s-a întâmplat, în ce moduri ar fi putut fi prevenite/soluționate problemele?
publicarea și arhivarea sumarului PPA.
În general, se folosește un chestionar pentru colectarea informațiilor. De obicei, acesta are conținut diferit între team leaderi și team memberi.
Câteva întrebări de chestionar sunt cele de mai jos:
Identificați lucrurile care au mers bine în cadrul acestui proiect.
Identificați lucrurile care au mers prost în cadrul acestui proiect.
Ce evenimente neprevăzute au afectat pozitiv sau negativ desfășurarea proiectului?
În cadrul acestui proiect, ce lucruri ați face diferit dacă ar fi repornit?
Descrie un lucru pe care tu l-ai fi putut realiza personal pentru a îmbunătăți calitatea produsului obținut din cadrul acestui proiect.
Ai fost informat despre ceea ce se așteaptă de la tine în cadrul acestui proiect?
Au fost rolurile membrilor echipei definite clar?
Echipa a făcut tot ce se putea face pentru a duce la bun sfârșit acest proiect?
Cum s-a comportat echipa în ansamblul său?
Care a fost componenta cea mai satisfăcătoare din cadrul proiectului?
Un exemplu complet de chestionar găsiți aici
Exerciții (50 min)
Descrieți sumar conțintul unui SQAP pentru proiectul vostru.
Pregătiți un checklist pentru terminarea proiectului vostru. Argumentați!
Răspundeți la întrebările de la procesul PPA pentru proiectul vostru.