SlideShare uma empresa Scribd logo
1 de 35
Podívejte se nám do
softwarové kuchyně
Michal Petřík, Vlastimil Jinoch, Vít Kluganost 28. listopadu 2018
3
Série odborných snídaní
› Pohled na projekty ze
strany dodavatele
› Připomenutí si
best practices vývoje
a údržby SW
› Relevance a jejich
zásadní význam
i v dnešním
„agilním světě“
4
Témata
1. Odhady a práce s nimi
2. Architektura, design, implementace (Q1/2019)
3. Testování, základní principy pro testovací strategie (Q2/2019)
Odhady
Vlastimil Jinoch 28. listopadu 2018
6
Proč metodika?
Q: Kolik bude stát ten nový portál?
A: 10 Milionů
Q: Bude tam vše co potřebujeme, prošli jste to s produkty?
A: … hmmm ne, ale je to jasný, bude to jako druhý brand…
Q: Dobře, kolik z toho bude stát část pro public a kolik pro BO?
A: No, takhle jsme to ještě nepočítali…
Q: Je v té ceně zahrnuta i následná údržba?
A: … hmmm asi ještě ne, podívám se…
Q: A co rizika?
A: Jo, nějaká rezerva tam je
7
Jak na odhad pracnosti - příklad
› Vím, co odhaduji?
– Implementaci?
– Vše (co to znamená?)
› Mám definovány omezující podmínky?
› Metoda odhadu
– Dekompozice
• Dle funkčních celků
• Počitatelné věci (obrazovky, moduly, …)
– Expertní odhad (zkušenosti)
– …
› Rozsah, pravděpodobnost, rizika
8
Doporučení pro tvorbu odhadu
› Rozdíl mezi odhadem, závaznou pracností a cenou
› Jasně definované okrajové podmínky
› Kužel nejistoty
› Metody odhadu
› Konzistence
› Nutnost revizí
› Checklisty
› Metodika
9
Kužel nejistoty
10
Metody odhadu
› Top  down / bottom  up
› Dekompozice
› Výpočet:
– business požadavky,
– funkční požadavky,
– případy užití,
– počty změnových řízení,
– stránky/obrazovky/dialogy,
– reporty, databázové tabulky/třídy,
– počet již napsaných řádků kódu,
– … vše relevantní k danému projektu.
› Odhad na základě historických dat (obdobný již realizovaný projekt, …)
11
Standardizované metodiky
› Funkční body
› Řádky kódu
› Putnam Model 𝐸𝑓𝑓𝑜𝑟𝑡 = 𝐵 ∗
𝑆𝑖𝑧𝑒
𝑃𝑟𝑜𝑑𝑢𝑐𝑡𝑖𝑣𝑖𝑡𝑦∗𝑇𝑖𝑚𝑒
4
3
3
› COCOMO (basic, intermediate, detailed, COCOMO II)
𝐸𝑓𝑓𝑜𝑟𝑡 𝐴𝑝𝑝𝑙𝑖𝑒𝑑 𝐸 = 𝑎 𝑏 ∗ 𝐾𝐿𝑂𝐶 𝑏 𝑏
𝐷𝑒𝑣𝑒𝑙𝑜𝑝𝑚𝑒𝑛𝑡 𝑇𝑖𝑚𝑒 𝐷 = 𝑐 𝑏 ∗ 𝐸𝑓𝑓𝑜𝑟𝑡 𝐴𝑝𝑝𝑙𝑖𝑒𝑑 𝑑 𝑏
𝑃𝑒𝑜𝑝𝑙𝑒 𝑅𝑒𝑞𝑢𝑖𝑟𝑒𝑑 𝑃 =
𝐸𝑓𝑓𝑜𝑟𝑡 𝐴𝑝𝑝𝑙𝑖𝑑𝑒𝑑
𝐷𝑒𝑣𝑒𝑙𝑜𝑝𝑚𝑒𝑛𝑡 𝑇𝑖𝑚𝑒
Software project ab bb cb db
Organic 2.4 1.05 2.5 0.38
Semi-detached 3.0 1.12 2.5 0.35
Embedded 3.6 1.20 2.5 0.32
12
Standardizované metodiky
› Vhodné pro „sériovou výrobu“ (platí ověřené koeficienty)
› Nejsou vhodné vždy
– Nové technologie
– Nové jazyky
– Nové oblasti
– Fáze projektu
– …
› Velmi vhodné kombinovat s jinými metodikami
13
Historická data
› Z čeho vycházet
– Metriky realizace
– Okrajové podmínky
– Odhady
– Rizika
– Lessons learned
– Údržba
– …
› Jak využít
– Příprava odhadu
– Validace odhadu
Bez měření nelze
historii dobře využít
14
Ukázka checklistu
Checklist analýzy
 Budeme v rámci analýzy vytvářet PoC?
 Budeme komunikovat s dalšími partnery mimo zákazníka?
 Jací partneři s námi budou v rámci analýzy spolupracovat (tzn. jaké
máme s danými partnery zkušenosti z předchozích analýz)?
 Předpokládáme v rámci analýzy nějaké schůzky (je nutné uvažovat
o času, cestě apod.)?
 Vlastní dokument nám zabere nemalý čas, například pokud
musíme vytvářet náhledy obrazovek, ukázky rozhraní, apod.
 Pokud budeme vytvářet rozhraní pro třetí strany, je nutné uvažovat
