+ All Categories
Home > Documents > Jak Microsoft d ělá software?

Jak Microsoft d ělá software?

Date post: 01-Jan-2016
Category:
Upload: lila-hendrix
View: 39 times
Download: 2 times
Share this document with a friend
Description:
Jak Microsoft d ělá software?. Michael Juřek Software Architect Microsoft s.r.o. mjurek @microsoft.com. Agenda. V čem je MS stejný a v čem jiný? Prostředí, firemní kultura, ... Týmy Procesy Nástroje. V čem je MS stejný? Stejné problémy. Predikce postupu - PowerPoint PPT Presentation
49
Transcript
Page 1: Jak Microsoft d ělá software?
Page 2: Jak Microsoft d ělá software?

Jak Microsoft dJak Microsoft dělá software?ělá software?

Michael JuřekMichael Juřek

Software ArchitectSoftware Architect

Microsoft s.r.o.Microsoft s.r.o.

[email protected]@microsoft.com

Page 3: Jak Microsoft d ělá software?

AgendaAgenda

V čem je MS stejný a v čem jiný?V čem je MS stejný a v čem jiný?

Prostředí, firemní kultura, ...Prostředí, firemní kultura, ...

Týmy Týmy

Procesy Procesy

NástrojeNástroje

Page 4: Jak Microsoft d ělá software?

V čem je MS stejný?V čem je MS stejný?Stejné problémyStejné problémy

Predikce postupuPredikce postupu

Odhad (a dodržení) nákladů a termínůOdhad (a dodržení) nákladů a termínů

(Ne)koordinovanost lidí(Ne)koordinovanost lidí

Vnitřní boje a rivalita skupinVnitřní boje a rivalita skupin

Špatná komunikaceŠpatná komunikace

Neodhalení rizik včasNeodhalení rizik včas

Page 5: Jak Microsoft d ělá software?

V čem je MS jiný?V čem je MS jiný?Jiná dimenzeJiná dimenze

Množství lidíMnožství lidí

Množství produktůMnožství produktů (-> z (-> závislostí)ávislostí)

Velikost spravovaného kóduVelikost spravovaného kódu

Větší specializace lidíVětší specializace lidí

Množství jazyků a nástrojůMnožství jazyků a nástrojů

Page 6: Jak Microsoft d ělá software?

HistorickHistorická číslaá čísla

0

5000

10000

15000

20000

25000

30000

35000

40000

45000

50000

55000

1975

1976

1977

1978

1979

1980

1981

1982

1983

1984

1985

1986

1987

1988

1989

1990

1991

1992

1993

1994

1995

1996

1997

1998

1999

2000

2001

2002

2003

2004

Employees Engineers

Page 7: Jak Microsoft d ělá software?

Velikost týmůVelikost týmůIBM DOS 1981IBM DOS 1981

Omluvte prosOmluvte prosím nekvalitní reprodukci z knihy.ím nekvalitní reprodukci z knihy.

Page 8: Jak Microsoft d ělá software?

Velikost týmůVelikost týmůWindows 3.0 a Windows 95Windows 3.0 a Windows 95

Omluvte prosOmluvte prosím nekvalitní reprodukci z knihy.ím nekvalitní reprodukci z knihy.

Page 9: Jak Microsoft d ělá software?

Velikost týmůVelikost týmůWindows 2000Windows 2000

Omluvte prosOmluvte prosím nekvalitní reprodukci z knihy.ím nekvalitní reprodukci z knihy.

Page 10: Jak Microsoft d ělá software?

... a ještě druhá polovina... a ještě druhá polovinaWindows 2000 – 5325 lidíWindows 2000 – 5325 lidí

Omluvte prosOmluvte prosím nekvalitní reprodukci z knihy.ím nekvalitní reprodukci z knihy.

Page 11: Jak Microsoft d ělá software?

AgendaAgenda

V čem je MS stejný a v čem jiný?V čem je MS stejný a v čem jiný?

Prostředí, firemní kultura, ...Prostředí, firemní kultura, ...

Týmy Týmy

Procesy Procesy

NástrojeNástroje

Page 12: Jak Microsoft d ělá software?

Multinárodní firmaMultinárodní firmaVVývoj silně koncentrován:ývoj silně koncentrován:

