+ All Categories
Home > Software > How to have a 100% successful rate in software development projects!

How to have a 100% successful rate in software development projects!

Date post: 15-Apr-2017
Category:
Upload: axon-soft
View: 173 times
Download: 0 times
Share this document with a friend
44
MORE THAN ONE WAY There is To develop a software Software Development beyond standard methodologies
Transcript

MORE THAN ONE WAYThere is

To develop a software

Software Development beyond standard methodologies

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?

SCRUM – Fluxul procesului

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

SPIRAL RAD

Alte procese folosite in software development

Prototype Cycles

Alte procese folosite in software development

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

TEORIE

PRACTICA

-vs-

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

Noi la AXON Soft lucram tinand cont de context si ne mandrim cu o rata de 100% proiecte de succes.

VA MULTUMIM!

Address: Bd. 21 Decembrie 1989, nr. 126400604, Cluj-Napoca RomaniaTel: +40246487026Email: [email protected]


Recommended