větší rizika analýzy.
 Nesmíme zapomenout na interní revize specifikace (to také stojí
další čas).
 Musíme uvažovat i případný čas na zapracování změn do
specifikace, které vyplynou v dalších částech projektu (v průběhu
implementace, v opravách, …).
 Budeme v rámci analýzy mimo specifikace vytvářet i další
dokumenty?
 Budeme muset v rámci analýzy řešit výkonové požadavky
systému/aplikace?
 Budeme muset v rámci analýzy řešit bezpečnostní požadavky
systému/aplikace?
Checklist testování
 Tvorba testovacích scénářů pro zákazníka
 Otestování na vývojovém prostředí, otestování na QA
prostředí. Zde musíme počítati s časem. Kdy je nutné seznámit
se s problematikou, abychom vůbec mohli testovat – dalším
aspektem může být:
• Musíme pro testování speciálně nastavit prostředí
(například instalace Selenium, SoapUI, jiný prohlížeč, …)?
• Musíme spouštět dávky nebo jinak modifikovat vývojové
prostředí (například specifické hodnoty v databázi, emulace
stavu aplikace, apod.)?
• Potřebujeme rozhraní třetí strany (s tím mohou souviset
certifikáty, přístupové údaje, …)?
 Budeme vytvářet nové regresivní testy/upravovat stávající?
 Testování finální objednávky před odesláním.
 Kvalifikační testování.
 Podpora akceptačního testování (testování na straně
zákazníka).
 Pokud výkonnostní požadavky uvádíme v analýze, musíme
se jimi zabývat i v rámci testování.
 Zde uvažujeme primárně testování nově přidané funkcionality,
dále se testování může objevit i ve vlastní dodávce.
15
Ukázka okrajových podmínek
ID Předmět Popis
1 Testovací prostředí
Zákazník, poskytne již během fáze analýzy infrastrukturu pro zmíněná prostředí. Instalace testovacího prostředí musí proběhnout
nejpozději během kvalifikačního testování projektu.
Potřebný HW i licence zajišťuje projekt.
2 Vývojové prostředí
Vývojové prostředí se všemi potřebnými závislostmi na bankovním prostředí bude postaveno před začátkem vývoje a je součástí
této nabídky.
Pokud se ale závislosti v bance během realizace nabízeného systému změní a bude potřeba vývojové prostředí upravit, jedná se
o úpravy nad rámec této nabídky a budou vyčísleny samostatně. Dané změny mohou mít dopad na termíny uvedené
v harmonogramu.
3 Realizační tým Velikost i obsazení realizačního týmu bude řízena aktuálními požadavky v dané fázi projektu a bude volena maximálně efektivně.
4 Revize zdrojového kódu
Revize zdrojového kódu, jako požadavek zadavatele, bude probíhat průběžně, jelikož pro poptávané technologie ještě neexistují
standardy/předpisy. Zadavatel v rámci testů neodmítne systém z důvodu „technologického dluhu“.
5 Uživatelské rozhraní
Uživatelské rozhraní aplikace bude podřízeno zvolené technologii a tam, kde by požadavky na GUI znamenaly neadekvátní
pracnost, bude navrženo jiné řešení respektující požadovanou business funkcionalitou.
6 Změny požadavků
V případě změn ve funkční specifikaci, nebo identifikace nedořešených problematických momentů ve fázi analýzy mohou vést ke
změně pracnosti a výsledné ceny.
7 Testovací prostředí
Zákazník nejpozději do konce fáze implementace poskytne obchodní systém pro testovací prostředí včetně testovacích dat.
Předpokládáme, že datový model obchodního systému bude shodný s datovým schématem dodaným pro vývoj a čtení dat z db
bude moci probíhat naprosto stejným způsobem jako u vývojové obchodní databáze.
8
Testovací excelové
tabulky pro upload do
systému
Zákazník nejpozději do konce fáze analýzy dodá excelové tabulky s daty, na kterých bude možné testovat funkcionalitu systému.
Je potřeba, aby data v nich odpovídala datům v obchodním systému v příslušném prostředí.
16
Základní charakteristika metodiky
› Členění odhadu do osmi kategorií, včetně definice obsahu:
– Analýza
– Design
– Implementace
– Testování
– Project management
– Tvorba dodávky
– Ostatní
– Záruka
› Odhad je vždy prezentován rozsahem (reprezentace rizik)
– Uvádíme minimum, maximum a expertní předpoklad
17
Ukázky a literatura
› Literatura:
– Steve McConnell:
Software Estimation: Demystifying the Black Art
– Frederick P. Brooks:
The Mythical Man-Month: Essays on Software Engineering
– Barry W. Boehm:
Software Engineering Economics
18
Best Practices
› Vývojáři jsou od přírody optimisté  revize nutná
› Někdo tvoří odhad, někdo realizuje
(ne vždy stejní lidé, spíše téměř vždy jiní…)
› Technicky správný odhad je nezbytnost
› Konzistentní odhady = snadné revize a poučení
› Vykázaný čas a reálně odpracovaný se mohou lišit
› Checklisty a metodika pomohou
Odhady v agilním světě
Vít Kluganost 28. listopadu 2018
20
Osnova
1. Kontext Agile v praxi
2. Odhady v agilním světě – relevance, principy
3. Relativní jednotky
4. Techniky odhadů
5. Metriky
6. Shrnutí
21
Kontext Agile v praxi
22
Relevance odhadů v agilním světě
› Přidaná (business) hodnota?
#NO
Estimates
Estimate
23
Odhady v agilním světě - principy
1. Rychlost je důležitější než přesnost
2. Týmová práce a zodpovědnost
3. Relativní jednotky
24
Relativní jednotky
› Velké x Malé
› Story points
0 1/2 1 2 3 5
8 13 20 40 100 ?
25
Techniky odhadů
› T-Shirt Sizes
› Planning Poker
› Ostatní
– Large/Uncertain/Small
– Ordering method
– Affinity Mapping
– TFB / NFC / 1 (Sprint)
– Divide until Maximum Size or Less
– Dot Voting
– User stories counting
– a další…….
XS
S
M
L
XL
26
Metriky
Velocity
Burndown
Slack
Time
Planned
to Done
Focus
Factor
Cycle
Time
Happiness
27
Velocity
› Počet relativních jednotek, které tým dokáže dodat (dokončit)
v rámci jedné iterace
› K čemu slouží?
› Focus Factor
› Na co si dát pozor
28
Burn down
29
Shrnutí
› Odhad může mít mnoho podob
› Lze výrazně redukovat časovou investici do jeho výroby
› Má smysl dělat jen to, co je efektivní a funguje ve vašem týmu
› Metriky jsou skvělý sluha, ale špatný pán
› Tým je to hlavní, co v agilním světě máte!
Závěr
31
Dopady odhadů na vztah zákazník/dodavatel?
32
Dopady odhadů na vztah zákazník/dodavatel?
› Schopnost vytvořit odhad pro dané zadání přímo implikuje
schopnost zadání reálně splnit
› U nových zadání se Velmi často se pohybujeme na (před) začátku
kužele nejistoty co nám to říká o přesnosti odhadu?
› Pro koho je tato nepřesnost výhodná?
– Místo dodání kvalitního SW často boj o rozsah
– Rozčarování z výstupů
(potřeby v čase T se neshodují s potřebami
v čase T + X)
– … neúspěch projektu, všeobecné zklamání
› Další analýza/upřesnění je nezbytná
33
Přirozeným řešením je začít v malém
a postupně přidávat.
Nebo projekt ukončit, pokud na základě
výstupů nedává smysl.
Dopady odhadů na vztah
zákazník/dodavatel?
34
Dopady odhadů na vztah zákazník/dodavatel?
Profinit EU, s.r.o.
Tychonova 2, 160 00 Praha 6 | Telefon + 420 224 316 016
Web
www.profinit.eu
LinkedIn
linkedin.com/company/profinit
Twitter
twitter.com/Profinit_EU
Facebook
facebook.com/Profinit.EU
Youtube
Profinit EU
Děkujeme
za pozornost