Redmond Campus poblíž SeattluRedmond Campus poblíž Seattlu

Vývoj některých technologií i v jiných Vývoj některých technologií i v jiných lokalitách:lokalitách:

Různá místa v USA (často pozůstatky Různá místa v USA (často pozůstatky akvizic)akvizic)

Indie, Čína– levná pracovní sílaIndie, Čína– levná pracovní síla

Dánsko – ex-NavisionDánsko – ex-Navision

Izrael – některé bezpečnostní technologieIzrael – některé bezpečnostní technologie

MS Research – Cambridge, Japonsko, ...MS Research – Cambridge, Japonsko, ...

Page 13: Jak Microsoft d ělá software?

Redmond, WA, USARedmond, WA, USA

Page 14: Jak Microsoft d ělá software?

Firemní kulturaFiremní kulturaKaždý vývojář má nárok na svoji místnostKaždý vývojář má nárok na svoji místnost

Rozměry neřešme Rozměry neřešme

Cola Cola & pop-corn& pop-corn

Tisíce třípísmenných zkratekTisíce třípísmenných zkratek

Slang:Slang:Dog fooding – sDog fooding – sám používám nehotový ám používám nehotový produktprodukt

Death march – dokončování produktuDeath march – dokončování produktu

War room – tým rozhodující o prohlášení War room – tým rozhodující o prohlášení produktu za hotovýproduktu za hotový

......

Page 15: Jak Microsoft d ělá software?

AgendaAgenda

V čem je MS stejný a v čem jiný?V čem je MS stejný a v čem jiný?

Prostředí, firemní kultura, ...Prostředí, firemní kultura, ...

TýmyTýmy

ProcesyProcesy

NástrojeNástroje

Page 16: Jak Microsoft d ělá software?

(De)centralizace(De)centralizaceRozdělení do 4 velkých divizíRozdělení do 4 velkých divizí

Produktové týmy uvnitř divizí jsou Produktové týmy uvnitř divizí jsou relativně nezávislérelativně nezávislé

Koordinace/spolupráce je úkolem týmů, Koordinace/spolupráce je úkolem týmů, senior management ji kontroluje, ale senior management ji kontroluje, ale neřídíneřídí

Principy MSF a infrastruktura ve Principy MSF a infrastruktura ve vývojovém procesu jsou povinné:vývojovém procesu jsou povinné:

V jejich implementaci je značná míra volnostiV jejich implementaci je značná míra volnosti

Page 17: Jak Microsoft d ělá software?

Organizace týmuOrganizace týmuProdukty vytváří produktové jednotky Produkty vytváří produktové jednotky “Product Units”“Product Units”

Obsahují 3 hlavní disciplínyObsahují 3 hlavní disciplíny (Dev, Test, PM) (Dev, Test, PM)Řídí jeŘídí je “Product Unit Manager” “Product Unit Manager”Velikost cca 30-200 lidíVelikost cca 30-200 lidí

Program Management (PM)Program Management (PM)Zodpovědnost za definici produktu, její dodržení Zodpovědnost za definici produktu, její dodržení a koordinacia koordinaci

Development (Dev)Development (Dev)Zodpovědnost za implementaci produktuZodpovědnost za implementaci produktu

TestTestZodpovědný za testování a zajištění kvalityZodpovědný za testování a zajištění kvality

Page 18: Jak Microsoft d ělá software?

Organizační strukturaOrganizační struktura

Product LineManager

Core EngineeringManager

PUManager #1

PUManager #2

DevelopmentManager

TestManager

Group ProgramManager

DevelopmentManager

TestManager

Group ProgramManager

PUManager #3

DevelopmentManager

TestManager

Group ProgramManager

DevelopmentManager

TestManager

Group ProgramManager

Page 19: Jak Microsoft d ělá software?

AgendaAgenda

V čem je MS stejný a v čem jiný?V čem je MS stejný a v čem jiný?

Prostředí, firemní kultura, ...Prostředí, firemní kultura, ...

Týmy Týmy

ProcesyProcesy

NástrojeNástroje

Page 20: Jak Microsoft d ělá software?

První krokyPrvní krokyShromáždění požadavků (marketing, Shromáždění požadavků (marketing, Product Manager)Product Manager)

