Articolul de față își propune o prezentare introductivă a conceptului Application Life Cycle Management (ALM), precum și o descriere sumară a structurilor și funcționalităților prezente în majoritatea platformelor IT din acest domeniu.
Când vorbim despre ALM ne referim la totalitatea oamenilor, echipamentelor, aplicațiilor, proceselor și reglementărilor legale implicate în dezvoltarea unei soluții software de la idee până la retragerea de pe piață.
Pentru realizarea acestui obiectiv, toate elementele de mai sus trebuie integrate într-un sistem funcțional, bine structurat, cu roluri și sarcini precise în care să se poată urmări în orice moment atât istoricul cât și statusul curent al soluției software.
Un rol important în cadrul acestui sistem îl au aplicațiile specifice dezvoltate de diverși furnizori specializați în acest domeniu. Aplicațiile respective conțin elemente și structuri standard, dar pot fi configurate și particularizate.
Figura 1: Etapele de viață ale unei aplicații de la idee până la retragerea de pe piață (decommission).
Aplicațiile de tip ALM își dovedesc adevăratul potențial în domeniile industriale sensibile, ale căror produse au un mare impact direct sau indirect asupra siguranței și / sau sănătății utilizatorului final. De asemenea, sunt recomandate în procesele care implică un lanț complex de aprobări și validări, conformări cu diverse reguli și norme legislative sau de marketing, facilitând activitățile de Management al Calității chiar dacă aplicațiile ALM nu sunt considerate a fi sisteme de tip QA.
În principal ALM este recomandat în:
industria echipamentelor medicale / industria farmaceutică unde standardele de calitate sunt foarte complexe;
industria aerospațială unde schimbările la nivel de echipamente esențiale sunt supuse unui flux complex de teste, validări și aprobări;
industria militară, pentru echipamentele dotate cu software;
domeniul economic-financiar-bancar unde aplicațiile software trebuie modificate și actualizate conform noilor norme legale și / sau auditate din punct de vedere al siguranței cibernetice;
în toate cazurile în care dezvoltarea unui produs (software ± hardware) poate genera anumite riscuri, unde o analiză de risc este absolut necesară încă din faza de idee.
Când vine vorba despre sustenabilitate există cel puțin trei domenii în care aplicațiile de tip ALM își aduc o importantă contribuție la:
Zero deșeuri prin trecerea tuturor documentelor din format fizic (hârtie) în format digital, dar și printr-un protocol foarte strict de generare a prototipurilor fizice de teste doar atunci când există toate validările și aprobările necesare;
Energie verde și reducerea consumului prin implementarea unor standarde obligatorii de respectat încă din faza de idee; (Exemplu: orice cerință poate fi aprobată spre design și dezvoltare doar dacă respectă anumite criterii de sustenabilitate: folosește energie regenerabilă, consumă un minim de resurse, nu conține elemente care poluează etc.)
Majoritatea platformelor ALM oferite de către marii producători au un pachet standard, out-of-the-box, de componente cu posibilitatea configurării acestora. Dar acestea oferă și posibilitatea implementării unor dezvoltări specifice, adaptate nevoilor de business ale fiecărui client în parte.
Pachetele standard sunt grupate pe mai multe funcționalități: Requirements Management, Test & Quality Management, Issue & Risk Management, Build & Release Management Change & Configuration Management și altele.
Indiferent de funcționalitatea dorită, sistemele au următoarele elemente standard:
Obiecte / Artefacte;
Relații / dependințe;
Fluxuri de procese;
Documente;
În funcție de producător aceste elemente se pot numi obiecte sau work items sau items dar, în esență, reprezintă același lucru: informația minimă necesară a fi introdusă în sistem.
La un nivel minimalist, un obiect are cel puțin patru atribute:
tip (în funcție de funcționalitatea dorită);
status;
descriere;
În mod normal aceste atribute sunt insuficiente pentru o bună utilizare practică, așa că producătorii oferă posibilitatea configurării unor atribute suplimentare.
Figura 2: Exemplu de tipuri de obiecte definibile într-o aplicație ALM
Dependințele sau relațiile ori linked work items sunt un element foarte important în ansamblul unei aplicații de tip ALM, trebuind definite și configurate foarte clar încă de la început pentru a nu genera erori logice majore în sistem. (De exemplu: o cerință nu va verifica un test ci un test verifică o cerință).
Sistemele (de la oricare producător) permit o bună configurare a acestor relații atât timp cât se știe exact ceea ce se dorește de la sistem.
Relațiile dintre obiecte sunt reversibil bi-direcțional, în sensul că, dacă obiectul A verifică obiectul B atunci obiectul B este relaționat ca fiind verificat de obiectul A.
Figura 3: Modul în care pot fi definite relațiile dintre obiecte
Obiectele relaționate pot fi vizualizate printr-un simplu click pe numele obiectului.
Acest element este o componentă de bază a soluțiilor de tip ALM fiind un diferențiator între diverși furnizori.
Implementarea unui flux de procese se bazează pe acțiunile care sunt generate în momentul în care statusul unui obiect sau document se schimbă. Variantele cele mai simple vor trimite spre aprobare, pe grupul de utilizatori de tip approvers obiectele și documentele ce își schimbă starea din open în waiting for approval, similar logicii din aplicațiile de tip IT support (Jira, ServiceNow etc.).
Soluțiile complexe permit configurări și parametrizări adaptate nevoilor de business ale fiecărui client în parte până la cel mai mic detaliu. (Exemplu: când se generează o versiune minoră sau majoră, când și cine poate aproba, când este necesară o semnătură electronică etc.)
În general, aplicațiile ALM au înglobate out-of-the-box un set de fluxuri standard, minimaliste sau de o complexitate medie cu posibilitatea unor configurări / parametrizări. În funcție de furnizor, configurarea unui flux se poate face relativ ușor sau necesită dezvoltări suplimentare.
Un flux de cerințe cu o configurație de complexitate medie are 3 zone de configurare:
Transition: definirea ordinii de trecere dintr-un status în altul; (draft -> awaiting review, awaiting review -> reviewed, reviewed -> Authoring completed, etc.)
Statuses: definirea statusurilor posibile pentru acest tip de element;
Figura 4: Definirea logică a unui flux de testare
Documentele reprezintă elementul cel mai important dintr-o aplicație ALM, fiind livrabilul final.
În funcție de furnizor, documentele pot fi generate într-un mod simplu, prin editare de elemente în interiorul documentului, similar cu o editare tipică unui editor de texte sau complex prin generare automată de documente pe baza unor reguli și structuri specifice.
Elementele de bază ale unui document sunt:
Tipul documentului; (Similar cu tipul obiectelor, doar că aici apar tipuri noi, precum matrix de trasabilitate sau design and validation. )
Starea documentului; (Similar cu al obiectelor, dar cu fluxuri asociate particularizate. De exemplu: un document aprobat poate bloca editarea obiectelor componente sau un document nu poate fi aprobat dacă există alte documente sau obiecte relaționate neaprobate etc.)
Headings ;( Asemănător cu logica existentă în editoarele de texte.)
Elemente descriptive (text liber);
Cuprins (autogenerat);
Obiectele incluse în document; (Cu posibilitatea configurării unor reguli în relație cu tipul documentului. De exemplu: nu se vor putea insera obiecte de tip test în documente de cerințe)
Autor;
Versiuni;
Versiunea de release pentru care s-a generat documentul;
Locația;
Spre deosebire de un editor de texte, introducerea manuală de obiecte în documente poate fi realizată în două moduri:
Definirea tipului de obiect a fi introdus (ex. cerințe) și editarea obiectului în cauză. La salvarea documentului, sistemul va crea obiectul respectiv în sistem cu status implicit, urmând-se logica de business implementată pe obiecte;
Figura 5: Structura folderelor de documente
Pe lângă partea de documente, o aplicație de tip ALM matură și complexă oferă și posibilitatea configurării și generării diferitelor rapoarte utile pentru utilizatori, cu grade variabile de complexitate.
Figura 6: Raport ALM custom evoluția pe 12 luni a gradului de utilizare aplicație de tip ALM
Aplicațiile de tip ALM sunt platforme software specializate, create de diverși furnizori cu scopul urmăririi în detaliu a întregului proces de dezvoltare software, în relație sau nu cu diverse echipamente hardware de la idee până la retragerea de pe piață.
Nu există platforme bune sau rele, fiecare având mai multe sau mai puține funcționalități, în funcție de nevoia de business al fiecărui client și de modulele necesare.
Deoarece controlează întregul ciclul de viață al unei aplicații, sunt foarte flexibile și adaptabile nevoilor pieței, fără a fi necesară o reluare a întregului proces de la capăt.
de Bogdan Maxim
de Mihai Șerban
de Nóra Dobre
de Ovidiu Mățan