Mais conteúdo relacionado

Mais procurados

Mais procurados (6)

PMBOK 5th Edition Schema
PMBOK 5th Edition SchemaPMBOK 5th Edition Schema
PMBOK 5th Edition Schema
 
Pmbok 5 ed diagram
Pmbok 5 ed diagramPmbok 5 ed diagram
Pmbok 5 ed diagram
 
แนวทางการทำ Digital transformation
แนวทางการทำ Digital transformationแนวทางการทำ Digital transformation
แนวทางการทำ Digital transformation
 
Pert master risk analysis tool
Pert master   risk analysis toolPert master   risk analysis tool
Pert master risk analysis tool
 
Chap 4.5 Monitor and Control Project Work
Chap 4.5 Monitor and Control Project WorkChap 4.5 Monitor and Control Project Work
Chap 4.5 Monitor and Control Project Work
 
PMBOK_5th_Initiating Process Group -
PMBOK_5th_Initiating Process Group -PMBOK_5th_Initiating Process Group -
PMBOK_5th_Initiating Process Group -
 

Semelhante a 2018 11-28 snidane-serie-kuchyne

2019 09-23-snidane qa-public
2019 09-23-snidane qa-public2019 09-23-snidane qa-public
2019 09-23-snidane qa-publicProfinit
 
COEX eBrana workshop - Příprava větších projektů
COEX eBrana workshop - Příprava větších projektůCOEX eBrana workshop - Příprava větších projektů
COEX eBrana workshop - Příprava větších projektůIvos Gajdorus
 
Jak úspěšně zavést do firmy webovou analytiku
Jak úspěšně zavést do firmy webovou analytikuJak úspěšně zavést do firmy webovou analytiku
Jak úspěšně zavést do firmy webovou analytikuAkce Dobrého webu
 
Odborná snídaně: Datový sklad jako Perpetuum Mobile
Odborná snídaně: Datový sklad jako Perpetuum MobileOdborná snídaně: Datový sklad jako Perpetuum Mobile
Odborná snídaně: Datový sklad jako Perpetuum MobileProfinit
 
Projekt Edenred Cafeteria
Projekt Edenred CafeteriaProjekt Edenred Cafeteria
Projekt Edenred CafeteriaProfinit
 
Úvod do analýzy - 2 část
Úvod do analýzy -  2 částÚvod do analýzy -  2 část
Úvod do analýzy - 2 částMartin Paták
 
Jak na Smartlook, nejen pro Shoptet
Jak na Smartlook, nejen pro ShoptetJak na Smartlook, nejen pro Shoptet
Jak na Smartlook, nejen pro ShoptetMarek Čech
 
