alm s využitím agilnej metodiky scrum · software development life-cycle Životný cyklus vývoja...

37
ALM s využitím agilnej metodiky SCRUM Tomáš Weber, Delivery Manager at Avanade

Upload: others

Post on 07-Oct-2020

0 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: ALM s využitím agilnej metodiky SCRUM · Software Development Life-Cycle Životný cyklus vývoja softvéru ... Application Life-cycle Management Application Lifecycle Management

ALM s využitím agilnej metodiky SCRUM Tomáš Weber, Delivery Manager at Avanade

Page 2: ALM s využitím agilnej metodiky SCRUM · Software Development Life-Cycle Životný cyklus vývoja softvéru ... Application Life-cycle Management Application Lifecycle Management

Tomáš Weber Bratislava Delivery Center, Accenture Technology Solutions – Slovakia

• 12 rokov v IT

• Zázemie vo vývoji MS .NET aplikácii

• Zodpovedný za Microsoft (Avanade) platformu

v rámci Accenture Slovensko

• Projektový Manager

Page 3: ALM s využitím agilnej metodiky SCRUM · Software Development Life-Cycle Životný cyklus vývoja softvéru ... Application Life-cycle Management Application Lifecycle Management
Page 4: ALM s využitím agilnej metodiky SCRUM · Software Development Life-Cycle Životný cyklus vývoja softvéru ... Application Life-cycle Management Application Lifecycle Management

Vývoj a údržba aplikácií

Technology Solutions

Management Consulting Systems Integration Consulting

Technology Consulting

Consulting BPO

Outsourcing podnikových procesov

Stratégia Procesy Ľudia IT

Page 5: ALM s využitím agilnej metodiky SCRUM · Software Development Life-Cycle Životný cyklus vývoja softvéru ... Application Life-cycle Management Application Lifecycle Management

Avanade Accenture and MS

Page 6: ALM s využitím agilnej metodiky SCRUM · Software Development Life-Cycle Životný cyklus vývoja softvéru ... Application Life-cycle Management Application Lifecycle Management

Accenture Global Delivery Network With 162,000 professionals in more than 50 centers, Accenture offices and client locations, the Accenture Global Delivery Network is the largest and most diversified group of management consulting, technology, business process and outsourcing professionals in the world.

Headcount as of FY12 Q4

Page 7: ALM s využitím agilnej metodiky SCRUM · Software Development Life-Cycle Životný cyklus vývoja softvéru ... Application Life-cycle Management Application Lifecycle Management

Metodiky riadenia SCRUM

Agenda

Application

Lifecycle

Management

Requirement

Management People

Continuous Integration

&

Quality Assurance

Optimalizácia procesu riadenia životných cyklov softvérových aplikácií (ALM) s využitím agilnej metodiky SCRUM

Page 8: ALM s využitím agilnej metodiky SCRUM · Software Development Life-Cycle Životný cyklus vývoja softvéru ... Application Life-cycle Management Application Lifecycle Management

16%

Zdroj: Oxford University Regarding IT Project Success (Saur & Cuthbertson, 2003)

zo všetkých technologických projektov skončí úspešne. To znamená, že boli dodané načas, v rámci určeného rozpočtu a

spĺňajú očakávania klientov/užívateľov

Page 9: ALM s využitím agilnej metodiky SCRUM · Software Development Life-Cycle Životný cyklus vývoja softvéru ... Application Life-cycle Management Application Lifecycle Management

Problémy pri vývoji softvéru Výber z najčastejších problémov pri riadení zložitých IT projektov

• Kvalita

• Rozdiel medzi požiadavkami užívateľa a výsledným produktom

• Dĺžka času medzi začiatkom projektu a prvými viditeľnými výsledkami

• Rýchlosť aplikácie zmien

• Distribuované tímy

• Kultúrne rozdiely medzi členmi tímov

Page 10: ALM s využitím agilnej metodiky SCRUM · Software Development Life-Cycle Životný cyklus vývoja softvéru ... Application Life-cycle Management Application Lifecycle Management
Page 11: ALM s využitím agilnej metodiky SCRUM · Software Development Life-Cycle Životný cyklus vývoja softvéru ... Application Life-cycle Management Application Lifecycle Management

Software Development Life-Cycle Životný cyklus vývoja softvéru

Definuje štruktúru a metodiku pre vývoj softvérových produktov

Page 12: ALM s využitím agilnej metodiky SCRUM · Software Development Life-Cycle Životný cyklus vývoja softvéru ... Application Life-cycle Management Application Lifecycle Management

Watterfall Sekvenčný prístup, pri ktorom jednotlivé fázy vývoja nasledujú za sebou podľa vopred určeného poradia

