Řízení IT projektů - Moodle Fakulta elektrotechnická · změny - High level scope/detailní...

63
Ing. Ondřej Macek 2013/14 SOFTWAROVÉ INŽENÝRSTVÍ ČESKÉ VYSOKÉ UČENÍ TECHNICKÉ V PRAZE Řízení IT projektů

Transcript of Řízení IT projektů - Moodle Fakulta elektrotechnická · změny - High level scope/detailní...

Page 1: Řízení IT projektů - Moodle Fakulta elektrotechnická · změny - High level scope/detailní scope pro každou iteraci - Zpětná vazba s klientem - Jednoduché/lehké zapojení

Ing. Ondřej Macek 2013/14

SOFTWAROVÉ

INŽENÝRSTVÍ

ČESKÉ VYSOKÉ

UČENÍ TECHNICKÉ

V PRAZE

Řízení IT projektů

Page 2: Řízení IT projektů - Moodle Fakulta elektrotechnická · změny - High level scope/detailní scope pro každou iteraci - Zpětná vazba s klientem - Jednoduché/lehké zapojení

0

Historie Jak vypadal vývoj SW?

- Bylo třeba specifikovat zadání, to se

naprogramovalo a pak se dostal výsledek –

podobně jako např. ve strojírenství

- Zákazník nerozuměl tvorbě programů (magie) –

dnes si všichni myslí, že rozumí

- Přelom 81 – první PC, takže bylo třeba začít myslet

jinak. Jde to těžko!

- Někdy kolem 78 byla konference NATO – o

softwarovém inženýrství – projekty často chybují,

nejsou včas, ...

- V roce 2000 bylo 125 aplikací pro řízení projektů a

25 technik – a to ještě nebyli agilní metodiky

2

Page 3: Řízení IT projektů - Moodle Fakulta elektrotechnická · změny - High level scope/detailní scope pro každou iteraci - Zpětná vazba s klientem - Jednoduché/lehké zapojení

Tradiční řízení

Page 4: Řízení IT projektů - Moodle Fakulta elektrotechnická · změny - High level scope/detailní scope pro každou iteraci - Zpětná vazba s klientem - Jednoduché/lehké zapojení

0

Lineární přístup k

řízení projektů

(LPMLC) Business

Analýza Analýza

Návrh Implementace

Testy Nasazení

4

Page 5: Řízení IT projektů - Moodle Fakulta elektrotechnická · změny - High level scope/detailní scope pro každou iteraci - Zpětná vazba s klientem - Jednoduché/lehké zapojení

0

LPMLC

• Silné stránky? - Už od začátku je jasný plán => víme co bude

- snadné řízení zdrojů (paralelismus projektů)

- Zvládne to i začátečník/průměrný zaměstnanec (rozdíl oproti agilním)

- Není třeba aby tým byl na jednom místě – analýza u nás, implementace v Malajsii; dá se snadno předat externímu dodavateli

• Slabé stránky?

- Špatně reaguje na změnu

- Stojí hodně peněz – veškeré chyby se projeví až při předání (akceptačním testu) a pak je drahé chyby opravit

- Dlouho trvá než zákazník vidí nějaký výstup

- Vyžaduje detailní plán a specifikaci – každé přeplánování je drahé

- Sleduje procesy, které není možné změnit

- Není zaměřen na přínos klientovi – je zaměřen na dodání v nějaký čas – dodání podle specifikace není často totožné s tím co zákazníkovi pomůže – potřeby vs.přání

5

Page 6: Řízení IT projektů - Moodle Fakulta elektrotechnická · změny - High level scope/detailní scope pro každou iteraci - Zpětná vazba s klientem - Jednoduché/lehké zapojení

0

Rapid LPMLC

Sloučení

Business

Analýza

Analýza Návrh

Implementace

Testy

Nasazení

Implementace

Implementace

Testy

Testy

Testy

6

Page 7: Řízení IT projektů - Moodle Fakulta elektrotechnická · změny - High level scope/detailní scope pro každou iteraci - Zpětná vazba s klientem - Jednoduché/lehké zapojení

0

RLPMLC

• Silné stránky?