Alice_IT_Startegy_CZE_v2
Alice_IT_Startegy_CZE_v2Alice_IT_Startegy_CZE_v2
Alice_IT_Startegy_CZE_v2Jiri Novacek
 
20101124 Aplikované nástroje SW inženýra
20101124 Aplikované nástroje SW inženýra20101124 Aplikované nástroje SW inženýra
20101124 Aplikované nástroje SW inženýraJiří Mareš
 
Prezentace chci.software Masterminding - Smart Network
Prezentace chci.software Masterminding - Smart NetworkPrezentace chci.software Masterminding - Smart Network
Prezentace chci.software Masterminding - Smart NetworkZdeněk Klusák
 
Odborná snídaně v Profinitu 30. 5. 2017 - Firemní portály: rychle a moderně
Odborná snídaně v Profinitu 30. 5. 2017 - Firemní portály: rychle a moderněOdborná snídaně v Profinitu 30. 5. 2017 - Firemní portály: rychle a moderně
Odborná snídaně v Profinitu 30. 5. 2017 - Firemní portály: rychle a moderněProfinit
 
Pa104 pa104-priprava-na-zk
Pa104 pa104-priprava-na-zkPa104 pa104-priprava-na-zk
Pa104 pa104-priprava-na-zkFatmir Vela
 
Jak vyhodnocovat SEO v rámci atribucí
Jak vyhodnocovat SEO v rámci atribucíJak vyhodnocovat SEO v rámci atribucí
Jak vyhodnocovat SEO v rámci atribucíSEO jako Brno
 
Jak se mění práce analytika (Martin Bosák)
Jak se mění práce analytika (Martin Bosák)Jak se mění práce analytika (Martin Bosák)
Jak se mění práce analytika (Martin Bosák)Taste Medio
 
Automatizace search term optimalizace
Automatizace search term optimalizaceAutomatizace search term optimalizace
Automatizace search term optimalizaceTaste Medio
 
PROFICIO na PPC Restartu 2018
PROFICIO na PPC Restartu 2018PROFICIO na PPC Restartu 2018
PROFICIO na PPC Restartu 2018PROFICIO
 

Semelhante a 2018 11-28 snidane-serie-kuchyne (20)

2019 09-23-snidane qa-public
2019 09-23-snidane qa-public2019 09-23-snidane qa-public
2019 09-23-snidane qa-public
 
Progress Is
Progress IsProgress Is
Progress Is
 
COEX eBrana workshop - Příprava větších projektů
COEX eBrana workshop - Příprava větších projektůCOEX eBrana workshop - Příprava větších projektů
COEX eBrana workshop - Příprava větších projektů
 
Jak úspěšně zavést do firmy webovou analytiku
Jak úspěšně zavést do firmy webovou analytikuJak úspěšně zavést do firmy webovou analytiku
Jak úspěšně zavést do firmy webovou analytiku
 
Odborná snídaně: Datový sklad jako Perpetuum Mobile
Odborná snídaně: Datový sklad jako Perpetuum MobileOdborná snídaně: Datový sklad jako Perpetuum Mobile
Odborná snídaně: Datový sklad jako Perpetuum Mobile
 
Projekt Edenred Cafeteria
Projekt Edenred CafeteriaProjekt Edenred Cafeteria
Projekt Edenred Cafeteria
 
Úvod do analýzy - 2 část
Úvod do analýzy -  2 částÚvod do analýzy -  2 část
Úvod do analýzy - 2 část
 
Jak na Smartlook, nejen pro Shoptet
Jak na Smartlook, nejen pro ShoptetJak na Smartlook, nejen pro Shoptet
Jak na Smartlook, nejen pro Shoptet
 
TNPW2-2014-01
TNPW2-2014-01TNPW2-2014-01
TNPW2-2014-01
 
Alice_IT_Startegy_CZE_v2
Alice_IT_Startegy_CZE_v2Alice_IT_Startegy_CZE_v2
Alice_IT_Startegy_CZE_v2
 
20101124 Aplikované nástroje SW inženýra
20101124 Aplikované nástroje SW inženýra20101124 Aplikované nástroje SW inženýra
20101124 Aplikované nástroje SW inženýra
 
Prezentace chci.software Masterminding - Smart Network
Prezentace chci.software Masterminding - Smart NetworkPrezentace chci.software Masterminding - Smart Network
Prezentace chci.software Masterminding - Smart Network
 
Odborná snídaně v Profinitu 30. 5. 2017 - Firemní portály: rychle a moderně
Odborná snídaně v Profinitu 30. 5. 2017 - Firemní portály: rychle a moderněOdborná snídaně v Profinitu 30. 5. 2017 - Firemní portály: rychle a moderně
Odborná snídaně v Profinitu 30. 5. 2017 - Firemní portály: rychle a moderně
 
Pa104 pa104-priprava-na-zk
Pa104 pa104-priprava-na-zkPa104 pa104-priprava-na-zk
Pa104 pa104-priprava-na-zk
 
Jak vyhodnocovat SEO v rámci atribucí
Jak vyhodnocovat SEO v rámci atribucíJak vyhodnocovat SEO v rámci atribucí
Jak vyhodnocovat SEO v rámci atribucí
 