Page 13: ALM s využitím agilnej metodiky SCRUM · Software Development Life-Cycle Životný cyklus vývoja softvéru ... Application Life-cycle Management Application Lifecycle Management

Agile Proces založený na iteratívnom a inkremetálnom vývoji

Page 14: ALM s využitím agilnej metodiky SCRUM · Software Development Life-Cycle Životný cyklus vývoja softvéru ... Application Life-cycle Management Application Lifecycle Management

SCRUM

Page 15: ALM s využitím agilnej metodiky SCRUM · Software Development Life-Cycle Životný cyklus vývoja softvéru ... Application Life-cycle Management Application Lifecycle Management

Agile Manifesto

• Individuals and interactions over processes and tools

• Working software over comprehensive documentation

• Customer collaboration over contract negotiation

• Responding to change over following a plan

Zdroj: agilemanifesto.org

Page 16: ALM s využitím agilnej metodiky SCRUM · Software Development Life-Cycle Životný cyklus vývoja softvéru ... Application Life-cycle Management Application Lifecycle Management

Čo je SCRUM? Definícia podľa The SCRUM Guide

• Scrum je vývojový rámec založený na teórii riadenia empirických procesov, tzv. empirizme. Empirizmus tvrdí, že znalosti vznikajú zo skúseností a rozhodnutia sa tvoria na základe toho, čo už poznáme.

• Scrum využíva iteračný a inkrementálny prístup k optimalizácii predvídateľnosti a k riadeniu rizika.

• Každú implementáciu empirického procesu riadenia podporujú tri piliere: transparentnosť, kontrola a adaptácia.

Zdroj: scrum.org Ken Schwaber and Jeff Sutherland 2011

Page 17: ALM s využitím agilnej metodiky SCRUM · Software Development Life-Cycle Životný cyklus vývoja softvéru ... Application Life-cycle Management Application Lifecycle Management

SCRUM transparentnosť, kontrola a adaptácia

Page 18: ALM s využitím agilnej metodiky SCRUM · Software Development Life-Cycle Životný cyklus vývoja softvéru ... Application Life-cycle Management Application Lifecycle Management

Kedy SCRUM? Vývojový rámec (framework) na riešenie komplexných projektov

Page 19: ALM s využitím agilnej metodiky SCRUM · Software Development Life-Cycle Životný cyklus vývoja softvéru ... Application Life-cycle Management Application Lifecycle Management

Popularita SCRUMu Agile metodika víťazi a SCRUM je najpopulárnejší medzi Agile metodikami

Page 20: ALM s využitím agilnej metodiky SCRUM · Software Development Life-Cycle Životný cyklus vývoja softvéru ... Application Life-cycle Management Application Lifecycle Management

Application Lifecycle Management Riadenie životného cyklu aplikácií

Page 21: ALM s využitím agilnej metodiky SCRUM · Software Development Life-Cycle Životný cyklus vývoja softvéru ... Application Life-cycle Management Application Lifecycle Management

Application Life-cycle Management Application Lifecycle Management (ALM) je nepretržitý proces riadenia životného cyklu aplikácií pomocou kontroly, vývoja a údržby (spravovania aplikácie).

• ALM je “manželstvo” podnikového riadenia a softvérového inžinierstva pomocou nástrojov, ktoré podporujú a integrujú disciplíny ako: správa požiadaviek, architektúra, kódovanie, testovanie, sledovanie a manažment releasov

Page 22: ALM s využitím agilnej metodiky SCRUM · Software Development Life-Cycle Životný cyklus vývoja softvéru ... Application Life-cycle Management Application Lifecycle Management

Application Life-cycle Management Riadenie životného cyklu aplikácií

• Spravovanie požiadaviek (Requirements Management)

• Architektúra

• Coding, Testing, Tracking (Version Control, Continuos Integration and Quality)

• Riadenie releasov (Release Management)

Page 23: ALM s využitím agilnej metodiky SCRUM · Software Development Life-Cycle Životný cyklus vývoja softvéru ... Application Life-cycle Management Application Lifecycle Management

Requirement Management Spravovanie požiadaviek

Page 24: ALM s využitím agilnej metodiky SCRUM · Software Development Life-Cycle Životný cyklus vývoja softvéru ... Application Life-cycle Management Application Lifecycle Management

Requirement Management Spravovanie požiadaviek

• Požiadavky (Requirements)

• Sledovanie [tracking/traceability] od požiadavky, cez dokumentáciu, kód, testy až po výsledný produkt v produkčnom prostredí

Page 25: ALM s využitím agilnej metodiky SCRUM · Software Development Life-Cycle Životný cyklus vývoja softvéru ... Application Life-cycle Management Application Lifecycle Management

Continuos Integration & Quality Assurance Neustála integrácia a riadenie kvality

