Documentare agilă: echilibrarea vitezei și păstrarea cunoștințelor

Publicat: 2022-03-11

Diferitele documente, artefacte și procese legate de generarea lor sunt câteva dintre principalele simboluri ale modelului Cascada. Împrumutând de la Lean, Agile consideră multă documentație drept „deșeuri” care trebuie eradicate pentru a eficientiza ciclul de viață al dezvoltării.

Pentru mulți manageri de proiect, nu este o mare dificultate să înțeleagă modul în care fazele Cascadei sunt transformate în sprinturi — aceeași muncă este realizată; este doar organizat într-un mod diferit. Cu toate acestea, eliminarea majorității documentației este o pastilă mai greu de înghițit, deoarece subliniază un mod complet diferit de lucru. Necesită slăbirea frâielor controlului, îmbrățișarea necunoscutului și împuternicirea echipei de livrare să ia decizii la fața locului.

Abordarea tradițională a documentării este contestată

În metodologia Waterfall, se petrece mult timp pentru documentarea cerințelor proiectului și detalierea soluțiilor. Acest proces funcționează atunci când cerințele sunt complet clare și suntem siguri că nimic nu se va schimba față de ceea ce a fost capturat și stabilit de bază. Cu toate acestea, experiențele majorității companiilor din ultimele decenii au arătat că acest lucru nu este aproape niciodată adevărat. În lumea de astăzi, ritmul schimbării este atât de dinamic încât nevoile clientului se schimbă considerabil până la finalizarea fazei de documentare.

Agile se concentrează pe realizarea lucrurilor și pe adăugarea de valoare părților interesate. Este construit în așa fel încât modelul descurajează lucrul la periferice și la activități care nu adaugă direct și imediat valoare clientului.

Documentare în Waterfall vs. Agile

Fiecare companie are un nivel diferit de documentație, care poate diferi chiar și la nivel de proiect. Dar iată cum arată procedurile tipice de documentare în proiectele Waterfall și Agile:

Cascadă Agil
Documentarea este obligatorie de cele mai multe ori. Nicio lucrare nu progresează decât dacă documentația este completă. Este încurajată doar documentația de bază pentru a înțelege suficient pentru a începe lucrul.
Documentele sunt supuse unui proces îndelungat de revizuire și trebuie să fie aprobate de mai multe părți. Nu există un proces formal de revizuire și aprobare, iar managerul de proiect este factorul cheie de decizie.
Șabloanele standardizate trebuie urmate. Nu există șabloane formale pentru documentare; sunt folosite în schimb cele mai bune practici.
Sunt necesare diferite tipuri de documente în diferite faze: carte de proiect, declarație de viziune, document de cerințe de afaceri, cerințe funcționale și nefuncționale, documente de proiectare la nivel înalt (HLD) și proiectare la nivel scăzut (LLD) etc. Sunt necesare doar documentele necesare pentru a oferi funcționalitatea în următorul sprint.
Modificările aduse documentației sunt dificile, deoarece toate documentele sunt împletite. Modificările documentației sunt mult mai ușoare.
Este necesar un sistem sau un proces care să gestioneze un număr mare de documente. Documentația este minimă, deci ușor de gestionat.

Cazul pentru documentare

Cascada promovează o abordare mult mai strictă a documentării, care ar putea părea excesivă. Dar înainte de a respinge acest lucru drept „deșeuri”, iată câteva beneficii ale existenței unor proceduri de documentare solide.

Oportunitate pentru gândire strategică

Cei care nu reușesc să planifice, plănuiesc să eșueze. Documentarea obligă un manager de proiect să se așeze și să se gândească bine, apoi să vină cu cele mai bune soluții. Oamenii interpretează greșit uneori valoarea Agile a software-ului de lucru în defavoarea unei documentații cuprinzătoare pentru a însemna că nu este necesară nicio documentare. Apoi se grăbesc pe piață, o mișcare descrisă de Paul Adams, VP Product la Intercom, ca aruncând lucruri în perete și văzând ce se lipește. Proiectarea de soluții, crearea de planuri, deliberarea acțiunilor - aceste activități creează valoare prin economisirea timpului în ceea ce privește nu dezvoltarea fiecărei idei de caracteristică care vă vine în minte.

