Pentru a intelege procesul intreg prin care trebuie sa treaca un proiect, trebuie sa intelegi urmatoarele faze cronologice ale proiectului.
Initializare proiect
Organizare
Executie
Finalizare
Stabilirea obiectivelor pe termen scurt, mediu si lung, stabilirea planului de actiune pentru realizarea obiectivelor si estimarea resurselor necesare.
Stabilirea echipei de proiect, repartizarea sarcinilor catre membrii echipei,stabilirea regulilor si a sistemului de lucru.
Inceperea si mentinerea activitatii in randul echipei de proiect.
Rapoarte si concluzii finale.
Supravegherea activitatii si stabilirea unor masuri de ajustare acolo unde estenevoie. Corelarea, unificarea, si armonizarea tuturor activitatilor.
Monitorizare si control
Agile
Waterfallvs
In dezvoltarea de produse software sunt folosite mai multe modele de lucru ce stau la baza project managementului.
Care este diferenta dintre acestea si in ce context se folosesc?
Waterfall – Cand se foloseste modelul
• Definitia de “produs final” este stabilita
• Cand ai proiecte a caror cerinte majore nu se schimba foarte des (ex: aerospatiala/navala etc)
• Cand cerintele proiectului sunt foarte clare.
• Ai proiecte care includ proceduri
• Ai la dispozitie resurse ample cu expertizanecesare
• Tehnologia este inteleasa
Waterfall – La ce proiecte se foloseste
• Pentru dezvoltarea aplicatiilor critice din organizatii ( planificarea resurselorintreprinderii, aplicatii de prelucrare a datelor)
• Pentru proiecte de mentenanta
• Cand nu exista presiune pentru implementare imediata
• Project Manager-ul nu trebuie sa fie foarte experimentat
• Membrii echipei pot fi fara experienta
• Componenta echipei este instabila si este de asteptat sa fluctueze
• Echipa de proiect este complet informata despre domeniu si modul de functionare al domeniului
• Exista cerinte stricte pentru aprobari formale
Planning
Design
Coding
Testing
Deploy
Sep Oct Nov Dec Jan Feb Mar
Waterfall – modelul de lucru
Analysis
Este mai mult un MODEL de dezvoltare software decat o METODOLOGIE
Fiecare faza se dezvolta independent siprocesul functioneaza ca o cascada. Odatace faza de “Planning” e finalizata, se trecela faza de “Analysis”.
Un dezavantaj major pe care il are modeluleste ca o data ce faza de Coding e finalizata sise identifica o problema, trebuie repetatetoate fazele care preced Coding-ului. Asta se poate intampla pentru orice faza a proiectului.
Avantaje Dezavantaje
Este usor de inteles si utilizat
Este usor de gestionat datorita rigiditatiimodelului
Fazele de dezvoltare ale produsului nu se suprapun
Functioneaza bine pentru proiecte a carorcerinte nu necesita schimbari constante si suntbine intelese
Timpul acordat planificarii poate reduce riscurilesi pierderile din etapele viitoare
Datorita documentatiei detaliate clientul stie la ce sa se asteapte si are o idee despredimensiunea costurilor si timpul necesardezvoltarii proiectului
Datorita documentatiilor detaliate, angajatii noise adapteaza rapid cerintelor proiectului
Clientul nu are certitudinea realizarii unuiprodus eficient in momentul lansarii
Prezinta o suma mare de riscuri si incertitudini
Modelul este rigid pentru proiectele in continua schimbare si continua desfasurare
Adaptarea greoaie a modelului la cerintele pieteicare este in continua schimbare
Metodologia se bazeaza foarte mult pe cerinteleinitiale
Daca o cerinta este gresita sau trebuie facuta o schimbare, proiectul o ia de la capat
Testarea se face la sfarsit iar tentatia de a amanatestarea minutioasa este mare
Waterfall
Agile - Cand se foloseste metodologia
•Produsul final nu este foarte bine si clar definit
• In cazul unui proiect destinat unei industrii care necesita schimbari periodice
•Cand clientii pot schimba scopul proiectului
•Cand fiecare membru din echipa se poate adapta usor si este capabill sa lucrezeindependent
•Cand schimbarile dintr-un plan pot fi discutate foarte des prin feedback
•Cand ai libertatea de a apela la alte optiuni decat cele din planul proiectului.
Agile - La ce proiecte se foloseste
•Pentru dezvoltarea de aplicatii a caror cerinte nu sunt clar definite
•Exista incapacitatea de a face presupuneri cu privire la cunostinteleutilizatorului
•Proiecte unde bugetele se schimba
•Pentru proiecte unde tehnologia se schimba foarte des
•Acolo unde cerintele proiectului sunt intr-o continua evolutie
Planning
Design
DesignUnit Testing
Deploy
Sep Oct Nov Dec Jan Feb Mar
AGILE
Coding
Analysis
AGILE a aparut ca o nevoie ce acopera o parte din dezavantajele modelului WATERFALL si are ca
principal scop reducerea costului de dezvoltare a produsului cat si al timpului de lansare pe piata
Agile functioneazadupa urmatoarea
abordare:Analiza-adaptare
Iterativa
Avantaje Dezavantaje
Planuri adaptative si predictive
Produsul este livrat frecvent
Imbunatatire continua
Feedback constant
Incurajeaza schimbarea rapida in etapeleincipiente proiectului, astfel reducand costulnecesar schimbarilor identificate tarziu
Minimizeaza riscul aducerii pe piata a unuiproiect nefunctional
Ofera feedback la sfarsitul fiecarui ciclu de timpin urma caruia se poate imbunatati produsul
Prin testarea la sfarsitul fiecarui sprint, te asigurica problemele aparute se pot repara in urmatorul ciclu de dezvoltare
Nu se vor gasi erori la sfarsitul proiectului
Comunicare puternica intre persoanele din echipa
In cazul livrarii unor proiecte, in special a celorde lunga durata, este dificil sa evaluezi efortulnecesar la inceputul ciclului de viata.
Nu se pune mult accent pe documentatianecesara
Proiectul poate avea multe intreruperi dacaclientul nu stie cu exactitate forma finala a produsului
Numai seniorii pot lua anumite decizii care sainfluenteze procesul de dezvoltare al produsului
Planul poate sa fie ambiguu
Echipa trebuie sa fie bine formata
AGILE
Waterfall Agile
Iterativ x
Linear x
Proces flexibil (raspunde la schimbari) x
Proces rigid(necesita cerinte bine definite) x
Faza de testare se realizeaza in acelasi timp cu faza de dezvoltare
x
Faza de testare este separata de faza de dezvoltare
x
In fiecare etapa este finalizata o parte a proiectului care sa fie validata de client
x
Documentatie detaliata x
Livreaza produse de calitate x x
vsWaterfall Agile
Kanban
Scrum XP
DSDMCrystal Clear
RAD
+others
AGILE
Agile este definita ca filozofie iar cele mai folosite metode de implementaresunt SCRUM si KANBAN
SCRUM STRUCTURE
Roles Artifacts Meetings
SPRINT Perioada de timp cuprinsa ideal intre 2-4 saptamani.
Fiecare SPRINT combina toate fazele de lucru (planning, coding, testing, etc)
Scram este o METODA de dezvoltare software prin care sunt puse in practicaprincipiile metodologiei Agile
Product Owner Development Team Scrum Master
SCRUM - Roles
▪ Responsabil pentru proiect
▪ Persoana decizionala
▪ Prioritizeaza cerintele
▪ Se concentreaza mai mult
pe “CE” decat pe “CUM”
▪ Facilitator
▪ Are grija ca echipa sa urmeze
obiectivele
▪ Elimina factorii distractori
▪ Nu are autoritate manageriala
▪ Monitorizeaza si optimizeaza
procesul
▪ Echipa formata ideal din 5-9
persoane
▪ Echipa expertizata pe mai
multe domenii de activitate
▪ Se organizeaza singura
▪ Colaboreaza si ofera feedback
constant
▪ Se concentreaza pe “CUM”
SCRUM - Artifacts
Product Backlog Sprint Backlog
Prioritate ridicata
Prioritate scazuta
Product Backlog Item
Product Backlog Item
Product Backlog Item
Product Backlog Item
Product Backlog Item
Product Backlog Item
Product Backlog Item
Obiectivele intreguluiproiectului
Obiectivele si cerinteledin cadrul unui SPRINT.
Product Backlog Item
Product Backlog Item
Product Backlog Item
Product Backlog Item
Product Backlog Item
Product Backlog Item
Product Backlog Item
Not Started
In Progress
In Progress
CE? CUM?
Task
Task
Task
Task
Task
Task
Task
SCRUM –are la baza 5 timpuri de sedinte
Sprint Backlog Meeting
Sprint Planning Meeting
Daily Scrum
Sprint Review Meeting
Sprint Retrospective Meeting
Se stabilesc obiectivele proiectului
Echipa se intalneste o data pe zi, timp de 15 minute pentru a-si raporta activitatiledin ziua precedenta, isi ofera feedback si cauta solutii pentru problemeleintampinate
Se stabilesc cerintele si task-urile pentru urmatorul SPRINT din cadrul proiectului.
Echipa demonstreaza functionalitatea produsului potential. La intalnire suntprezenti, product owner-ul si persoanele interesate de proiect. Se oferafeedback. Se stabileste ce s-a finalizat si la ce mai trebuie sa se lucreze si se redefinesc anumite cerinte
Intalnirea in care se analizeaza si optimizeaza procesul de lucru. Ce a mers bine? Ce poate fi imbunatatit? Ce am invatat?
LIMITARILE SCRUM
Pentru echipe care au abilitati foarte
specializate.
Produse care au multe dependente externe.
(De ex: Primirea unor module de la alte echipe)
Pentru echipe a caror membri sunt dispersati
geografic sau cu programe diferite de lucru.
Pentru produse mature sau de tip legacy si
care au sesiuni specifice de QA.
SCRUM - Cateva concluzii
•Este proiectat pentru a produce cele mai bune solutii de business.
•Eficienta variaza foarte mult in functie de fiecare organizatie.
•Eficienta depinde de structura organizatiei respective, culturaorganizationala si practicile de business.
Kanban
Kan = Visual Ban = Card
De La Sistemul De Productie Toyota La Software Development
Taiichi Ohno A pus bazele Sistemului de Productie Toyota si conceptelor Just In Time (JIT)
KANBANEste un concept care se referea la obtinerea de materiale sau cerinte necesare“Just in time” pentru introducerea lor in asamblare sau proces
Este un sistem care SEMNALEAZA nevoia de actiune si apare in completareadetaliata a proceselor de lucru din SCRUM
Conceput initial de Henry FordTinta: Zero stocuri. Problema: Zero Flexibilitate
Idee aplicata mai mult in supermarket-uri.SEMNALEAZA faptul ca raftul trebuie realimentat.
Kanban – Scurt Istoric
Transport Stocuri MiscareTimpul de asteptare
SupraprocesareaSupraproductiaDefectele de reprelucrare
KANBAN - Axarea pe diminuarea pierderilor
Taichii Ohno – a exportat ideea din supermarket-uri si a implementat-o in productia de automobile a companiei Toyota. Scopul: Reducerea costurilor prinoptimizarea a 7 procese principale.
Dezvoltat in domeniul IT de David J Anderson
KANBAN2 principii
Furnizare de servicii care se orienteaza catre client
De management al schimbarii princare pune accentul pe schimbarievolutive
•Metoda nu trece prin anumiti pasi specifici, dar porneste de la context sistimuleaza schimbarea continua, incrementala si evolutiva a sistemului.
•Urmareste sa reduca la minim rezistenta la schimbare.
•Scopul este de a face fluxul de lucru si progresul cerintelor din proiect CLARE atat pentru cei direct implicati cat si pentru stakeholders
Kanban Board
On Desk
5
Analysis Dev Test Done
4 2
Task
Este un sistem care SEMNALEAZA nevoia de actiune si functioneazadupa sistemul PULL.
Product Backlog Item
Product Backlog Item
Product Backlog Item
Product Backlog Item
Product Backlog Item
Product Backlog Item
Product Backlog Item
Task
Task
Task
Doing DoingDone Done
Task
Task Task
Pull
Task
Task
Task
Task
Task
Pull Another Task Here
In cazul fazei de testare unde s-a stabilit faptul ca se poate lucra la 2 cerinte, una din cele douacerinte fiind finalizata, sistemul iti transmite un mesaj/semnal “ Pull Another Task Here”
KANBAN – Cateva concluzii
In Kanban se pune accentul pe milestones, nu pe viteza.
Echipa este concentrata doar pe munca aflata in desfasurare
Cat timp Product Owner-ul mentine priotitatea sarcinilor, echipa de proiect aduce profit maxim business-ului acestuia
Echipa poate face predictii cu privire la momentul livrarii produsului final
Cum toate sarcinile sunt realizate la cerere, nu este nevoie de foarte multi oameni pentruproiect deci eficienta costurilor este ridicata
Kanban este foarte bun pentru proiecte complexe deoarece raspunde rapid la cerinte
Scrum Kanban
Roluri specifice x
Nu are roluri x
Utilizare in salturi x
Utilizare continua x
Echipa trebuie sa fie expertizata pe mai multe domenii x
Functioneaza dupa sistemul Pull x x
Transparenta x x
Livreaza produsul in mod iterativ x x
Sistem empiric x x
Imbunatatire continua x x
Lean and Agile x x
Raspunde la schimbari x x
vsScrum Kanban
SCRUMBAN - Un mixt intre Scrum si Kanban, folosit:
Pentru a obtine eficienta maxima in SPRINT-uri
Pentru a eficientiza rolurile din Scrum
Pentru a reduce volumul de munca aflat “in progres” prin Kanban
Se realizeaza o planificare de baza
Extinde sarcinile pentru SPRINT-uri
Se poate face o estimare a numarului membrilor din echipa
Se poate face o estimare a cantitatii volumului de munca destinat echipei
Intalnirile zilnice permit membrilor echipei sa identifice imediat problemele proiectului
Se face o retrospectiva a sprint-ului care permite imbunatatirea urmatorului sprint
Ofera feedback la sfarsitul fiecarui SPRINT prin care se poate imbunatati produsul
Te ajuta sa inveti din greseli si din realizari
SCRUMBAN - Avantaje
Business Modelling
Requirements
Analysis and design
Implementation
Test
Deployment
Configuration and Change Management
Project management
Environment
12
34
56
78
9
RUP – Rational Unified Process folosit de IBM
Prezinta 9 discipline care trebuie acoperite la fiecare iteratie
6 Discipline care tin de domeniul ingineriei
3 “Discipline suport”
RUP – Best Practices
Fii concentrat pe nevoile clientului
Foloseste OOP
Utilizeaza diagrame
Testeaza tot timpul
Asigura-te ca schimbarile adusesistemului sunt sincronizate siverificate constant.
Imparte problema in probleme mai mici
1Dezvoltaiterativ
2Manageriaza
Cerintele
3Utilizeaza
componente
4 Modeleaza
Vizual
5Verificacalitatea
6Controleazaschimbarile
PROIECTUL - Dezvoltarea unei aplicatii bancare
Gestionarea in timp real al conturilor curente(incasari si plati)
Gestionarea depozitelor in lei si valuta
Casa de schimb valutar
Extrase de cont
Interfata cu celelalte aplicatii
Una din top 3 banci din Romania
FUNCTIONALITATI PRINCIPALE CERUTE PENTRU REALIZAREA PROIECTULUI
CLIENTUL
UNDE si CAND
Romania anilor 1996 -1997
Existau foarte putine firme de consultanta si training care sa oferecursuri de PM in software dev
Internetul si telefonia mobila eraula inceputuri
Nu exista GoogleDocumentatiile tehnice eraupe suport hartie, daca se cumparau licentele
Nu aveam acces la tutorialeon-line sau forumuri
Conceptul open-source eradoar un vis
CONTEXTUL in care proiectul a fost dezvoltat?
CINE a dezvoltat proiectul?
Echipa formatadin
6 persoane cu 4-5 ani
experienta
Manager de proiect
Tech Lead
4 Developeri
Tehnologiile au fost impuse de client si erau doar partial cunoscute de echipa de proiect
2 persoane IT din partea clientului
Business Analyst din parteaclientului
+
Formare rapida pe tehnologiile impuse de proiect
Analiza detaliata si design de interfete impreuna cu clientul
Arhitectura si design de aplicatie
Dezvoltare impartita pe module, submodule, taskuri
Testare ‘unitara’
Integrare si testare functionala facuta de utilizatori ai aplicatieiMilestone : « pilot de laborator »
Acceptanta si trecere in faza de testare live
Pregatire pentru live si crearea unor mulinete de transfer de date realeMilestone : « pilot live »
12
34
56
78
CUM am dezvoltat proiectul?
Ce a urmat?
•Un alt proiect de implementare a aplicatiei in peste 100 de sucursale si agentiibancare. Vinerea banca termina lucrul pe vechile aplicatii si baze de date iarlunea pornea pe cele dezvoltate de noi
•Support tehnic on-call si crearea unei baze de date cu incidente frecvente, cusolutii de ocolire si rezolvarea problemelor si cazuisticii neacoperite din faza de analiza
•Mentenanta corectiva si evolutiva a aplicatiei pentru 5 ani
Waterfall Agile
Scrum Kanban
Cheia succesului?
• Am inteles rolurile dintr-un proiect si ni le-am asumat
• Am creat o aplicatie care le-a placut foarte mult utilizatorilor
• Am construit o relatie petermen lung cu clientul
Am aplicat filozofii si metodologiidiferite in functie de context
NB: Toti cei implicati in proiect au devenit persoane cheie in industrie
A fost un proiect de
SUCCES
Este VOIE sa iesiti din pattern-urile studiate
Analizati si adaptati la CONTEXT
Asa s-au nascut filozofiile, metodele, metodologiile
Nu ganditi inchistat
CATEVA SFATURI
VA MULTUMIM!
Address: Bd. 21 Decembrie 1989, nr. 126400604, Cluj-Napoca RomaniaTel: +40246487026Email: [email protected]