ABONAMENTE VIDEO REDACȚIA
RO
EN
×
▼ LISTĂ EDIȚII ▼
Numărul 90
Abonament PDF

Asupra unor formule de hibridizare a metodologiei agile în managementul proiectelor software

Prof. Dr. Stelian Brad
Președinte @ Cluj IT Cluster
MANAGEMENT


În dezvoltarea sistemelor software, metodologiile seriale de management a proiectelor au fost înlocuite treptat de abordări mai adaptabile, bazate pe paradigma "prototipează - testează (cu utilizatorii) - evaluează - învață - rafinează" (PTEIR / PTELR). În fapt, algoritmul PTELR a fost translatat în urmă cu 20 ani într-o filosofie nouă a procesului de dezvoltare software, articulată într-un set de 14 principii, denumită "agile manifesto". Principiile au fost mai apoi "traduse" de experți într-o serie de metodologii practice de management de proiect, cunoscute sub numele de "metodologii agile". Printre formulele lucrative ale metodologiilor agile se numără SCRUM și Kanban.

În SCRUM, sistemele software se dezvoltă în mici incremente care apoi sunt livrate pentru evaluare de către utilizatori încă din fazele timpurii ale procesului de dezvoltare, astfel încât toate ajustările necesare, îmbunătățirile și ideile noi rezultate din interacțiunea cu prototipul livrat să poată fi încorporate în timp util în sistem. Fiecare etapă de incrementare este denumită "sprint" și durează între două și patru săptămâni, cu ședințe de progres la fiecare 24 ore, în care sunt implicați atât echipa de dezvoltare cât și proprietarul sistemului. Schema simplificată a acestui proces este ilustrată în Figura 1. Kanban, o altă metodologie de tip agil, diferă de SCRUM în câteva puncte precum ar fi: schimbările se pot întâmpla în orice moment, ciclurile de lucru urmează fluxul de lucru, nu utilizează biblioteca de comenzi nerezolvate ("backlog pool"), nu include roluri etc.

Figura 1. Cadrul de lucru SCRUM în metodologia agilă de management a proiectelor software.

Pe baza acelorași principii, ca și în cazul metodologiilor agile (ex. incertitudine și informații incomplete în definirea soluției în etapele timpurii ale proiectului, descoperirea continuă prin prototipare și testare, implicarea echipei de utilizatori în direcționarea dezvoltării, în co-creare și "feedback") inovațiile conduse de tehnologie au adoptat în ultima decadă așa numita abordare "lean" (suplă). În inovația lean, fiecare fază a evoluției proiectului implică un model în spirală de prototipare graduală și pivotare a soluțiilor prin testarea ipotezelor și ajustarea acestora din reacția primită de la beneficiarii finali. Astfel, fazele principale ale inovației lean (adică, introspecția, înțelegerea problemei, formularea soluției și proiectarea modelului de afaceri) sunt abordate într-o formă progresivă, cu o prototipare graduală și pivotare, cu învățare rapidă și rafinare a soluției, astfel încât să fie evitată perpetuarea aspectelor care nu aduc valoare. Se poate observa că, între dezvoltarea agilă și inovația lean este un sincronism puternic. Ilustrarea grafică a inovației lean se face în Figura 2.

Figura. 2. Metodologia inovației lean.

În ultimii ani a câștigat popularitate o altă paradigmă în dezvoltarea produselor noi, și anume proiectarea bazată pe gândire sistemică ("design thinking"). Acest model de proiectare accentuează colaborarea strânsă cu utilizatorul final pe parcursul fazelor de dezvoltare a produsului, începând cu procesul de investigare a nevoilor, continuând cu înțelegerea în profunzime a utilizatorilor din perspective multiple (roluri), urmând apoi cu un proces incremental de formulare a soluției prin bucle multiple la nivelul ideilor și prototipurilor (în colaborare strânsă cu beneficiarii soluției). Din perspectiva prototipării graduale și implicării profunde a utilizatorilor în procesul de design și dezvoltare, modelul design thinking împărtășește cu dezvoltarea agilă și inovația lean multe aspecte principiale. Ilustrarea fazelor principale ale modelului design thinking este prezentă în Figura 3.

Figura 3. Metodologia design thinking.

