TSM - Managementul complexității în industriile sensibile - Application Life Cycle Management (ALM)

Horațiu Bocșa - Solution Architect @ Accenture


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.

Definiție

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).

Domenii de utilizare / aplicabilitate

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:

Aportul ALM în sustenabilitate

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:

Elementele componente ale unei soluții ALM

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:

Obiectele

Î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:

Î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

Relații

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.

Fluxuri de procese

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:

  1. Transition: definirea ordinii de trecere dintr-un status în altul; (draft -> awaiting review, awaiting review -> reviewed, reviewed -> Authoring completed, etc.)

  2. Statuses: definirea statusurilor posibile pentru acest tip de element;

  3. Actions: definirea și implementarea unor reguli de business în momentul în care un status se schimbă; (Se poate observa că pentru review sunt necesare completarea unor câmpuri suplimentare, iar în cazul când elementul se redeschide, semnăturile sunt anulate.)

Figura 4: Definirea logică a unui flux de testare

Documente

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:

Spre deosebire de un editor de texte, introducerea manuală de obiecte în documente poate fi realizată în două moduri:

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

Sumar

  1. 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ță.

  2. 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.

  3. 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.

  4. Deși nu sunt implicate în mod direct în sustenabilitate, prin structura / flexibilitatea și rolul lor major în validarea aplicațiilor în diverse stadii, acestea implementează în mod indirect standarde de sustenabilitate ca reguli obligatorii de aprobare.