201612.ReinIT.Audit
201612.ReinIT.Audit201612.ReinIT.Audit
201612.ReinIT.Audit
 
Jak se mění práce analytika (Martin Bosák)
Jak se mění práce analytika (Martin Bosák)Jak se mění práce analytika (Martin Bosák)
Jak se mění práce analytika (Martin Bosák)
 
TNPW2-2016-01
TNPW2-2016-01TNPW2-2016-01
TNPW2-2016-01
 
Automatizace search term optimalizace
Automatizace search term optimalizaceAutomatizace search term optimalizace
Automatizace search term optimalizace
 
PROFICIO na PPC Restartu 2018
PROFICIO na PPC Restartu 2018PROFICIO na PPC Restartu 2018
PROFICIO na PPC Restartu 2018
 

Mais de Profinit

Reference Data Management
Reference Data ManagementReference Data Management
Reference Data ManagementProfinit
 
Cloud in examples—(how to) benefit from modern technologies in the cloud
Cloud in examples—(how to) benefit from modern technologies in the cloudCloud in examples—(how to) benefit from modern technologies in the cloud
Cloud in examples—(how to) benefit from modern technologies in the cloudProfinit
 
Building big data pipelines—lessons learned
Building big data pipelines—lessons learnedBuilding big data pipelines—lessons learned
Building big data pipelines—lessons learnedProfinit
 
Understand your data dependencies – Key enabler to efficient modernisation
 Understand your data dependencies – Key enabler to efficient modernisation  Understand your data dependencies – Key enabler to efficient modernisation
Understand your data dependencies – Key enabler to efficient modernisation Profinit
 
Propensity Modelling for Banks
Propensity Modelling for BanksPropensity Modelling for Banks
Propensity Modelling for BanksProfinit
 
Legacy systems modernisation
Legacy systems modernisationLegacy systems modernisation
Legacy systems modernisationProfinit
 
Automating Data Lakes, Data Warehouses and Data Stores
Automating Data Lakes, Data Warehouses and Data StoresAutomating Data Lakes, Data Warehouses and Data Stores
Automating Data Lakes, Data Warehouses and Data StoresProfinit
 
4 Steps Towards Data Transparency
4 Steps Towards Data Transparency4 Steps Towards Data Transparency
4 Steps Towards Data TransparencyProfinit
 
Software systems modernisation
Software systems modernisationSoftware systems modernisation
Software systems modernisationProfinit
 
Data Science a MLOps v prostředí cloudu
Data Science a MLOps v prostředí clouduData Science a MLOps v prostředí cloudu
Data Science a MLOps v prostředí clouduProfinit
 
Detekce sociálních vazeb: domácnosti a přátelé
Detekce sociálních vazeb: domácnosti a přáteléDetekce sociálních vazeb: domácnosti a přátelé
Detekce sociálních vazeb: domácnosti a přáteléProfinit
 
Výsledky backtestu propensitního modelu
Výsledky backtestu propensitního modeluVýsledky backtestu propensitního modelu
Výsledky backtestu propensitního modeluProfinit
 
Propensitní modelování
Propensitní modelováníPropensitní modelování
Propensitní modelováníProfinit
 
Profinit Webinar: Benefits of Software Systems Modernization over their Repla...
Profinit Webinar: Benefits of Software Systems Modernization over their Repla...Profinit Webinar: Benefits of Software Systems Modernization over their Repla...
Profinit Webinar: Benefits of Software Systems Modernization over their Repla...Profinit
 
Profinit webinar: Instalment Detector
Profinit webinar: Instalment DetectorProfinit webinar: Instalment Detector
Profinit webinar: Instalment DetectorProfinit
 
Profinit_snidane_DWH_22_10_2019_publish
Profinit_snidane_DWH_22_10_2019_publishProfinit_snidane_DWH_22_10_2019_publish
Profinit_snidane_DWH_22_10_2019_publishProfinit
 
2019 03-20 snidane-serie-kuchyne-full
2019 03-20 snidane-serie-kuchyne-full2019 03-20 snidane-serie-kuchyne-full
2019 03-20 snidane-serie-kuchyne-fullProfinit
 
Matedatový sklad
Matedatový skladMatedatový sklad
Matedatový skladProfinit
 
Projekt Bitcoinová burza Coinmate
Projekt Bitcoinová burza CoinmateProjekt Bitcoinová burza Coinmate
Projekt Bitcoinová burza CoinmateProfinit
 
20180321 profinit zpracovani velkych_dat_v_praxi
20180321 profinit zpracovani velkych_dat_v_praxi20180321 profinit zpracovani velkych_dat_v_praxi
20180321 profinit zpracovani velkych_dat_v_praxiProfinit
 

Mais de Profinit (20)

Reference Data Management
Reference Data ManagementReference Data Management
Reference Data Management
 
Cloud in examples—(how to) benefit from modern technologies in the cloud
Cloud in examples—(how to) benefit from modern technologies in the cloudCloud in examples—(how to) benefit from modern technologies in the cloud
Cloud in examples—(how to) benefit from modern technologies in the cloud
 
Building big data pipelines—lessons learned
Building big data pipelines—lessons learnedBuilding big data pipelines—lessons learned
Building big data pipelines—lessons learned
 
Understand your data dependencies – Key enabler to efficient modernisation
 Understand your data dependencies – Key enabler to efficient modernisation  Understand your data dependencies – Key enabler to efficient modernisation