Unii consultanți au văzut în similitudinile conceptuale ale celor trei paradigme (dezvoltare agilă, inovație lean și design thinking) o oportunitate de a investiga valoarea adăugată prin combinarea acestora într-un format nou. Hibridizarea metodologiilor nu este o abordare nouă în inginerie. Cu toate acestea, dincolo de potențialele beneficii aduse de punctele tari ale fiecărui model, hibridizarea poate aduce și unele neajunsuri, precum ar fi neclaritatea integrării, pașii suplimentari și o complexitate mai ridicată. Din acest motiv, un aspect important al hibridizării este efortul de eliminare a neajunsurilor. Un alt aspect îl reprezintă rafinarea metodologiei hibride astfel încât să poată fi eliminate conflictele conceptuale aduse de hibridizare. Al treilea aspect este acela de a defini un cadru de lucru "șlefuit" de asperitățile provocate de către combinarea modelelor inițiale. Al patrulea se referă la identificarea neajunsurilor în ideea complementării modelului cu concepte noi. Fără aceste rezolvări, adopția modelului nou nu se întâmplă.

Până în prezent, s-au promovat (relativ recent) trei modele de hibridizare. Primul model se numește InnoDev și este ilustrat în Figura 4 (notă: a fost propus de Dobrigkeit, F. și Paula, D. în 2017). InnoDev introduce modelul design thinking într-o manieră ad-hoc, acolo unde apar blocaje în dezvoltarea produsului. Conceptele din agile - sprint și backlog - sunt utilizate în toate fazele proiectului pentru a planifica și aborda activitățile, pentru a asigura transparența procesului și pentru a progresa în cadrul proiectului, în paralel cu asigurarea flexibilității la cerințele de schimbare.

Figura 4. Modelul InnoDev de integrare lean-agile-design thinking în dezvoltarea software.

În conformitate cu modelul InnoDev, în faza de design thinking se pune accentul pe fundamentarea viziunii soluției la problemă. Viziunea rafinată și realizarea proof-of-concept (sau produsul minim viabil (MVP)) sunt cuprinse în faza de dezvoltare inițială. În a doua fază se proiectează și se testează conceptele pentru interfața cu utilizatorul, se analizează și testează posibilele tehnologii și se implementează cele mai importante caracteristici ("features") pentru a asigura o tangibilitate a conceptului (ex. viabilitate, dezirabilitate, fezabilitate). În faza de dezvoltare se testează MVP-ul și se continuă iterațiile de tip agil până la obținerea soluției finale, iar uneori se includ și pivotări. Modelul InnoDev poate produce confuzii în implementare, deoarece este dificil de trasat granița între design thinking și abordarea agilă.

Figura 5. Modelul Gartner de combinare a paradigmelor agile-lean-design thinking.

Un model de hibridizare similar cu InnoDev este modelul propus de Gartner (2017), care este ilustrat în Figura 5. Modelul Gartner și InnoDev nu se diferențiază în ceea ce privește faza de definire a problemei clientului, însă inovația lean este greu de identificat atât în modelul InnoDev, cât și în modelul Gartner, deoarece aceasta pare a fi mai degrabă o detaliere a unui sprint din metodologia de dezvoltare agilă.

Al treilea model de hibridizare este propus de Ximenes, B., Alves, I. și Araujo, C. (2015) sub denumirea Converge. Modelul se bazează pe observații și abordări empirice, forma s-a grafică fiind ilustrată în Figura 6. Calitatea modelului Converge stă în faptul că vizualizează mai bine inovația lean ca parte a sprinturilor din cadrul metodologiei de dezvoltare agilă. În ceea ce privește design thinking, modelul Converge nu diferă de InnoDev sau Gartner, deoarece se aplică în mod special în etapa inițială a proiectului și, unde este necesar, în cadrul buclelor de inovație lean.

Figura 6. Modelul Converge de combinare a paradigmelor agile-lean-design thinking.

Problema integrării clare a conceptelor lean în procedurile de tip agil rămâne deschisă pentru modelele InnoDev, Gartner și Converge, deoarece lean este și despre evitarea generării non-valorii ("waste"), nu doar despre evitarea perpetuării și acumulării "waste"-ului. Pentru a controla valoarea în dezvoltarea sistemului din perspectiva lean, acest articol propune includerea unui concept nou în metodologia de dezvoltare agilă, concept denumit inginerie competitivă ("competitive engineering"). Acest concept poate fi sintetizat într-o formă grafică conform celor ilustrate în Figura 7.

Figura 7. Metodologia ingineriei competitive.

Cheia în ingineria competitivă este utilizarea unor instrumente prin care se poate cuantifica impactul adus de fiecare modul, funcționalitate etc. din produs în competitivitatea acestuia. Prin raportarea la costurile implicate este posibilă cuantificarea valorii încorporate în fiecare componentă a produsului. Astfel, caracteristica "lean" poate fi identificată cu claritate. Pentru integrarea corectă a conceptului de inginerie competitivă în hibridul "management agil - design thinking - inovație lean" este necesară o analiză mai detaliată, vizualizată în Tabelul 1.