Definice vize – schválena senior vedenímDefinice vize – schválena senior vedením

Široký tým upřesní vizi a definuje hlavní Široký tým upřesní vizi a definuje hlavní témata produktu, stanoví rámcová datatémata produktu, stanoví rámcová data..

Produktová jednotka pak provede detailní Produktová jednotka pak provede detailní plánování produktu:plánování produktu:

PersónyPersóny

ScénářeScénáře

TermínyTermíny

Page 21: Jak Microsoft d ělá software?

PersPersóónny (personas)y (personas)

V kontextu vývoje zastupuje uživatele V kontextu vývoje zastupuje uživatele anebo jejich skupinu (podobné „actor“)anebo jejich skupinu (podobné „actor“)

Persona není abstraktní a neosobní Persona není abstraktní a neosobní „actor“, je to fiktivní, ale konkrétní osoba„actor“, je to fiktivní, ale konkrétní osoba

Popisuje se její chování, návyky, motivace Popisuje se její chování, návyky, motivace apod., je možné ji ztotožnit s konkrétním apod., je možné ji ztotožnit s konkrétním člověkemčlověkem

Používá se ke stanovení cílů (a z nich pak Používá se ke stanovení cílů (a z nich pak scénářů)scénářů)

Page 22: Jak Microsoft d ělá software?

ScénářeScénářePersónám se přiřadí konkrétní scénáře Persónám se přiřadí konkrétní scénáře na základě analýzy zpětné vazby od na základě analýzy zpětné vazby od vybraných zákazníků, vývoje trhu, ...vybraných zákazníků, vývoje trhu, ...

Scénář se rozpadá na menší části – rysy Scénář se rozpadá na menší části – rysy („features“)(„features“)

Jednotlivé rysy se ohodnotí:Jednotlivé rysy se ohodnotí:Např. pracnost, složitost, důležitost, míra Např. pracnost, složitost, důležitost, míra rizika na tříbodové stupnicirizika na tříbodové stupnici

Tyto údaje slouží k upřesnění termínů a v Tyto údaje slouží k upřesnění termínů a v případě termínových tlaků jsou případě termínových tlaků jsou rozhodující o případné redukci rysůrozhodující o případné redukci rysů

Page 23: Jak Microsoft d ělá software?

MilníkMilník = = jednotka postupu v projektujednotka postupu v projektuCílCíl: : Flexibilní plánování, sledování, stabilizace a zpětná vazbaFlexibilní plánování, sledování, stabilizace a zpětná vazba

Typický postup milníkůTypický postup milníků: M0, M1, M2, Mx…, Beta1, Beta2, RTM: M0, M1, M2, Mx…, Beta1, Beta2, RTM

Umožňují měření postupu a zbývající vzdálenostiUmožňují měření postupu a zbývající vzdálenosti

Rysy jsou přiřazeny jednotlivým milníkům podle Rysy jsou přiřazeny jednotlivým milníkům podle definovaných pravidel (priorita, složitost, ...)definovaných pravidel (priorita, složitost, ...)

Umožňuje flexibilní plánování mezi jednotlivými milníky, Umožňuje flexibilní plánování mezi jednotlivými milníky, eventuální redukci rozsahu rysůeventuální redukci rozsahu rysů

Milník je dosažen, pokud jsou splněna jeho kvantitativní Milník je dosažen, pokud jsou splněna jeho kvantitativní i kvalitativní kritériai kvalitativní kritéria

Zaručuje, že se nepostupuje vpřed příliš rychle bez koordinaceZaručuje, že se nepostupuje vpřed příliš rychle bez koordinace

Zaručuje relativně stabilní produkt na konci milníkuZaručuje relativně stabilní produkt na konci milníku

Dosažení milníku je vždy explicitně ohlášeno a spojeno s verzí Dosažení milníku je vždy explicitně ohlášeno a spojeno s verzí produktuproduktu

Plánování milníkůPlánování milníků

Page 24: Jak Microsoft d ělá software?

Matice kompromisůMatice kompromisůPočáteční režim:Počáteční režim:

Fixní zdroje, zvolíme rozsah, přizpůsobíme Fixní zdroje, zvolíme rozsah, přizpůsobíme termíntermín