• Slabé stránky?

7

Page 8: Řízení IT projektů - Moodle Fakulta elektrotechnická · změny - High level scope/detailní scope pro každou iteraci - Zpětná vazba s klientem - Jednoduché/lehké zapojení

Pokročilejší přístupy

Page 9: Řízení IT projektů - Moodle Fakulta elektrotechnická · změny - High level scope/detailní scope pro každou iteraci - Zpětná vazba s klientem - Jednoduché/lehké zapojení

0

Inkrementální

přístup

Business

Analýza Analýza Návrh Implementace

Testy

Nasazení

Implementace Testy

Implementace Testy

Nasazení

Nasazení

9

Page 10: Řízení IT projektů - Moodle Fakulta elektrotechnická · změny - High level scope/detailní scope pro každou iteraci - Zpětná vazba s klientem - Jednoduché/lehké zapojení

0

Inkrementální

přístup

• Silné stránky?

• Slabé stránky?

10

Page 11: Řízení IT projektů - Moodle Fakulta elektrotechnická · změny - High level scope/detailní scope pro každou iteraci - Zpětná vazba s klientem - Jednoduché/lehké zapojení

0

Prototypování

• Rapidní inkrementální přístup

11

Page 12: Řízení IT projektů - Moodle Fakulta elektrotechnická · změny - High level scope/detailní scope pro každou iteraci - Zpětná vazba s klientem - Jednoduché/lehké zapojení

0

Prototypování

• Silné stránky?

• Slabé stránky?

12

Page 13: Řízení IT projektů - Moodle Fakulta elektrotechnická · změny - High level scope/detailní scope pro každou iteraci - Zpětná vazba s klientem - Jednoduché/lehké zapojení

Iterační řízení

Page 14: Řízení IT projektů - Moodle Fakulta elektrotechnická · změny - High level scope/detailní scope pro každou iteraci - Zpětná vazba s klientem - Jednoduché/lehké zapojení

0

Iterační přístup

Uzavření

projektu

Business

Analýza Další iterace?

Iterace Uzavření

iterace

[Ano]

[Ne]

14

Page 15: Řízení IT projektů - Moodle Fakulta elektrotechnická · změny - High level scope/detailní scope pro každou iteraci - Zpětná vazba s klientem - Jednoduché/lehké zapojení

0

Iterační přístup

Uzavření

projektu

Business

Analýza Další iterace?

Iterace Uzavření

iterace

[Ano]

[Ne]

15

Co je iterace?

Page 16: Řízení IT projektů - Moodle Fakulta elektrotechnická · změny - High level scope/detailní scope pro každou iteraci - Zpětná vazba s klientem - Jednoduché/lehké zapojení

0 16

Iterační přístup

Charakter

- Častý sběr požadavků na změnu, ale známe

řešení

- Tým v jedné lokalitě

- Iterace 2-4 týdny

- Část řešení není známa – nejsou detaily ->

změny

- High level scope/detailní scope pro každou

iteraci

- Zpětná vazba s klientem

- Jednoduché/lehké zapojení klienta

Nevýhody

- Zapojení klienta

- Týmy v jedné lokalitě

- Není vždy jasné jak to dopadne

Potřeby

- Malý tým

- Zkušení pracovníci

Page 17: Řízení IT projektů - Moodle Fakulta elektrotechnická · změny - High level scope/detailní scope pro každou iteraci - Zpětná vazba s klientem - Jednoduché/lehké zapojení

Unified Process

Page 18: Řízení IT projektů - Moodle Fakulta elektrotechnická · změny - High level scope/detailní scope pro každou iteraci - Zpětná vazba s klientem - Jednoduché/lehké zapojení

0

Unified Process -

Životní cyklus

• Postupuje ve fázích

• Fáze se skládá z iterací

• Po dokončení každé iterace/fáze se provede

zhodnocení

• Další iterace/fáze projektu začne jen v případě

splnění kritérií.

18

Page 19: Řízení IT projektů - Moodle Fakulta elektrotechnická · změny - High level scope/detailní scope pro každou iteraci - Zpětná vazba s klientem - Jednoduché/lehké zapojení