Tabelul 1. Analiză comparativă prin suprapunere la nivelul stratului operațional.

În continuare se propune o soluție de hibridizare "management agil - inovație lean - design thinking - inginerie competitivă" care preia punctele tari din cele patru concepte și ține cont de specificitățile evidențiate în Tabelul 1. Modelul propus se numește CALDET (Competitive Agile Lean DEsign Thinking) și este ilustrat în Figura 8.

Figura 8. Modelul CALDET.

Modelul CALDET începe cu o fază de empatizare (specifică design thinking) pentru a identifica oportunitățile. (Notă: această etapă nu se aplică furnizorilor de servicii outsourcing deoarece oportunitatea este identificată în altă parte). Procesul continuă apoi cu două cicluri virtuoase, care îi conferă modelului CALDET un atu important. Inovația cheie în modelul CALDET este aceea că, spre deosebire de metodologia agilă în care iterațiile se întâmplă în spațiul definit de dezvoltator și proprietarul soluției, adaugă o buclă "concurentă" (simultană) care colectează date din exteriorul sistemului (sparge vectorul inerției psihologice care definește metodologia agilă) și aduce permanent elemente de disrupție în backlog din exteriorul sistemului (procesului de dezvoltare software). Bucla simultană se referă la "observare utilizatori în diverse scenarii - detaliere outcome-uri - desfășurare în specificații - alimentare backlog - actualizare backlog".

Înainte de a începe dezvoltarea efectivă, modelul CALDET mai include o sesiune de dezvoltare rapidă a viziunii și înțelegere a utilizatorilor ("time-boxing"). Când backlogul este alimentat cu masa critică de informații se spune că acesta a fost "fundamentat" și se trece la o sesiune de co-creare de tip "hackathon". În paralel se dezvoltă reguli pentru scrierea codului (cu focalizare pe capacitatea de reutilizare / reconfigurare rapidă). Se planifică valoarea pe baza datelor disponibile în backlog, care se replanifică în mod dinamic pe măsură ce apar intrări noi în backlog. Valoarea se referă la cuantificarea bugetului maxim justificat a fi alocat pe fiecare element din sprint în funcție de impactul elementelor incluse în ecuația competitivității soluției. Pentru susținerea acestui proces, există diverse instrumente de inginerie a valorii, care nu sunt discutate aici. Pe baza datelor referitoare la valoare se planifică dezvoltarea soluției, care se replanifică în mod dinamic pe măsură ce apar intrări noi în backlog.

Urmează apoi aplicarea pașilor principali ai metodologiei agile de dezvoltare. Se pornește cu primul sprint (de exemplu, sprint-ul care include setul de elemente cu valoarea cea mai mare din setul de sprint-uri existente la acel moment în backlog). În cadrul sprint-ului, pe lângă instrumentele deja tradiționale, CALDET încurajează îmbogățirea toolkit-ului și selecția celor mai potrivite instrumente pentru fiecare sprint. În cadrul sprintului, CALDET include un pas de ideație pe care trebuie să-l aplice individual fiecare membru al echipei (de dorit prin utilizarea unor tehnici specifice, nu doar pe baza experienței), precum și o sesiune de ideație colectivă și de co-creație la mijlocul fiecărei săptămâni. Ideația individuală se aplică într-o formulă aparte, în sensul că solicită identificarea conflictelor (care țin de combinațiile dintre timp, cost, constrângeri tehnice, cerințe de performanță) și găsirea unor soluții care să depășească conflictele fără compromisuri. Bucla de iterație adaugă la procesul agil tradițional o etapă de pivotare (dacă lecțiile indică această necesitate). Se dezvoltă prototipul în cadrul sprintului, iar la termen se livrează. Urmează testarea la utilizator, urmată de evaluări ale valorii, iar unde apar situații critice se continuă cu aplicarea unor instrumente de inovație structurată pe baza lecțiilor învățate. Backlogul este alimentat oricând, din diverse surse, precum ar fi prototiparea, testarea, învățarea și procesul simultan de analiză a utilizatorilor din bucla paralelă celei de dezvoltare agilă. Prin considerarea constrângerilor și conflictelor, precum și prin procesul de cuantificare a valorii, CALDET urgentează convergența înspre o soluție matură.