V dalších fázích projektu:V dalších fázích projektu:Fixní zdroje, zvolíme termín, přizpůsobíme Fixní zdroje, zvolíme termín, přizpůsobíme rozsahrozsah

Pozor na Beta zákazníkyPozor na Beta zákazníky

Pouze v mimořádných případech:Pouze v mimořádných případech:Fixní termín, zvolíme rozsah, přizpůsobíme Fixní termín, zvolíme rozsah, přizpůsobíme zdrojezdroje

Page 25: Jak Microsoft d ělá software?

Klíčové milníky v projektechKlíčové milníky v projektech

Milník/FázeMilník/Fáze DefiniceDefinice

Spec CompleteSpec Complete Scénáře a rysy jsou definovány a prošly revizíScénáře a rysy jsou definovány a prošly revizí

Feature CodingFeature Coding Typicky 8-9 týdnů – implementační práceTypicky 8-9 týdnů – implementační práce

Code Complete (CC)Code Complete (CC) Všechny rysy pro daný milník jsou implementoványVšechny rysy pro daný milník jsou implementovány

Test Plan Complete Test Plan Complete Testovací plány pro všechny rysy jsou hotové a prošly revizíTestovací plány pro všechny rysy jsou hotové a prošly revizí

Test Case Code CompleteTest Case Code Complete Všechny testy jsou hotovéVšechny testy jsou hotové

ZBB Test Pass (ZBB TP)ZBB Test Pass (ZBB TP) Všechny funkční testy běží na současném builduVšechny funkční testy běží na současném buildu

Zero Bug Bounce (ZBB)Zero Bug Bounce (ZBB) # # chyb pro danou iteraci starších než chyb pro danou iteraci starších než 48 ho48 hodindin = 0 = 0

Zero Resolved Bugs (ZRB)Zero Resolved Bugs (ZRB) # # počet vyřešených, ale neuzavřených chybpočet vyřešených, ale neuzavřených chyb = 0 = 0

Test Sign-OffTest Sign-Off Finální verifikace a uvolnění kódu širšímu publikuFinální verifikace a uvolnění kódu širšímu publiku

Page 26: Jak Microsoft d ělá software?

M0,M1, ... (Milestone) - prototypováníM0,M1, ... (Milestone) - prototypováníIDW (Internal Developer Workstation) – k IDW (Internal Developer Workstation) – k dispozici dalším skupinám uvnitř MSdispozici dalším skupinám uvnitř MSTAP (Technology Adoption Program) – k dispozici TAP (Technology Adoption Program) – k dispozici vybraným zákazníkůmvybraným zákazníkůmBeta, CTP (Community Technology Preview) – k Beta, CTP (Community Technology Preview) – k dispozici široké veřejnosti nebo jenom MSDN dispozici široké veřejnosti nebo jenom MSDN předplatitelům nebo zaregistrovaným testerůmpředplatitelům nebo zaregistrovaným testerůmRC (Release Candidate) – v podstatě hotový RC (Release Candidate) – v podstatě hotový produkt, který ještě neprošel finálními testyprodukt, který ještě neprošel finálními testyEscrow – produkt, který je později prohlášen za Escrow – produkt, který je později prohlášen za finální, pokud se nevyskytne mimořádně závažný finální, pokud se nevyskytne mimořádně závažný problémproblémRTM (Ready To Manufacturing) – hotový produktRTM (Ready To Manufacturing) – hotový produkt

Jména iteracíJména iterací

Page 27: Jak Microsoft d ělá software?

Vývoj – uložení kóduVývoj – uložení kóduCílem je efektivní, čistý, dobře faktorizovaný a Cílem je efektivní, čistý, dobře faktorizovaný a udržovatelný kódudržovatelný kód

Hotový kód musí mít minimální životnost 10 let po Hotový kód musí mít minimální životnost 10 let po dobu garantované podporydobu garantované podpory

Dokumentace uložena externě mimo zdrojový Dokumentace uložena externě mimo zdrojový kódkód

Aby nedocházelo ke kolizím vývojářů a Aby nedocházelo ke kolizím vývojářů a dokumentaristůdokumentaristů

Všechny řetězce jsou zásadně uloženy mimo Všechny řetězce jsou zásadně uloženy mimo zdrojový kódzdrojový kód