0

FÁZE RUP

19

Page 20: Řízení IT projektů - Moodle Fakulta elektrotechnická · změny - High level scope/detailní scope pro každou iteraci - Zpětná vazba s klientem - Jednoduché/lehké zapojení

0

ZAHÁJENÍ

(INCEPCE)

– identifikace problému, který má být vyřešen

– formulace čeho má být dosaženo – specifikace

zadání

– je třeba porozumět doméně

– určení priorit

Vstupy

Stávající systém, úvodní požadavky na systém,…

Výstupy

Vize, Plán, Základní požadavky, (Prototyp)

Milník

Dohoda mezi zákazníkem a dodavatelem na

rozsahu, ceně a harmonogramu

20

Page 21: Řízení IT projektů - Moodle Fakulta elektrotechnická · změny - High level scope/detailní scope pro každou iteraci - Zpětná vazba s klientem - Jednoduché/lehké zapojení

0

PŘÍPRAVA

(ELABOACE) – sestavení projekčního týmu

– nastavení prostředí pro vývoj

– zpřesňování představy/požadavků

– základ architektury a prototypu

– plán projektu

Výstup

Prototyp, Use case (80%), Návrh(10%), Datový

model, Plán testů, Plán projektu,

Milník

Architektura, Use case, Plán testů, Podrobnější plán

projektu

21

Page 22: Řízení IT projektů - Moodle Fakulta elektrotechnická · změny - High level scope/detailní scope pro každou iteraci - Zpětná vazba s klientem - Jednoduché/lehké zapojení

0

KONSTRUKCE

– dokončení návrhu

– první verze SW

– návrh testů

– realizace testů

– vznik dokumentace (návrhové modely, model

nasazení…)

Výstupy

První verze, testy, uživatelská dokumentace

Milník

Funkční verze

22

Page 23: Řízení IT projektů - Moodle Fakulta elektrotechnická · změny - High level scope/detailní scope pro každou iteraci - Zpětná vazba s klientem - Jednoduché/lehké zapojení

0

PŘEDÁNÍ

(TRANSITION) – předání finální verze koncovým uživatelům

– beta testování systému

– nemělo by docházet k zásadním změnám

funkcionality

– řeší se instalace, konfigurace a odlaďování

Výstupy

Konečná funkční verze splňující

všechny požadavky zadání, Manuály

Milník

Předání

23

Page 24: Řízení IT projektů - Moodle Fakulta elektrotechnická · změny - High level scope/detailní scope pro každou iteraci - Zpětná vazba s klientem - Jednoduché/lehké zapojení

0

Unified process

• Vyžaduje konzultace s klienty

• Základem analýzy a implementace jsou use-

cases

• Na architekturu je třeba zaměřit se co nejdříve

• Testy probíhají na všech úrovních

24

Page 25: Řízení IT projektů - Moodle Fakulta elektrotechnická · změny - High level scope/detailní scope pro každou iteraci - Zpětná vazba s klientem - Jednoduché/lehké zapojení

AGILNÍ PRINCIPY

Page 26: Řízení IT projektů - Moodle Fakulta elektrotechnická · změny - High level scope/detailní scope pro každou iteraci - Zpětná vazba s klientem - Jednoduché/lehké zapojení

0

Agilní přístup -

motivace

• Metodiky vývoje SW jsou nevhodné

• Špatná komunikace vede ke krachu projektu

• Na testy už nezbývá čas

• Vytváření „zbytečnou“ dokumentaci

26

Page 27: Řízení IT projektů - Moodle Fakulta elektrotechnická · změny - High level scope/detailní scope pro každou iteraci - Zpětná vazba s klientem - Jednoduché/lehké zapojení

0

Agilní přístup -

motivace

• Spokojený zákazník

• Spokojený programátor

27

Page 28: Řízení IT projektů - Moodle Fakulta elektrotechnická · změny - High level scope/detailní scope pro každou iteraci - Zpětná vazba s klientem - Jednoduché/lehké zapojení

0

Agilní

• způsob řízení týmu

• způsob vývoje SW

• způsob myšlení

28

