Ing. Zuzana Šochová 30.4.2008
ČVUT FEL - Řízení softwarových projektů
•1
Outsourcing jako business model Práce v týmu Procesy a řízení lidí v outsourcingu Metodologie Agile SCRUM
ČVUT FEL - Řízení softwarových projektů
•2
Proč firmy hledají outsourcing? Levnější (?) Nedostatek vlastních lidí Nedostatek znalostí
Oblasti outsourcingu SW Větší projekty Bankovní a informační systémy Specielní aplikace (nové technologie) ČVUT FEL - Řízení softwarových projektů
•3
CERTICON Employees
Employment structure SW Engineering
140 Architect
120 100
Junior Engineer
Senior
80 60
Designer
40
knowledge Fast learning Analytical skills Communication
20 2008
2007
2006
2005
2004
2003
2002
2001
2000
1999
1998
0
Mission-critical aplikace
Life-critical aplikace Oblast medicínckých aplikací
Oblast komunikace
Defibrilátory, pacemakery
Komunikace mezi vlaky Řízení letového provozu
ČVUT FEL - Řízení softwarových projektů
•4
Komunikace a kulturní rozdíly, spolupráce Coaching virtuálních týmů Zaručit kvalitu práce Jak předat kontext Domain knowledge
Commitment, partnership
Cena není všechno ! ČVUT FEL - Řízení softwarových projektů
•5
Executive support
Successful IT projects 40%
User involvement Experienced project manager Clear business objectives Minimized scope, small milestones Standard software infrastructure Firm basic requirements
Formal methodology
30%
35% 28%
20%
16%
10%
1994 2000 2006
0%
Criteria for success completed on time, on budget, with all features/functions originally
specified.
Reliable estimates Other criteria - Standish CHAOS study (Software Magazine)
ČVUT FEL - Řízení softwarových projektů
•6
Kvality management (procesy) ISO certifikace (ISO 9001:2000) (http://www.iso.org) SixSigma, Lean Sigma (http://www.isixsigma.com/)
Formální metodologie (týmová spolupráce) Agile (http://agilemanifesto.org/) SCRUM (http://www.scrumalliance.org/) Crystal Clear (http://www.agilekiwi.com/crystal_clear.htm)
XP - Extreme Programming (http://www.extremeprogramming.org/) ČVUT FEL - Řízení softwarových projektů
•7
Komunikace v rámci týmu Spolupráce Rychlé učení nových členů Rychlejší získání domain knowledge Skupina individualit Nejasné, překrývající se role Soutěžení mezi týmy
Efektivnější na menší a jednodušší projekty Jasná zodpovědnost Na všechno musí přijít sám Distribuce znalostí a zkušeností Horší motivace
ČVUT FEL - Řízení softwarových projektů
•8
Definované role a zodpovědnost Spolupráce a komunikace Training, domain knowledge Motivace, commitment Jasný cíl
Prostředí příznivé inovacím
ČVUT FEL - Řízení softwarových projektů
•9
Spolupráce
Produktivita
Malé inkrementy
Předvídatelnost
Programovací praktiky
Kvalita
ČVUT FEL - Řízení softwarových projektů
•10
Agile Methods provide a framework for collaborative teams to reliably deliver software using a highly iterative approach that provides frequent feedback for continuous improvement of the process and product. Key concepts include:
Constant inspection and adaptation Focus on customer value Data driven; detect and manage problems early and often Increased focus & synchronization Emphasis on collaboration, teamwork and learning Analogous to Lean Manufacturing: less “inventory”, reduced value stream delays Change tolerant; more business opportunities Open, highly visible, inclusive
ČVUT FEL - Řízení softwarových projektů
•11
Principles: Simplicity Deliver Customer Value Embrace Change Inspect and Adapt Eliminate Waste Maximize Transparency Itegrate Incrementally Cultivate Collaboration
ČVUT FEL - Řízení softwarových projektů
•12
Malé týmy
Zástupce zákazníka součástí týmu Krátké vývojové cykly - sprinty Backlog, body, rychlost
Používat Burndown graf Denní meetings – SCRUMy Pair programming
ČVUT FEL - Řízení softwarových projektů
•13
Rozdělit práci na menší celky Během sprintu by se měla stihnout celá úloha Analýza Design a implementace Testování a review Ohodnocení úloh body Duration = Effort / Velocity. Pro první plán: 1bod = 1man-day Bod je bezrozměrný, máme jen rychlost týmu ČVUT FEL - Řízení softwarových projektů
•14
Pre-planning
Planning
Sprint Results
• Backlog tasks • Priorities
• Team • Estimations
• Burn-Down • Demo
ČVUT FEL - Řízení softwarových projektů
•15
Zástupce zákazníka Architekt Project leader ScrumMaster Nastavení priorit Připravit sprint backlog pro týmy
ČVUT FEL - Řízení softwarových projektů
•16
Tým vybere úlohy co dokončí za sprint Ohodnotí nové úlohy a zreviduje existující Výstupem sprint backlog, počáteční přiřazení lidí Otázky před začátkem projektu: Co to znamená „dokončit“ úlohu? Kdy si můžu připsat body za úlohu?
Kdy můžu navýšit body, přidat novou úlohu do backlogu? Kdy upravit body a kdy Velocity Plan? ČVUT FEL - Řízení softwarových projektů
•17
Tým je zodpovědný za dokončení naplánovaných úloh Praktiky: Kolektivní vlastnictví kódu Spolupráce Kontinuální integrace Testování a review součástí vývoje ČVUT FEL - Řízení softwarových projektů
•18
Propojeno s plánem v
Gen1 MRI Velocity Plan
70 60
50 40 30
20 10
Actual Velocity
07/30/08
07/16/08
07/02/08
06/18/08
06/04/08
05/21/08
05/07/08
04/23/08
04/09/08
03/26/08
03/12/08
02/27/08
02/13/08
01/30/08
01/16/08
01/02/08
12/19/07
12/05/07
11/21/07
0
Concertu (MSProj) Vizualizace stavu projektu Motivace týmu Soutěživost mezi týmy Commitment
Planned Velocity
ČVUT FEL - Řízení softwarových projektů
•19
ČVUT FEL - Řízení softwarových projektů
•20
Neformální krátký meeting – 5 min Každý den pravidelně Zásadní události v teamu Na čem kdo pracoval včera Na bude pracovat dnes
ČVUT FEL - Řízení softwarových projektů
•21
Celý tým v jedné místnosti Přístup k informacím nepřímo, pouhým posloucháním
ostatních Event-driven SCRUM Sdílení Domain knowledge Omezení formálních meetingů
ČVUT FEL - Řízení softwarových projektů
•22
Aktivní účast na plánování Úlohy jsou ohodnocovány týmem Review proces Automatické komponentní testy, test first
development Jednoduchý design Častá pravidelná integrace
ČVUT FEL - Řízení softwarových projektů
•23
Na konci každého sprintu Plánovat tak aby bylo co ukázat Zpětná vazba včas a efektivně Omezení rizika refactoringu Omezení rizika neúspěchu Motivace týmu Commitment
ČVUT FEL - Řízení softwarových projektů
•24
Krátké sprinty Aktivní účast na plánování
Jasně definované krátké úlohy Burndown graf Každodenní meetingy - SCRUM Prezentace výsledků zákazníkovi
ČVUT FEL - Řízení softwarových projektů
•25
ČVUT FEL - Řízení softwarových projektů
•26
Kontakt: Zuzana Šochová
[email protected],
[email protected] http://www.certicon.cz, http://soch.cz ČVUT FEL - Řízení softwarových projektů
•27