Lokalizace prováděna v Irsku a JaponskuLokalizace prováděna v Irsku a Japonsku

Např.Např. .NET Framework .NET Framework lokalizován dolokalizován do 34 34 jazyků, jazyků, Visual Studio do 8 jazykůVisual Studio do 8 jazyků

Page 28: Jak Microsoft d ělá software?

Vývoj – větve kóduVývoj – větve kóduUdržuje se jediný strom kódu pro celou produktovou Udržuje se jediný strom kódu pro celou produktovou řaduřadu

Např. je možné jedním příkazem provést Např. je možné jedním příkazem provést “build -c” “build -c” a provést a provést kompletní kompilacikompletní kompilaci CLR, ASP.NET, .NET FX, Visual Studio a CLR, ASP.NET, .NET FX, Visual Studio a setup programsetup programu včetně generování médiíu včetně generování médií ( (cca 9 hodincca 9 hodin))V libovolném podadresáři je možné dát V libovolném podadresáři je možné dát “build -c” “build -c” a provést a provést rekompilaci pouze částirekompilaci pouze části

Každý tým si udržuje oddělenou privátní větev kódu:Každý tým si udržuje oddělenou privátní větev kódu:Interní systém SourceDepot optimalizovaný proInterní systém SourceDepot optimalizovaný pro branching/mergingbranching/mergingPočet check-in operací do hlavního stromu je minimalizovánPočet check-in operací do hlavního stromu je minimalizován

KaždýKaždý check-in check-in musí projít revizí jiného vývojáře v týmu musí projít revizí jiného vývojáře v týmu před uložením změn do hlavního stromupřed uložením změn do hlavního stromu..Po provedení check-in dostane každý člen týmu e-mail Po provedení check-in dostane každý člen týmu e-mail sumarizující provedené změny a opravené chybysumarizující provedené změny a opravené chyby

Page 29: Jak Microsoft d ělá software?

Vývoj - integrace kóduVývoj - integrace kóduVirtual Build Lab (VBL) Virtual Build Lab (VBL)

Interní systém kontroly zdrojového kódu Interní systém kontroly zdrojového kódu optimalizovaný pro branching/mergingoptimalizovaný pro branching/mergingUmožňuje koordinaci vývoje (např. SQL a .NET Umožňuje koordinaci vývoje (např. SQL a .NET framework)framework)

Zpětná integrace:Zpětná integrace:Kód se po dosažení milníku ve skupině přesouvá z Kód se po dosažení milníku ve skupině přesouvá z privátních větví do veřejnějších větví (eventuálně až privátních větví do veřejnějších větví (eventuálně až do hlavního úložiště kódu)do hlavního úložiště kódu)

Dopředná integrace:Dopředná integrace:Změny v kódu od ostatních skupin se přesouvají Změny v kódu od ostatních skupin se přesouvají „dolů“ do privátnějších větví„dolů“ do privátnějších větvíUmožňuje integraci doposud nezávislých změn Umožňuje integraci doposud nezávislých změn provedených jednotlivými skupinamiprovedených jednotlivými skupinamiNěkdy je nutné řešit vzájemné nekompatibility změnNěkdy je nutné řešit vzájemné nekompatibility změn

Page 30: Jak Microsoft d ělá software?

Virtual Build Lab – pohyb kóduVirtual Build Lab – pohyb kódu

Page 31: Jak Microsoft d ělá software?

Denní buildDenní buildNovýNový “build” “build” produktu je vytvářen každý den produktu je vytvářen každý den

Vynucuje disciplínu, kritické zejména na konci projektuVynucuje disciplínu, kritické zejména na konci projektu

Centrální spravované prostředí provádí build pro celou Centrální spravované prostředí provádí build pro celou divizidivizi ( (např. .NET frameworknapř. .NET framework+VS+VS 2005 2005 = 2200 lid = 2200 lidíí))

Nepřetržitý provoz 24x7Nepřetržitý provoz 24x7Každý tým má tzv.Každý tým má tzv. build facilitation developer build facilitation developeraa (BFD) (BFD) neustále neustále na telefonu, aby pomohl s případnými problémyna telefonu, aby pomohl s případnými problémy