Page 29: Řízení IT projektů - Moodle Fakulta elektrotechnická · změny - High level scope/detailní scope pro každou iteraci - Zpětná vazba s klientem - Jednoduché/lehké zapojení

0

Agilní manifest

• Člověk a komunikace je nad procesy a

nástroje

29

Page 30: Řízení IT projektů - Moodle Fakulta elektrotechnická · změny - High level scope/detailní scope pro každou iteraci - Zpětná vazba s klientem - Jednoduché/lehké zapojení

0

Agilní manifest

• Člověk a komunikace je nad procesy a

nástroje

• Fungující software je nad vyčerpávající

dokumentaci

30

Page 31: Řízení IT projektů - Moodle Fakulta elektrotechnická · změny - High level scope/detailní scope pro každou iteraci - Zpětná vazba s klientem - Jednoduché/lehké zapojení

0

Agilní manifest

• Člověk a komunikace je nad procesy a

nástroje

• Fungující software je nad vyčerpávající

dokumentaci

• Spolupráce se zákazníkem je nad přesně

sjednanou smlouvou

31

Page 32: Řízení IT projektů - Moodle Fakulta elektrotechnická · změny - High level scope/detailní scope pro každou iteraci - Zpětná vazba s klientem - Jednoduché/lehké zapojení

0

Agilní manifest

• Člověk a komunikace je nad procesy a

nástroje

• Fungující software je nad vyčerpávající

dokumentaci

• Spolupráce se zákazníkem je nad přesně

sjednanou smlouvou

• Reakce na změnu je nad přesné

dodržování plánu

32

Page 33: Řízení IT projektů - Moodle Fakulta elektrotechnická · změny - High level scope/detailní scope pro každou iteraci - Zpětná vazba s klientem - Jednoduché/lehké zapojení

0

Role projektového

manažera

33

Page 34: Řízení IT projektů - Moodle Fakulta elektrotechnická · změny - High level scope/detailní scope pro každou iteraci - Zpětná vazba s klientem - Jednoduché/lehké zapojení

Extrémní programování XP

Page 35: Řízení IT projektů - Moodle Fakulta elektrotechnická · změny - High level scope/detailní scope pro každou iteraci - Zpětná vazba s klientem - Jednoduché/lehké zapojení

0

XP

• Projekt se skládá z iterací

• Plánování je zaměřeno na časté dodání

malých releasů (iterace = release)

• Každý tým má vyčleněný vlastní pracovní

prost

• Pracovní den začíná stand up meetingem

• Reporting sleduje rychlost projektu

• Popis funkce pomocí User stories.

35

Page 36: Řízení IT projektů - Moodle Fakulta elektrotechnická · změny - High level scope/detailní scope pro každou iteraci - Zpětná vazba s klientem - Jednoduché/lehké zapojení

0

XP • Návrh je jednoduchý

– (Testable, Understandable, Browsable, and Explainable)

• Použití metafor

• Použití CRC při návrhových meetinzích

(Class, Responsibilities, and Collaboration)

• Prototypování SW i dílčích částí

• Zaměření na okamžitou přidanou hodnotu

• Refactoring

• Zákazník je vždy k dispozici

• Coding standards

• Test driven development

• Pair programming

• Continuous integration

• Sdílený kód

36

Page 37: Řízení IT projektů - Moodle Fakulta elektrotechnická · změny - High level scope/detailní scope pro každou iteraci - Zpětná vazba s klientem - Jednoduché/lehké zapojení

0

XP

• Pro každý kód existuje unit test

• Před každým release musí projít všechny

testy

• Pokud je objeven bug => je napsán unit a

akceptační test

• Akceptační testy probíhají často a jejich

úspěšnost je zveřejňována

37

Page 38: Řízení IT projektů - Moodle Fakulta elektrotechnická · změny - High level scope/detailní scope pro každou iteraci - Zpětná vazba s klientem - Jednoduché/lehké zapojení

SCRUM

Page 39: Řízení IT projektů - Moodle Fakulta elektrotechnická · změny - High level scope/detailní scope pro každou iteraci - Zpětná vazba s klientem - Jednoduché/lehké zapojení

