CodeGym /Blog Java /Aleatoriu /Tot ce trebuie să știți despre metodologiile de dezvoltar...
John Squirrels
Nivel
San Francisco

Tot ce trebuie să știți despre metodologiile de dezvoltare software: tendințe, principii și capcane pentru începători

Publicat în grup
Dezvoltarea software este un proces complex de afaceri. Aceasta înseamnă că profesioniștii IT trebuie să vorbească limbajul optimizării, planificării și stabilirii costurilor. O înțelegere a conceptelor de management oferă atât angajatorilor, cât și dezvoltatorilor un mare avantaj și ajută la trecerea colaborarii la nivelul următor. Tot ce trebuie să știți despre metodologiile de dezvoltare software: tendințe, principii și capcane pentru începători - 1

Atenție, începători! Modele, metodologii și confuzie generală

Pentru început, trebuie să facem o clarificare importantă: modelele de dezvoltare software și metodologiile de dezvoltare software sunt separate și distincte. Modelele prezic modul în care se va comporta un sistem. Sunt necesare metodologii pentru ca sistemul să funcționeze așa cum ar trebui. Modelele și metodologiile de dezvoltare software confuze este o procedură de operare standard pentru fiecare începător în IT, așa că aceasta nu este considerată o mare gafă. Un exemplu de model este modelul clasic în cascadă , cu progresia sa liniară, definirea clară a obiectivelor pentru fiecare etapă și controlul strict asupra termenelor limită. Un alt model este modelul în spirală, cu accent pe detectarea timpurie și diminuarea riscurilor proiectului. Dezvoltarea în spirală începe mic, mai întâi rezolvând problemele locale, apoi progresând la altele mai complexe. În cele din urmă, un alt model este dezvoltarea iterativă și incrementală (IID) , în care ciclul de viață al proiectului este împărțit într-o serie de iterații, fiecare dintre ele seamănă cu un „mini-proiect”. În general, un model este o descriere a procesului de dezvoltare software . Dar metodologiile sunt sisteme pentru controlul, evaluarea și monitorizarea activității pe sarcinile atribuite. Metodologiile sunt bățul și morcovul epocii moderne, necesare pentru a controla fiecare pas în procesul de dezvoltare. Acestea sunt alese în funcție de direcția proiectului, de bugetul acestuia și de termenele limită pentru implementarea produsului final. În plus, metodologiile pot fi selectate în funcție de temperamentul liderului de proiect și al echipei sale. Chiar și pe baza filozofiei companiei sau clientului. Să aruncăm o privire la cele mai populare metodologii.

1. Scrum

Scrum este o metodă agilă de management de proiect. Se bazează pe „sprinturi”, sau iterații scurte, strict limitate în timp (de obicei 2-4 săptămâni). Acest lucru minimizează durata întâlnirilor, dar crește frecvența acestora. Fiecare sprint constă dintr-o listă de sarcini care trebuie finalizate până la sfârșitul iterației, iar fiecare dintre ele are propria „greutate”. În timpul întâlnirilor, echipa discută ce au făcut membrii echipei, ce intenționează să facă și ce probleme există. Scrum folosește un întârziere pentru planificare. În această abordare, echipele au în general un scrum master. Această persoană ajută echipa să lucreze fără întrerupere și creează un mediu confortabil pentru echipă. Proiectul va avea și pe cineva în rolul de proprietar de produs. Această persoană este șeful dezvoltării, monitorizează produsul și acționează ca verigă principală între ceea ce solicită clientul și ceea ce produce echipa.

Pro:

  • capacitatea de a lansa rapid un proiect cu cel mai mic buget posibil;
  • monitorizarea zilnică a progresului, demonstrații frecvente ale proiectelor;
  • capacitatea de a face ajustări în timpul proiectului.

Contra:

  • dificultăți în încheierea contractelor din lipsa unui buget fix;
  • nu lucrează pentru o echipă fără experiență sau când termenele limită sau bugetul sunt subestimate;
  • capacitatea de a face constant schimbări între sprinturi poate crea confuzie.

Cine este pentru?

Un astfel de sistem este potrivit pentru proiecte de până la zece persoane, indiferent dacă sunt independente sau există în cadrul unor companii mari. Acest lucru este convenabil dacă echipa are o cantitate mare de muncă și un ciclu lung de viață care îi obligă să se schimbe și să se adapteze la noile condiții de piață.

2. Kanban

Cea mai importantă caracteristică a Kanban este vizualizarea ciclului de viață al proiectului. Sunt create coloane pentru efectuarea articolelor de lucru. Elementele de lucru sunt abordate individual. Coloanele sunt marcate cu stări precum: De făcut, În curs, Revizuire cod, În testare, Efectuat (desigur, numele coloanelor pot varia). Scopul fiecărui membru al echipei este de a reduce numărul de elemente de lucru din prima coloană. Abordarea Kanban este intuitivă și vă ajută să înțelegeți unde se află problemele. Structura Kanbanului nu este fixată definitiv și irevocabil: în funcție de specificul proiectului, puteți adăuga coloane improvizate. De exemplu, unele echipe folosesc un sistem în care trebuie să definiți regulile finalizate pentru un articol de lucru înainte de a-l efectua. În acest caz, se adaugă două coloane: Specificați (specificați parametrii) și Implementați (puneți la treabă).

Pro:

  • flexibilitate în planificare. Echipa se concentrează doar pe munca curentă, se definește și prioritatea unei sarcini;
  • vizibilitate. Când toți participanții au acces la date, problemele globale sunt mai ușor de identificat;
  • implicare ridicată în procesul de dezvoltare. Vizualizarea proceselor crește autoorganizarea și autocontrolul.