Proces buildu na příkladu .NET frameworkuProces buildu na příkladu .NET frameworku+VS:+VS:ZahZahájení synchronizace zdrojového kóduájení synchronizace zdrojového kódu (~24:00) (~24:00)Zahájení vlastního builduZahájení vlastního buildu (~4:00) (~4:00)Build je dokončenBuild je dokončen (~1 (~133:0:000))DokončeníDokončení BVT (Build Verification Tests) BVT (Build Verification Tests) verifikace verifikace (~(~1616:00):00)Získání případných hotfixů odZískání případných hotfixů od BFD BFD koordinátora a koordinátora a inkrementální rebuild inkrementální rebuild + BVT+ BVT

Opakuje se, dokud nenOpakuje se, dokud není build úspěšnýí build úspěšný

Page 32: Jak Microsoft d ělá software?

TestTestování 1/2ování 1/2V Test týmů jsou vývojáři zodpovědní za navržení V Test týmů jsou vývojáři zodpovědní za navržení testovacího plánu, vývoj automatických testů a testovacího plánu, vývoj automatických testů a provoz testovací infrastrukturyprovoz testovací infrastrukturyDůraz na kvalitu a obranu před regresními Důraz na kvalitu a obranu před regresními chybami, rychlou analýzu a porovnání buildůchybami, rychlou analýzu a porovnání buildůPříklad - .NET framework 2.0 Příklad - .NET framework 2.0 + VS 2005:+ VS 2005:

10,339,207 10,339,207 funkčních testůfunkčních testů~9000 ~9000 serverů v testovací laboratoři ke spouštění testůserverů v testovací laboratoři ke spouštění testůÚplné provedení všech testů trvá 21 dníÚplné provedení všech testů trvá 21 dní

Interní systém správy testů dovoluje:Interní systém správy testů dovoluje:Vytvářet, měnit, analyzovat testovací případy a scénářeVytvářet, měnit, analyzovat testovací případy a scénářeVzdálený re-imaging počítačů v testovací laboratořiVzdálený re-imaging počítačů v testovací laboratořiVzdálené spuštění sady testů v testovací laboratořiVzdálené spuštění sady testů v testovací laboratoři Vzdálenou analýzu výsledků a jejich publikováníVzdálenou analýzu výsledků a jejich publikování

Page 33: Jak Microsoft d ělá software?

TestTestování 2/2ování 2/2Testovací plány jsou prvním krokemTestovací plány jsou prvním krokem

Detailní dokument popisující všechny aspekty testování a Detailní dokument popisující všechny aspekty testování a požadavky na výsledky pro každý milníkpožadavky na výsledky pro každý milník

Cílem je pokrytí alespoňCílem je pokrytí alespoň 70% 70% kódu kódu automatizovanými testyautomatizovanými testy

Některé skupiny dosahují až 85Některé skupiny dosahují až 85%%CCíl se neustále zvyšujeíl se neustále zvyšujeStoupá důraz na automatizované testy UIStoupá důraz na automatizované testy UI

Snaha odhalovat „díry“ v testováníSnaha odhalovat „díry“ v testováníKdyž je nalezena chyba, tester vždy musí vytvořit testovací Když je nalezena chyba, tester vždy musí vytvořit testovací případ, který chybu odhalí a teprve pak se chyba opravujepřípad, který chybu odhalí a teprve pak se chyba opravuje

Automatické testování pro odhalování regresních Automatické testování pro odhalování regresních chybchyb

Zhruba dochází k 1 regresi v 3-6Zhruba dochází k 1 regresi v 3-6% oprav chyb% oprav chyb

Page 34: Jak Microsoft d ělá software?

PředpPředposlednoslední krokyí krokyVelké projekty prochází jakýmsi přistávacím Velké projekty prochází jakýmsi přistávacím manévrem, nejsou ukončeny náhlemanévrem, nejsou ukončeny náhle

Jako tanker, také nemůže přistát zničehonicJako tanker, také nemůže přistát zničehonic

Klíčové krokyKlíčové kroky1.1. Uzamčení množiny rysů, zákaz jakýchkoliv Uzamčení množiny rysů, zákaz jakýchkoliv

změnzměn

2.2. Kompletní otestování k odhalení chybKompletní otestování k odhalení chyb