0

Zúčastněné

strany

• Product owner

• Scrum master

• Team

39

Page 40: Řízení IT projektů - Moodle Fakulta elektrotechnická · změny - High level scope/detailní scope pro každou iteraci - Zpětná vazba s klientem - Jednoduché/lehké zapojení

0

SCRUM

dokumenty/výstupy

• Sprint/Product Backlog

• Burndown charts

• Increment

41

Page 41: Řízení IT projektů - Moodle Fakulta elektrotechnická · změny - High level scope/detailní scope pro každou iteraci - Zpětná vazba s klientem - Jednoduché/lehké zapojení

0

Project/Sprint

Backlog

Sprint Name Estimate

(days)

Remaining

(days)

1 Manažer zadává úkoly zaměstnancům 1 1

Zaměstnanec předá úkol pro otestování 2 2

Name Estimate

(hours)

1. 12. 2. 12. 3.12.

Manažer zadává úkoly

zaměstnancům

8 7 3 0

Project

Sprint

42

Page 42: Řízení IT projektů - Moodle Fakulta elektrotechnická · změny - High level scope/detailní scope pro každou iteraci - Zpětná vazba s klientem - Jednoduché/lehké zapojení

0

Burndown graph

43

Page 43: Řízení IT projektů - Moodle Fakulta elektrotechnická · změny - High level scope/detailní scope pro každou iteraci - Zpětná vazba s klientem - Jednoduché/lehké zapojení

0

Životní cyklus

44

Page 44: Řízení IT projektů - Moodle Fakulta elektrotechnická · změny - High level scope/detailní scope pro každou iteraci - Zpětná vazba s klientem - Jednoduché/lehké zapojení

0

SCRUM

Meetings

• Planning meeting

• Daily meetings

• Sprint review

• Sprint retrospective meeting

45

Page 45: Řízení IT projektů - Moodle Fakulta elektrotechnická · změny - High level scope/detailní scope pro každou iteraci - Zpětná vazba s klientem - Jednoduché/lehké zapojení

0

SCRUM „done“

• Kompletní funkčnost

• Kompletní testy

• Připraveno na nasazení

46

Page 46: Řízení IT projektů - Moodle Fakulta elektrotechnická · změny - High level scope/detailní scope pro každou iteraci - Zpětná vazba s klientem - Jednoduché/lehké zapojení

KANBAN

Page 47: Řízení IT projektů - Moodle Fakulta elektrotechnická · změny - High level scope/detailní scope pro každou iteraci - Zpětná vazba s klientem - Jednoduché/lehké zapojení

0

Co je kanban?

• Signální karta

• Vizuální metoda řízení a zlepšení projektů/výroby

• Cílem je efektivita dodávky a práce týmu

• Efektivita je založená na znalosti

– co produkovat

– v jakém množství produkovat

– kdy dodat

48

看板

Page 48: Řízení IT projektů - Moodle Fakulta elektrotechnická · změny - High level scope/detailní scope pro každou iteraci - Zpětná vazba s klientem - Jednoduché/lehké zapojení

0

Principy

1. Začni s tím co umíš

2. Začni měnit své postupy a role (inkrementální

evoluce)

3. Respektuj své “kořeny”

4. Leadership na všech úrovních

49

Page 49: Řízení IT projektů - Moodle Fakulta elektrotechnická · změny - High level scope/detailní scope pro každou iteraci - Zpětná vazba s klientem - Jednoduché/lehké zapojení

0

Cíle

1. Vizualizace workflow

2. Omez work-in-progres

3. Řiď tok (manage workflow)

4. Vysvětli principy fungování organizace (policies)

5. Uč se

6. Zlepšuj a experimentuj

50

Page 50: Řízení IT projektů - Moodle Fakulta elektrotechnická · změny - High level scope/detailní scope pro každou iteraci - Zpětná vazba s klientem - Jednoduché/lehké zapojení

0

Kanban board

51

Page 51: Řízení IT projektů - Moodle Fakulta elektrotechnická · změny - High level scope/detailní scope pro každou iteraci - Zpětná vazba s klientem - Jednoduché/lehké zapojení