Contra:

  • nu lucrează cu echipe de mai mult de cinci persoane;
  • nu sunt destinate planificării pe termen lung;
  • nu este potrivit pentru o echipă nemotivată. Kanban nu are termene limită pentru fiecare articol de lucru. Metodologia nu prevede nici penalități pentru întârzieri.

Cine este pentru?

Kanban funcționează excelent în companii în care echipa este motivată să crească și să obțină rezultate. Ar trebui să fie deja evident - este pentru o echipă mică. Poate chiar un detașament sau o parte dintr-o echipă.

3. Procesul rațional unificat (RUP)

Metodologia RUP utilizează un model de dezvoltare iterativ. La sfârșitul fiecărei iterații (care durează între 2 și 6 săptămâni), echipa ar trebui să atingă obiectivele planificate și să obțină o versiune funcțională, deși temporară, a proiectului. RUP solicită împărțirea proiectului în patru faze . În fiecare fază se lucrează la următoarea generație a produsului: inițiere, elaborare, construcție și tranziție. La sfârșitul unei etape, este atins un reper al proiectului. Momentul în care echipa își evaluează rezultatele ar putea fi considerat o etapă a proiectului. Aceasta înseamnă că metodologia implică faptul că caracteristicile principale sunt eliberate în prima fază, iar completările sunt adăugate în fazele ulterioare.

Pro:

  • face posibilă abordarea sarcinilor în schimbare, atât din partea clientului, cât și schimbărilor care apar în cursul muncii;
  • asigura imbunatatirea continua a produsului. În timpul iterațiilor, puteți evalua proiectul cu scrupulozitate;
  • face posibilă identificarea și eliminarea riscurilor în stadiile incipiente ale muncii, precum și controlul eficient al calității dezvoltării.

Contra:

  • Această metodologie este destul de complexă și dificil de implementat într-o echipă sau o companie mică;
  • depinde de capacitatea experților de a stabili sarcini;
  • necesită documentare excesivă a cerințelor.

Cine este pentru?

Proiecte mari cu cerințe clar stabilite și riscuri bine înțelese, atunci când produsul trebuie lansat cât mai repede posibil. Chiar și în detrimentul funcționalității, pentru a vă ocupa rapid nișa și abia mai târziu să adăugați finisaje.

Există multe metodologii, dar o singură tendință

Pe lângă scrum și Kanban, care sunt incontestabil populare și bazate pe principii agile , precum și metodologia RUP rezistentă și iterativă, companiile folosesc multe variații de metodologii. O companie poate fi mai aproape de programarea extremă și de a lua cele mai rapide și mai simple decizii. Un altul poate fi mai aproape de dezvoltarea bazată pe teste. Un altul poate prefera dezvoltarea rapidă a aplicațiilor (RAD). Acestea fiind spuse, există o tendință puternică, incontestabilă, de a folosi mai multe metodologii simultan. Sau chiar combinarea modelelor și metodologiilor într-un sistem de management unic. Companiile de astăzi se străduiesc să elimine barierele birocratice și să creeze o atmosferă de lucru în echipă unificat în cadrul organizației, fără a schimba responsabilitatea între departamente și unități organizaționale. Potrivit Scrum Alliance, 70% dintre companiile IT folosesc scrum. Printre aceștia se numără giganți precum Google, Amazon, Salesforce, Microsoft și Adobe. Startup-urile și proiectele tinere sunt mai înclinate spre Kanban, dar Toyota și, de exemplu, jucătorii de la Wargaming îl folosesc și ei. Scrum este un instrument de planificare, în timp ce Kanban este pentru monitorizarea progresului. În ceea ce privește RUP, acesta este cel mai des folosit de companiile occidentale cu 50-200 de angajați și venituri de 1-10 milioane de dolari. Cu toate acestea, IBM a modificat RUP pentru a se apropia de principiile agile, lansând metodologia OpenUP (RUP, dar agile). Această metodologie agilă lăudată conduce acum lumea IT . Acesta nu este doar un moft trecător - este încă inovator și, de fapt, este utilizat la multe companii mari. Agile este folosit în Silicon Valley. Facebook și Uber îl folosesc.

Linia de jos

Fiecare proiect are propria metodologie de dezvoltare software, care depinde de echipă, finanțare, termene limită și cerințele clienților. Nu există o tehnică universală de management: chiar și metodologia agilă extrem de populară nu poate asigura cea mai bună abordare a procesului de dezvoltare. Ca urmare, metodologiile sunt alese cu atenție, uneori chiar pe principiu. Atât de mult încât putem trage concluzii despre o companie în sine sau despre clienții săi uitându-ne la metodologia acesteia. Metodologiile sunt amestecate, completate cu modele și adaptate. Atât de mult încât dau naștere la noi abordări. Acestea fiind spuse, domeniul managementului rămâne în cele din urmă în mâinile scrum și Kanban, cu elemente neașteptate ale modelului cascadă sau metodologiei iterative RUP.
Mai multe lecturi:
Site-uri web: Cărți:
  • Andrew Stelman, Jennifer Greene: „Learning Agile”;
  • Per Kroll, Bruce MacIsaac: „Agilitate și disciplină simplificate: practici de la OpenUP și RUP”;
  • Mike Cohn: „Succesing with Agile: Software Development Using Scrum”;
  • Robert C. Martin: „Agile Software Development: Principles, Patterns, Practices”;
  • Marcus Hammarberg, Joakim Sunden: „Kanban în acțiune”;
  • I. Jacobson, G. Booch, J. Rumbaugh: „Procesul de dezvoltare software unificat”.
Comentarii
TO VIEW ALL COMMENTS OR TO MAKE A COMMENT,
GO TO FULL VERSION