3.3. Snaha o dosažení nula známých chybSnaha o dosažení nula známých chyb (ZBB) (ZBB)

4.4. Opakuje se, dokud množství nově Opakuje se, dokud množství nově odhalovaných chyb není dostatečně nízké odhalovaných chyb není dostatečně nízké

5.5. Zpřísnění klasifikace chyb pro opravu v dané Zpřísnění klasifikace chyb pro opravu v dané iteraci (pouze bezpečnostní a kritické chyby)iteraci (pouze bezpečnostní a kritické chyby)

Page 35: Jak Microsoft d ělá software?

Poslední krokyPoslední krokySnaha o dosažení nulové úrovně změn v kódu (code Snaha o dosažení nulové úrovně změn v kódu (code churn)churn)Ukončení vývoje přebírá „War Team“ (WT):Ukončení vývoje přebírá „War Team“ (WT):

Tvoří ho nejzkušenější členové týmuTvoří ho nejzkušenější členové týmuZodpovědný za závěrečná rozhodnutíZodpovědný za závěrečná rozhodnutíSetkává se minimálně 1x denněSetkává se minimálně 1x denně

Tell ModeTell Mode – tým může opravovat závažné chyby a je – tým může opravovat závažné chyby a je povinen oznámit to Wpovinen oznámit to WTTAsk ModeAsk Mode – tým musí požádat WT o povolení opravy – tým musí požádat WT o povolení opravyNeustále se zpřísňují požadavky na na povolení opravy Neustále se zpřísňují požadavky na na povolení opravy („raising triage bar“)(„raising triage bar“)Produkt je uvolněn, jakmile dostatečně dlouho nebyla Produkt je uvolněn, jakmile dostatečně dlouho nebyla povolena oprava chyby („escrow“) a zároveň proběhlo povolena oprava chyby („escrow“) a zároveň proběhlo úspěšné poslední testováníúspěšné poslední testování

Page 36: Jak Microsoft d ělá software?

AgendaAgenda

V čem je MS stejný a v čem jiný?V čem je MS stejný a v čem jiný?

Prostředí, firemní kultura, ...Prostředí, firemní kultura, ...

Týmy Týmy

ProcesyProcesy

NástrojeNástroje

Page 37: Jak Microsoft d ělá software?

Kde se používá VSTS ?Kde se používá VSTS ?VSTS bylo vyvinuto s pomocí VSTSVSTS bylo vyvinuto s pomocí VSTS

Beta 2 se vyvíjela pomocí Beta 1 apod.Beta 2 se vyvíjela pomocí Beta 1 apod.

Nový vývoj podle možností přechází na Nový vývoj podle možností přechází na VSTSVSTS

Např. SQL Server „Katmai“Např. SQL Server „Katmai“

Stávající projekty se vyvíjí stávajícími Stávající projekty se vyvíjí stávajícími nástroji (např. Windows Vista)nástroji (např. Windows Vista)

Příští verze VSTS by měla nahradit Příští verze VSTS by měla nahradit veškeré dosavadní vývojové nástroje veškeré dosavadní vývojové nástroje používané v MSpoužívané v MS

Page 38: Jak Microsoft d ělá software?

Modelovací nástrojeModelovací nástrojeModely UML pouze k vizualizaciModely UML pouze k vizualizaci a a porozumporozumění, ne ke generování kóduění, ne ke generování kódu

Nejčastějším nástrojem je VisioNejčastějším nástrojem je Visio

Class designer ve VS 2005 pro návrh Class designer ve VS 2005 pro návrh struktury .NET kódustruktury .NET kódu

Budoucnost – používání DSL jazyků pro Budoucnost – používání DSL jazyků pro specifické úlohyspecifické úlohy

Page 39: Jak Microsoft d ělá software?

Vývojové nástrojeVývojové nástroje

Vývojáři v MS používají pro vývoj Vývojáři v MS používají pro vývoj různé nástrojerůzné nástroje

Visual Studio, Emacs, VI, Source Visual Studio, Emacs, VI, Source Insight,Insight, ... ...

Nejsou povoleny žádné soubory Nejsou povoleny žádné soubory specifické pro daný nástrojspecifické pro daný nástroj

C++ a C# C++ a C# obsáhnou drtivou většinu obsáhnou drtivou většinu vývojevývoje