Modelul CALDET revendică o serie de avantaje prin aceea că evită redunanțele între agil, lean și design thinking, ordonează pașii de lucru din modelul hibrid într-un mod justificat și curăță traseul de neclarități. Acest lucru se datorează faptului că în CALDET nu discutăm despre o integrare de modele, ci mai degrabă despre o încorporare de paradigme într-un flux nou care cuprinde cele mai bune aspecte din cele trei modele sectoriale. În plus, CALDET adaugă modelul ingineriei competitive pentru a putea administra corect componenta lean din modelul hibrid și pentru a putea administra structurat inovația în fluxul agil. Modelul CALDET a fost deja testat cu succes într-un proiect de dezvoltare software și a fost publicat și în fluxul științific internațional.

Referințe

  1. Zapata-Roldan, F.: Design capabilities in software innovation settings. In: Portland International Conference on Management of Engineering and Technology, pp. 1236-1243. IEEE, Portland (2017).

  2. Fraser, D., Abrahamsson, P., Davies, R., Kerievsky, J., Poppendieck, M., Succi, G.: The future of lean in an agile world. In: International Conference Agile Processes in Software Engineering and Extreme Programming, pp. 263-266. Pula (2009).

  3. Staron, M., Meding, W.: Monitoring bottlenecks in agile and lean software development projects - a method and its industrial use. In: Caivano, D., Oivo, M., Baldassarre, M.T., Visaggio, G. (eds.) PRODUCT FOCUSED SOFTWARE PROCESS IMPROVEMENT, pp. 3-16, Springer, Heidelberg (2011).

  4. Rodriquez, P., Markkula, J., Oivu, M., Garbajosa, J.: Analyzing the drivers of the combination of lean and agile in software development companies. In: International Conference on Product Focused Software Process Improvement, pp. 145-159. UPM, Madrid (2012).

  5. Glomann, L.: Introducing 'Human-Centered Agile Workflow' (HCAW) - an agile conception and development process model. In: Ahram, T., Falcão, C. (eds.), ADVANCES IN USABILITY AND USER EXPERIENCE, pp. 646-655, Springer International, Heidelberg (2017).

  6. Laanti, M.: Characteristics and principles of scaled agile. In: Dingsøyr, T., Moe, N., Tonelli, R., Counsell, S., Gencel, C., Petersen, K. (eds.) AGILE METHODS. LARGE-SCALE DEVELOPMENT, REFACTORING, TESTING, AND ESTIMATION, pp. 9-20, Springer Nature, Switzerland (2018).

  7. Canedo, E., Parente da Costa, R.: The use of design thinking in agile software requirements survey: a case study. In: International Conference of Design, User Experience, and Usability, pp. 642-657. UNB, Brasilia (2018).

  8. Hildenbrand, T., Meyer, J.: Intertwining lean and design thinking: software product development from empathy to shipment. In: Maedche, A., Botzenhardt, A., Neer, L. (eds.) SOFTWARE FOR PEOPLE, pp. 217-237. Springer, Berlin (2012).

  9. Dobrigkeit, F., Paula, D.: The best of three worlds - the creation of INNODEV a software development approach that integrates design thinking, SCRUM and lean startup. In: International Conference on Engineering Design, pp. 319-328. Design Soc., Vancouver (2017).

  10. Dobrigkeit, F., Paula, D., Uflacker, M.: InnoDev: a software development methodology integrating design thinking, SCRUM and lean startup. In: Leifer, L., Meinel, C. (eds.) DESIGN THINKING RESEARCH, pp. 199-227. Springer, Heidelberg (2019).

  11. Ximenes, B., Alves, I., Araujo, C.: Software project management combining agile, lean startup and design thinking. In: International Conference of Design, User Experience, and Usability, pp. 356-367. UFPE, Recife (2015).

  12. Fulbright, R.: Incorporating innovation into iterative software development using the inventive problem-solving methodology. International Journal of Innovation Science 5(4), 203-212 (2013).

  13. Sa'adah, H., Azrina, K., Novia, A., Marzanah, J.: Towards developing an approach to confluence innovative in requirements engineering. In: Fujita, H., Selamat, A., Omatu, S. (eds.) NEW TRENDS IN INTELLIGENT SOFTWARE METHODOLOGIES, TOOLS AND TECHNIQUES, pp. 164-175, IOS Press, Amsterdam (2017).

  14. Mantini, N.: Design thinking, lean startup and agile: what is the difference?.

Sponsori

  • comply advantage
  • ntt data
  • 3PillarGlobal
  • Betfair
  • Telenav
  • Accenture
  • Siemens
  • Bosch
  • FlowTraders
  • MHP
  • Connatix
  • MetroSystems
  • BoatyardX
  • Colors in projects

VIDEO: NUMĂRULUI 94