Understand your data dependencies – Key enabler to efficient modernisation
 
Propensity Modelling for Banks
Propensity Modelling for BanksPropensity Modelling for Banks
Propensity Modelling for Banks
 
Legacy systems modernisation
Legacy systems modernisationLegacy systems modernisation
Legacy systems modernisation
 
Automating Data Lakes, Data Warehouses and Data Stores
Automating Data Lakes, Data Warehouses and Data StoresAutomating Data Lakes, Data Warehouses and Data Stores
Automating Data Lakes, Data Warehouses and Data Stores
 
4 Steps Towards Data Transparency
4 Steps Towards Data Transparency4 Steps Towards Data Transparency
4 Steps Towards Data Transparency
 
Software systems modernisation
Software systems modernisationSoftware systems modernisation
Software systems modernisation
 
Data Science a MLOps v prostředí cloudu
Data Science a MLOps v prostředí clouduData Science a MLOps v prostředí cloudu
Data Science a MLOps v prostředí cloudu
 
Detekce sociálních vazeb: domácnosti a přátelé
Detekce sociálních vazeb: domácnosti a přáteléDetekce sociálních vazeb: domácnosti a přátelé
Detekce sociálních vazeb: domácnosti a přátelé
 
Výsledky backtestu propensitního modelu
Výsledky backtestu propensitního modeluVýsledky backtestu propensitního modelu
Výsledky backtestu propensitního modelu
 
Propensitní modelování
Propensitní modelováníPropensitní modelování
Propensitní modelování
 
Profinit Webinar: Benefits of Software Systems Modernization over their Repla...
Profinit Webinar: Benefits of Software Systems Modernization over their Repla...Profinit Webinar: Benefits of Software Systems Modernization over their Repla...
Profinit Webinar: Benefits of Software Systems Modernization over their Repla...
 
Profinit webinar: Instalment Detector
Profinit webinar: Instalment DetectorProfinit webinar: Instalment Detector
Profinit webinar: Instalment Detector
 
Profinit_snidane_DWH_22_10_2019_publish
Profinit_snidane_DWH_22_10_2019_publishProfinit_snidane_DWH_22_10_2019_publish
Profinit_snidane_DWH_22_10_2019_publish
 
2019 03-20 snidane-serie-kuchyne-full
2019 03-20 snidane-serie-kuchyne-full2019 03-20 snidane-serie-kuchyne-full
2019 03-20 snidane-serie-kuchyne-full
 
Matedatový sklad
Matedatový skladMatedatový sklad
Matedatový sklad
 
Projekt Bitcoinová burza Coinmate
Projekt Bitcoinová burza CoinmateProjekt Bitcoinová burza Coinmate
Projekt Bitcoinová burza Coinmate
 
20180321 profinit zpracovani velkych_dat_v_praxi
20180321 profinit zpracovani velkych_dat_v_praxi20180321 profinit zpracovani velkych_dat_v_praxi
20180321 profinit zpracovani velkych_dat_v_praxi
 