UX și consistență funcțională

Pe măsură ce companiile cresc de la câțiva fondatori la sute sau mii de angajați, multe echipe diferite încep să lucreze la același produs sau la produse similare. Echipa A ar putea crede că ceea ce lucrează nu are legătură cu ceea ce lucrează echipa B, dar pentru utilizatorul final, este același produs. În loc ca echipele interfuncționale să-și facă propriile lucruri, o documentație clară privind experiența utilizatorului și nivelurile funcționale evită un flux de utilizatori dezarticulat.

Documentația poate fi convertită în ghiduri de utilizare

În Waterfall, se petrece mult timp pentru a detalia soluțiile și modul în care acestea vor fi utilizate. Imaginile modelelor de înaltă fidelitate sunt create pentru dezvoltatorii front-end. Toate aceste active necesită mai puțină muncă pentru a fi convertite în ghiduri de utilizare interne sau externe decât crearea lor de la zero.

Cum Agile reduce nevoile de documentare

Un factor care apare în mod repetat ca o scuză pentru a solicita documentația este fluctuația angajaților. Managerii se tem să-și piardă cunoștințele instituționale atunci când oamenii pleacă și se alătură alții noi pentru a-i înlocui. Cum vor ști ei ce a fost implementat și cum funcționează? Cât timp vor dura să ajungă din urmă? Va avea echipa actuală lățimea de bandă pentru a menține noi membri ai echipei?

Speranța este că o documentare bună va aduce la viteză noilor angajați care lucrează în cea mai mare parte independent. Cu toate acestea, Agile reduce în mod inerent nevoia de documentare prin tehnici de colaborare care, în același timp, reduc timpul pentru integrare. Iată câteva moduri prin care Agile reduce nevoia de documentare.

Interacțiune regulată între echipele de produs și membrii echipei Agile

Manifestul Agile promovează „indivizii și interacțiunile peste procese și instrumente”. Deoarece cerințele tind să se schimbe în timpul unui proiect și apar idei noi, Agile asigură clarificarea cerințelor direct de la sursă, în loc să depindă de artefacte scrise care necesită actualizare constantă.

Îngrijirea și planificarea compartimentează sarcinile

Grooming-ul de backlog și planificarea sprintului descompun funcțiile în părți specifice, implementabile, care sunt ușor de înțeles și care pot fi lucrate independent. Acest lucru creează o oportunitate pentru noii angajați de a fi productivi de la început, fără a înțelege încă pe deplin imaginea de ansamblu a întregului proiect.

Poveștile utilizatorilor oferă o documentare eficientă

Șablon de poveste de utilizator pentru documentația Agile.

Formatul simplu al poveștilor utilizatorilor permite managerilor de proiect să surprindă cerințele minime stricte care creează o înțelegere comună între toți membrii echipei. Chiar dacă o poveste de utilizator nu se transformă într-un sprint, risipa de creare a acestui artefact de documentare este foarte mică. Pe măsură ce poveștile utilizatorilor trec în sprinturi, ele pot fi completate și completate cu alte informații necesare, cum ar fi wireframes, design, criterii de acceptare etc. Acest proces oferă o livrare foarte eficientă a documentației, care este foarte de unică folosință și produsă la cele mai adecvate etape de dezvoltare.

Nevoia redusă de documentare a codului

Tehnici precum programarea perechilor și revizuirea codului creează oportunități constante de a disemina cunoștințele tehnice în întreaga echipă, în special către noii membri ai echipei. Feedback-ul constant duce la o înțelegere comună care are, de asemenea, flexibilitatea de a se adapta la noile circumstanțe, în loc să devină rapid depășite într-un document undeva.

Ceremonii Agile

Standup-urile zilnice, recenziile de sprint și retrospectivele creează oportunități ample de a rezolva probleme și de a lua decizii față în față, în loc să se bazeze pe e-mail și documente. Perioada de timp limitată a tuturor ceremoniilor asigură că numai cele mai importante informații sunt prioritizate, în loc să petreceți timp documentând totul, chiar dacă este posibil să nu fie folosite niciodată.