Page 40: Jak Microsoft d ělá software?

Kvalita kóduKvalita kóduStatická analýzaStatická analýza

Interní nástroje – FxCop (managed), PreFix, Interní nástroje – FxCop (managed), PreFix, PreFast (nativní)PreFast (nativní)

Nově zahrnuty ve VS Team DeveloperNově zahrnuty ve VS Team Developer

Dynamická analýzaDynamická analýza2 interní profilery – jeden vytvořil SQL tým a 2 interní profilery – jeden vytvořil SQL tým a druhý Windows tým, jeden na principu druhý Windows tým, jeden na principu instrumentace a druhý samplinguinstrumentace a druhý samplingu

Nově zahrnuty ve VS Team DeveloperNově zahrnuty ve VS Team Developer

Page 41: Jak Microsoft d ělá software?

Bug TrackingBug TrackingInterní systém pro sledování chybInterní systém pro sledování chyb (Product (Product Studio).Studio).

Bohaté reportování a sledování historie každé Bohaté reportování a sledování historie každé položkypoložky

Povinně využíván všemi týmy v MS (umožňuje Povinně využíván všemi týmy v MS (umožňuje prolinkování chyb mezi produkty)prolinkování chyb mezi produkty)

Chyby jsou ohodnoceny (Chyby jsou ohodnoceny (“triaged”“triaged”)) leadery leadery týmů a je jim přiřazena priorita 0-4týmů a je jim přiřazena priorita 0-4

Opravují se pak podle priorityOpravují se pak podle priority

Denní stav chyb se posílá celé diviziDenní stav chyb se posílá celé diviziKlíčové metrikyKlíčové metriky: : nové/vyřešené/uzavřené chyby nové/vyřešené/uzavřené chyby (sumárně i podle lidí)(sumárně i podle lidí)

Page 42: Jak Microsoft d ělá software?

Product Studio: Bug QueriesProduct Studio: Bug Queries

Page 43: Jak Microsoft d ělá software?

Product Studio: Bug DetailProduct Studio: Bug Detail

Page 44: Jak Microsoft d ělá software?

TestováníTestováníVlastní testovací systém „Mad Dog“Vlastní testovací systém „Mad Dog“

V projektech používajících VSTS se V projektech používajících VSTS se přechází na vestavěné testovánípřechází na vestavěné testování

Vysoká úroveň automatizace testů Vysoká úroveň automatizace testů nevizuálních částínevizuálních částí

Dlouhodobě neuspokojivá automatizace Dlouhodobě neuspokojivá automatizace funkčních testů vizuálního rozhranífunkčních testů vizuálního rozhraní

Používají se nástroje třetích stranPoužívají se nástroje třetích stran

Page 45: Jak Microsoft d ělá software?

““Mad-dog” Test Automation Mad-dog” Test Automation SystemSystem

Page 46: Jak Microsoft d ělá software?

Monitorování kvality – sběr datMonitorování kvality – sběr dat

Page 47: Jak Microsoft d ělá software?

Monitorování kvality – analýza datMonitorování kvality – analýza dat

Chyby

Co jetohle?

Kde je hranice?

A cotohle?

• Rozklad RAM• Chyby v málo

využívaných částech

• HW problémy

Page 48: Jak Microsoft d ělá software?

ZávěremZávěremMS má bohaté zkušenosti s vývojem MS má bohaté zkušenosti s vývojem softwaresoftware

Velmi propracovaný proces zaručující Velmi propracovaný proces zaručující vysokou kvalitu, který se stále vysokou kvalitu, který se stále zdokonalujezdokonaluje

Zkušenosti z 25 let vývoje a z interních Zkušenosti z 25 let vývoje a z interních nástrojů jsou zúročeny ve Visual Studio nástrojů jsou zúročeny ve Visual Studio Team SystemTeam System

Výhledově budeme používat shodné Výhledově budeme používat shodné nástroje jako naši zákazníci a partneřinástroje jako naši zákazníci a partneři

Page 49: Jak Microsoft d ělá software?

OtázkyOtázky

Michael Juřek, mjurekMichael Juřek, [email protected]@microsoft.com

http://msdn.microsoft.com/teamsystemhttp://msdn.microsoft.com/teamsystem


Recommended