2018 11-28 snidane-serie-kuchyne

  • 1. Podívejte se nám do softwarové kuchyně Michal Petřík, Vlastimil Jinoch, Vít Kluganost 28. listopadu 2018
  • 2.
  • 3. 3 Série odborných snídaní › Pohled na projekty ze strany dodavatele › Připomenutí si best practices vývoje a údržby SW › Relevance a jejich zásadní význam i v dnešním „agilním světě“
  • 4. 4 Témata 1. Odhady a práce s nimi 2. Architektura, design, implementace (Q1/2019) 3. Testování, základní principy pro testovací strategie (Q2/2019)
  • 6. 6 Proč metodika? Q: Kolik bude stát ten nový portál? A: 10 Milionů Q: Bude tam vše co potřebujeme, prošli jste to s produkty? A: … hmmm ne, ale je to jasný, bude to jako druhý brand… Q: Dobře, kolik z toho bude stát část pro public a kolik pro BO? A: No, takhle jsme to ještě nepočítali… Q: Je v té ceně zahrnuta i následná údržba? A: … hmmm asi ještě ne, podívám se… Q: A co rizika? A: Jo, nějaká rezerva tam je
  • 7. 7 Jak na odhad pracnosti - příklad › Vím, co odhaduji? – Implementaci? – Vše (co to znamená?) › Mám definovány omezující podmínky? › Metoda odhadu – Dekompozice • Dle funkčních celků • Počitatelné věci (obrazovky, moduly, …) – Expertní odhad (zkušenosti) – … › Rozsah, pravděpodobnost, rizika
  • 8. 8 Doporučení pro tvorbu odhadu › Rozdíl mezi odhadem, závaznou pracností a cenou › Jasně definované okrajové podmínky › Kužel nejistoty › Metody odhadu › Konzistence › Nutnost revizí › Checklisty › Metodika
  • 10. 10 Metody odhadu › Top  down / bottom  up › Dekompozice › Výpočet: – business požadavky, – funkční požadavky, – případy užití, – počty změnových řízení, – stránky/obrazovky/dialogy, – reporty, databázové tabulky/třídy, – počet již napsaných řádků kódu, – … vše relevantní k danému projektu. › Odhad na základě historických dat (obdobný již realizovaný projekt, …)
  • 11. 11 Standardizované metodiky › Funkční body › Řádky kódu › Putnam Model 𝐸𝑓𝑓𝑜𝑟𝑡 = 𝐵 ∗ 𝑆𝑖𝑧𝑒 𝑃𝑟𝑜𝑑𝑢𝑐𝑡𝑖𝑣𝑖𝑡𝑦∗𝑇𝑖𝑚𝑒 4 3 3 › COCOMO (basic, intermediate, detailed, COCOMO II) 𝐸𝑓𝑓𝑜𝑟𝑡 𝐴𝑝𝑝𝑙𝑖𝑒𝑑 𝐸 = 𝑎 𝑏 ∗ 𝐾𝐿𝑂𝐶 𝑏 𝑏 𝐷𝑒𝑣𝑒𝑙𝑜𝑝𝑚𝑒𝑛𝑡 𝑇𝑖𝑚𝑒 𝐷 = 𝑐 𝑏 ∗ 𝐸𝑓𝑓𝑜𝑟𝑡 𝐴𝑝𝑝𝑙𝑖𝑒𝑑 𝑑 𝑏 𝑃𝑒𝑜𝑝𝑙𝑒 𝑅𝑒𝑞𝑢𝑖𝑟𝑒𝑑 𝑃 = 𝐸𝑓𝑓𝑜𝑟𝑡 𝐴𝑝𝑝𝑙𝑖𝑑𝑒𝑑 𝐷𝑒𝑣𝑒𝑙𝑜𝑝𝑚𝑒𝑛𝑡 𝑇𝑖𝑚𝑒 Software project ab bb cb db Organic 2.4 1.05 2.5 0.38 Semi-detached 3.0 1.12 2.5 0.35 Embedded 3.6 1.20 2.5 0.32
  • 12. 12 Standardizované metodiky › Vhodné pro „sériovou výrobu“ (platí ověřené koeficienty) › Nejsou vhodné vždy – Nové technologie – Nové jazyky – Nové oblasti – Fáze projektu – … › Velmi vhodné kombinovat s jinými metodikami
  • 13. 13 Historická data › Z čeho vycházet – Metriky realizace – Okrajové podmínky – Odhady – Rizika – Lessons learned – Údržba – … › Jak využít – Příprava odhadu – Validace odhadu Bez měření nelze historii dobře využít
  • 14. 14 Ukázka checklistu Checklist analýzy  Budeme v rámci analýzy vytvářet PoC?  Budeme komunikovat s dalšími partnery mimo zákazníka?  Jací partneři s námi budou v rámci analýzy spolupracovat (tzn. jaké máme s danými partnery zkušenosti z předchozích analýz)?  Předpokládáme v rámci analýzy nějaké schůzky (je nutné uvažovat o času, cestě apod.)?  Vlastní dokument nám zabere nemalý čas, například pokud musíme vytvářet náhledy obrazovek, ukázky rozhraní, apod.  Pokud budeme vytvářet rozhraní pro třetí strany, je nutné uvažovat větší rizika analýzy.  Nesmíme zapomenout na interní revize specifikace (to také stojí další čas).  Musíme uvažovat i případný čas na zapracování změn do specifikace, které vyplynou v dalších částech projektu (v průběhu implementace, v opravách, …).  Budeme v rámci analýzy mimo specifikace vytvářet i další dokumenty?  Budeme muset v rámci analýzy řešit výkonové požadavky systému/aplikace?  Budeme muset v rámci analýzy řešit bezpečnostní požadavky systému/aplikace? Checklist testování  Tvorba testovacích scénářů pro zákazníka  Otestování na vývojovém prostředí, otestování na QA prostředí. Zde musíme počítati s časem. Kdy je nutné seznámit se s problematikou, abychom vůbec mohli testovat – dalším aspektem může být: • Musíme pro testování speciálně nastavit prostředí (například instalace Selenium, SoapUI, jiný prohlížeč, …)? • Musíme spouštět dávky nebo jinak modifikovat vývojové prostředí (například specifické hodnoty v databázi, emulace stavu aplikace, apod.)? • Potřebujeme rozhraní třetí strany (s tím mohou souviset certifikáty, přístupové údaje, …)?  Budeme vytvářet nové regresivní testy/upravovat stávající?  Testování finální objednávky před odesláním.  Kvalifikační testování.  Podpora akceptačního testování (testování na straně zákazníka).  Pokud výkonnostní požadavky uvádíme v analýze, musíme se jimi zabývat i v rámci testování.  Zde uvažujeme primárně testování nově přidané funkcionality, dále se testování může objevit i ve vlastní dodávce.
  • 15. 15 Ukázka okrajových podmínek ID Předmět Popis 1 Testovací prostředí Zákazník, poskytne již během fáze analýzy infrastrukturu pro zmíněná prostředí. Instalace testovacího prostředí musí proběhnout nejpozději během kvalifikačního testování projektu. Potřebný HW i licence zajišťuje projekt. 2 Vývojové prostředí Vývojové prostředí se všemi potřebnými závislostmi na bankovním prostředí bude postaveno před začátkem vývoje a je součástí této nabídky. Pokud se ale závislosti v bance během realizace nabízeného systému změní a bude potřeba vývojové prostředí upravit, jedná se o úpravy nad rámec této nabídky a budou vyčísleny samostatně. Dané změny mohou mít dopad na termíny uvedené v harmonogramu. 3 Realizační tým Velikost i obsazení realizačního týmu bude řízena aktuálními požadavky v dané fázi projektu a bude volena maximálně efektivně. 4 Revize zdrojového kódu Revize zdrojového kódu, jako požadavek zadavatele, bude probíhat průběžně, jelikož pro poptávané technologie ještě neexistují standardy/předpisy. Zadavatel v rámci testů neodmítne systém z důvodu „technologického dluhu“. 5 Uživatelské rozhraní Uživatelské rozhraní aplikace bude podřízeno zvolené technologii a tam, kde by požadavky na GUI znamenaly neadekvátní pracnost, bude navrženo jiné řešení respektující požadovanou business funkcionalitou. 6 Změny požadavků V případě změn ve funkční specifikaci, nebo identifikace nedořešených problematických momentů ve fázi analýzy mohou vést ke změně pracnosti a výsledné ceny. 7 Testovací prostředí Zákazník nejpozději do konce fáze implementace poskytne obchodní systém pro testovací prostředí včetně testovacích dat. Předpokládáme, že datový model obchodního systému bude shodný s datovým schématem dodaným pro vývoj a čtení dat z db bude moci probíhat naprosto stejným způsobem jako u vývojové obchodní databáze. 8 Testovací excelové tabulky pro upload do systému Zákazník nejpozději do konce fáze analýzy dodá excelové tabulky s daty, na kterých bude možné testovat funkcionalitu systému. Je potřeba, aby data v nich odpovídala datům v obchodním systému v příslušném prostředí.
  • 16. 16 Základní charakteristika metodiky › Členění odhadu do osmi kategorií, včetně definice obsahu: – Analýza – Design – Implementace – Testování – Project management – Tvorba dodávky – Ostatní – Záruka › Odhad je vždy prezentován rozsahem (reprezentace rizik) – Uvádíme minimum, maximum a expertní předpoklad
  • 17. 17 Ukázky a literatura › Literatura: – Steve McConnell: Software Estimation: Demystifying the Black Art – Frederick P. Brooks: The Mythical Man-Month: Essays on Software Engineering – Barry W. Boehm: Software Engineering Economics
  • 18. 18 Best Practices › Vývojáři jsou od přírody optimisté  revize nutná › Někdo tvoří odhad, někdo realizuje (ne vždy stejní lidé, spíše téměř vždy jiní…) › Technicky správný odhad je nezbytnost › Konzistentní odhady = snadné revize a poučení › Vykázaný čas a reálně odpracovaný se mohou lišit › Checklisty a metodika pomohou
  • 19. Odhady v agilním světě Vít Kluganost 28. listopadu 2018
  • 20. 20 Osnova 1. Kontext Agile v praxi 2. Odhady v agilním světě – relevance, principy 3. Relativní jednotky 4. Techniky odhadů 5. Metriky 6. Shrnutí
  • 22. 22 Relevance odhadů v agilním světě › Přidaná (business) hodnota? #NO Estimates Estimate
  • 23. 23 Odhady v agilním světě - principy 1. Rychlost je důležitější než přesnost 2. Týmová práce a zodpovědnost 3. Relativní jednotky
  • 24. 24 Relativní jednotky › Velké x Malé › Story points 0 1/2 1 2 3 5 8 13 20 40 100 ?
  • 25. 25 Techniky odhadů › T-Shirt Sizes › Planning Poker › Ostatní – Large/Uncertain/Small – Ordering method – Affinity Mapping – TFB / NFC / 1 (Sprint) – Divide until Maximum Size or Less – Dot Voting – User stories counting – a další……. XS S M L XL
  • 27. 27 Velocity › Počet relativních jednotek, které tým dokáže dodat (dokončit) v rámci jedné iterace › K čemu slouží? › Focus Factor › Na co si dát pozor
  • 29. 29 Shrnutí › Odhad může mít mnoho podob › Lze výrazně redukovat časovou investici do jeho výroby › Má smysl dělat jen to, co je efektivní a funguje ve vašem týmu › Metriky jsou skvělý sluha, ale špatný pán › Tým je to hlavní, co v agilním světě máte!
  • 31. 31 Dopady odhadů na vztah zákazník/dodavatel?
  • 32. 32 Dopady odhadů na vztah zákazník/dodavatel? › Schopnost vytvořit odhad pro dané zadání přímo implikuje schopnost zadání reálně splnit › U nových zadání se Velmi často se pohybujeme na (před) začátku kužele nejistoty co nám to říká o přesnosti odhadu? › Pro koho je tato nepřesnost výhodná? – Místo dodání kvalitního SW často boj o rozsah – Rozčarování z výstupů (potřeby v čase T se neshodují s potřebami v čase T + X) – … neúspěch projektu, všeobecné zklamání › Další analýza/upřesnění je nezbytná
  • 33. 33 Přirozeným řešením je začít v malém a postupně přidávat. Nebo projekt ukončit, pokud na základě výstupů nedává smysl. Dopady odhadů na vztah zákazník/dodavatel?
  • 34. 34 Dopady odhadů na vztah zákazník/dodavatel?
  • 35. Profinit EU, s.r.o. Tychonova 2, 160 00 Praha 6 | Telefon + 420 224 316 016 Web www.profinit.eu LinkedIn linkedin.com/company/profinit Twitter twitter.com/Profinit_EU Facebook facebook.com/Profinit.EU Youtube Profinit EU Děkujeme za pozornost