Toate cele de mai sus reduc direct sau indirect documentația și prioritizează realizarea obiectivelor proiectului, asigurând în același timp că nimic nu se pierde cu adevărat din lipsa documentației.

Abordări hibride ale documentării

Unele companii încă preferă să aibă ceva documentație, chiar și într-un cadru Agile. Agile nu este prescriptiv, deoarece fiecare proiect este diferit și are un set unic de circumstanțe care trebuie abordate.

Mai jos sunt câteva exemple despre cum Agile poate fi combinat cu metode de documentare care necesită mult timp.

Combinând UML și Agile

Exemplu de diagramă UML

Luați în considerare utilizarea unui limbaj de modelare standard, cum ar fi Unified Modeling Language (UML), care este foarte structurat și are entități definite pentru a vizualiza un sistem. Acest lucru ajută la menținerea conținutului foarte simplu și concentrat pe ceea ce este necesar și asigură utilizarea minimă a limbajului scris. Instrumente precum StarUML și Draw.io, printre multe altele, sunt opțiuni convenabile.

Generatoare de documentație de cod

O altă abordare este de a vă asigura că codul este mult mai lizibil prin introducerea de comentarii mai structurate și detaliate ca parte a detaliilor clasei, detaliilor metodei, utilizarea parametrilor, dependențe și așa mai departe. Există multe instrumente care automatizează procesul de generare a documentelor utile din codul sursă și sunt numite generatoare de documentație. Acestea variază de la generice la cele specifice limbajului de programare.

Design detaliat și documente UX

Definirea cerințelor folosind wireframes, machete, diagrame de flux de utilizator, diagrame de secvență etc. ajută la simplificarea fluxurilor de proiect, precum și la clarificarea în mod explicit echipei tehnice a ceea ce trebuie dezvoltat. Documentele de proiectare sunt o modalitate excelentă de a avea un nivel diferit de documentație mai rigidă. Există diverse instrumente de wireframing și UX din care să alegeți pentru aceste sarcini.

Instrumente de management de proiect Automatizează documentația

Managementul proiectelor mai puternice și instrumentele conexe precum JIRA, Confluence, Asana și Basecamp oferă o modalitate de a păstra toate informațiile legate de proiect într-un singur loc. Sarcinile pot fi legate, etichetate, imbricate și atribuite diferiților membri ai echipei, care pot lăsa apoi comentarii și pot raporta orice problemă. Toate aceste acțiuni, alături de flexibilitatea de adaptare a acestor instrumente, pot crea o cantitate substanțială de documentație cu puțin sau deloc efort.

Mai mult, din punct de vedere istoric, o parte din nevoile de documentare provine din cerințele de raportare. Părțile interesate doresc acces la performanța echipei sau la alte valori relevante. Instrumentele de management de proiect facilitează automatizarea tablourilor de bord și vizualizărilor personalizate care reflectă progresul proiectului și se leagă înapoi la documentația relevantă din instrument.

Managementul documentației este un act de echilibrare

Creatorii Manifestului Agile scriu că prețuiesc „software-ul funcțional mai degrabă decât documentația cuprinzătoare”. Cu toate acestea, ei adaugă, de asemenea, o declinare a răspunderii conform căreia „deși există valoare în articolele din dreapta, [ei] prețuiesc mai mult articolele din stânga”. Agile nu sugerează eliminarea întregii documentații, deoarece unele documentații oferă evident valoare; sugerează pur și simplu că prioritatea ar trebui să fie funcționarea software-ului și adăugarea de documentație numai dacă este necesar, în funcție de circumstanțele proiectului și fără a împiedica puternic progresul dezvoltării.

Managerii de proiect trebuie să realizeze un echilibru între a cheltui mai puțin timp pe documentare și a petrece mai mult timp pentru a furniza software funcțional și, de fapt, a afla unde este necesară o anumită formă de documentare pentru succesul pe termen lung.