Page 26: ALM s využitím agilnej metodiky SCRUM · Software Development Life-Cycle Životný cyklus vývoja softvéru ... Application Life-cycle Management Application Lifecycle Management

Continuos Integration Neustála integrácia

Continuous Integration je postup pri vývoji softvérových produktov, keď developeri často integrujú svoje čiastkové výstupy s ostatnými členmi tímu. Obvykle každý člen tímu integruje svoju prácu aspoň raz denne. Každá integrácia je overená pomocou automatizovaného buildu (včítane testov), čo zabezpečí, aby sa integračné chyby odhalili tak skoro, ako je to možné. Väčšina tímov, ktoré tento postup používajú, tvrdí, že im to pomohlo znížiť počet integračných problémov a pomohlo s rýchlejším vývojom kvalitných softvérových produktov.

Page 27: ALM s využitím agilnej metodiky SCRUM · Software Development Life-Cycle Životný cyklus vývoja softvéru ... Application Life-cycle Management Application Lifecycle Management

Quality Assurance Riadenie kvality

• Unit Testing

• Funkčné testy

• Integračné testy

• Regresné testy

• Performance testy

• Exploratory testy

Page 28: ALM s využitím agilnej metodiky SCRUM · Software Development Life-Cycle Životný cyklus vývoja softvéru ... Application Life-cycle Management Application Lifecycle Management

People Ľudia

Page 29: ALM s využitím agilnej metodiky SCRUM · Software Development Life-Cycle Životný cyklus vývoja softvéru ... Application Life-cycle Management Application Lifecycle Management

Ham and Eggs

Page 30: ALM s využitím agilnej metodiky SCRUM · Software Development Life-Cycle Životný cyklus vývoja softvéru ... Application Life-cycle Management Application Lifecycle Management

Role v SCRUMe Scrum definuje 3 role v SCRUM tíme.

• Product Owner

• SCRUM Master

• Development team

• Stakeholders

Page 31: ALM s využitím agilnej metodiky SCRUM · Software Development Life-Cycle Životný cyklus vývoja softvéru ... Application Life-cycle Management Application Lifecycle Management

Development Team Vývojári

• Organizujú sa sami. Nikto (ani Scrum Master) nehovorí vývojovému

tímu, ako pretvárať produktový backlog na prírastok potenciálne nasaditeľnej funkcionality.

• Vývojové tímy sú multi-znalostné, so všetkými potrebnými zručnosťami, aby dokázali prírastok produktu vytvoriť.

• Scrum nepozná pre členov vývojového tímu žiadne ďalšie tituly a názvy pracovných pozícií než Vývojár, a to bez ohľadu na to, akú prácu jednotlivec vykonáva. Z tohto pravidla nie sú žiadne výnimky.

• Jednotliví členovia vývojového tímu majú svoju špecializáciu a oblasti vývoja, na ktoré sa zameriavajú, avšak zodpovednosť za výsledok patrí vývojovému tímu ako celku.

• Vývojové tímy neobsahujú ďalšie pod tímy určené pre samostatné oblasti, ako sú testovanie alebo biznis analýza.

Page 32: ALM s využitím agilnej metodiky SCRUM · Software Development Life-Cycle Životný cyklus vývoja softvéru ... Application Life-cycle Management Application Lifecycle Management

Zhrnutie

Page 33: ALM s využitím agilnej metodiky SCRUM · Software Development Life-Cycle Životný cyklus vývoja softvéru ... Application Life-cycle Management Application Lifecycle Management

Úspešnosť agilných projektov je

3-krát vyššia ako pri štandardných waterfall projektoch...

Zdroj: Succeeding with Agile - Mike Cohn's Blog

Page 34: ALM s využitím agilnej metodiky SCRUM · Software Development Life-Cycle Životný cyklus vývoja softvéru ... Application Life-cycle Management Application Lifecycle Management
Page 35: ALM s využitím agilnej metodiky SCRUM · Software Development Life-Cycle Životný cyklus vývoja softvéru ... Application Life-cycle Management Application Lifecycle Management

Odporúčaná literatúra

• The SCRUM Guide[1]

• Software in 30 days[2]

• Agile Project Management with SCRUM[3]

Pre developerov: • Clean Code[4] a The Clean Coder[5]

• Professional Application Lifecycle Management with Visual Studio 2012[6]

Page 36: ALM s využitím agilnej metodiky SCRUM · Software Development Life-Cycle Životný cyklus vývoja softvéru ... Application Life-cycle Management Application Lifecycle Management

SCRUM ON !!!

Page 37: ALM s využitím agilnej metodiky SCRUM · Software Development Life-Cycle Životný cyklus vývoja softvéru ... Application Life-cycle Management Application Lifecycle Management