LEAN DEVELOPMENT

Page 52: Řízení IT projektů - Moodle Fakulta elektrotechnická · změny - High level scope/detailní scope pro každou iteraci - Zpětná vazba s klientem - Jednoduché/lehké zapojení

0

Co je Lean

1. Eliminace odpadu

– nedělej nic co nepřináší hodnotu

– suffer oreinted programming

2. Soustavné učení

– krátké iterace + feedback

3. Rozhodování na poslední chvíli

– když je dostatek informací

4. Dodávání co nejrychleji

5. Posílení role týmu

6. Zapracování integrity

– zákaznická

– systémová

7. Soustředění se na celek

53

Page 53: Řízení IT projektů - Moodle Fakulta elektrotechnická · změny - High level scope/detailní scope pro každou iteraci - Zpětná vazba s klientem - Jednoduché/lehké zapojení

Výhody a problémy (s) Agile

Page 54: Řízení IT projektů - Moodle Fakulta elektrotechnická · změny - High level scope/detailní scope pro každou iteraci - Zpětná vazba s klientem - Jednoduché/lehké zapojení

0

Řízení projektů

používající agilní

metodiky

• Vize

• Týmový práce & spolupráce

• Jednoduchá pravidla

• Sdílení informací

• Lehké řízení

• Učení se

55

Page 55: Řízení IT projektů - Moodle Fakulta elektrotechnická · změny - High level scope/detailní scope pro každou iteraci - Zpětná vazba s klientem - Jednoduché/lehké zapojení

0

Kde se Agilní

přístup doporučuje

• Zkušení programátoři

• Očekává se hodně změn

• Malý tým

56

Page 56: Řízení IT projektů - Moodle Fakulta elektrotechnická · změny - High level scope/detailní scope pro každou iteraci - Zpětná vazba s klientem - Jednoduché/lehké zapojení

0

Co Agilní přístup

potřebuje

• Zkušené programátory

• Někoho s předchozí zkušeností s Agile

• Komunikační schopnosti

57

co je doporučováno

Page 57: Řízení IT projektů - Moodle Fakulta elektrotechnická · změny - High level scope/detailní scope pro každou iteraci - Zpětná vazba s klientem - Jednoduché/lehké zapojení

0

Kde se Agilní přístup

nedoporučuje

• Velké programátorské týmy

• Dislokované týmy

• Nutnost fixace projektového trojúhelníku

58

Page 58: Řízení IT projektů - Moodle Fakulta elektrotechnická · změny - High level scope/detailní scope pro každou iteraci - Zpětná vazba s klientem - Jednoduché/lehké zapojení

0

Co Agilní

programování není

• Anarchie

• Ignorování dokumentace

• Cowboy programming

• Striktní sada pravidel

59

Page 59: Řízení IT projektů - Moodle Fakulta elektrotechnická · změny - High level scope/detailní scope pro každou iteraci - Zpětná vazba s klientem - Jednoduché/lehké zapojení

0

Problémy s aplikací

agilního přístupu

• Strach

• Neznalost

• Firmy jsou řízeny procesně

• Manažeři

• Programátoři

60

Page 60: Řízení IT projektů - Moodle Fakulta elektrotechnická · změny - High level scope/detailní scope pro každou iteraci - Zpětná vazba s klientem - Jednoduché/lehké zapojení

0

Problémy s aplikací

agilního přístupu

• Aplikace jen některých doporučení

• Nepřítomnost zákazníka

• Spoléhá na ústní podání

• Přečtení knížky ≠ zavedení do praxe

• Malý důraz na architekturu v počátečních

fázích

61

Page 61: Řízení IT projektů - Moodle Fakulta elektrotechnická · změny - High level scope/detailní scope pro každou iteraci - Zpětná vazba s klientem - Jednoduché/lehké zapojení

Extrémní řízení projektů

Page 62: Řízení IT projektů - Moodle Fakulta elektrotechnická · změny - High level scope/detailní scope pro každou iteraci - Zpětná vazba s klientem - Jednoduché/lehké zapojení

0

XŘP – cyklus

projektu

Initiate Speculate

Incubate

Review

63