SlideShare uma empresa Scribd logo
1 de 31
Úvodní informace k předmětu
Mgr. Lukáš Vacek
lukas.vacek@uhk.cz
TNPW2 2015/2016
2
„I am still learning“ – Michelangelo (as 87 yo)
Agenda
• Obsah předmětu
• Vstupní předpoklady
• Podmínky pro zápočet
• Požadavky na projekt
• Osnova dokumentace
• Aktuální informace k předmětu na webu
• Rady, co se mi nikam nevešly…
3
• (Skoro) každý ví, co je to Internet! Dokonce i Věra Pohlová 
• Význam Internetu ve společnosti neustále roste
• Důležité médium (tisk, rozhlas, televize…)
• Vysoká míra interakce s koncovým uživatelem
• Komunikační prostředek (informace) a platforma pro poskytování služeb
• Flexibilní prostředí (ekosystém) s velmi dynamickým vývojem
(několik let zpátky = internetový středověk)
• Více možností přístupů, různá zařízení, vyšší rychlost (konektivita), 24/7 – odkudkoliv,
kdykoliv!
Infografika: The Evolution of the Web… http://evolutionofweb.appspot.com/
• Exponenciálně roste počet uživatelů a množství dat, která Sítí protečou
Internet? 4
5
Zdroj Intel
• Co jsou to webové aplikace?
• Základní přehled používaných technologií, podrobněji
• JavaScript
• PHP (na cvičeních)
• ASP.NET (na cvičeních)
• Bezpečnost webových aplikací
• Aktuální trendy
• Cloud computing
• Mobilní aplikace
• XML (když bude čas)
• Cílem je navázat tam, kde skončil předmět TNPW1
Témata přednášek 6
• Absolvování předmětu TNPW1 (zápočet, zkouška)
• Praktická znalost (X)HTML
• Schopnost používat CSS při definování vizuálních vlastností WWW stránek
• Problematika webových aplikací vás zajímá jako technologie/business
Vstupní předpoklady 7
• Perspektiva ICT – jeden z nejlukrativnějších oborů, rychle se rozvíjí
• V kurzu je Internet, mobilní app, systémová integrace, DWH, BD, IoT, Java, .NET
• Vaše cena na trhu práce bude vyšší, když budete mít potřebné know-how
• Chápejte čas a úsilí věnované svému vzdělávání jako INVESTICI!
• Vzdělávání absolventů je dnes pro firmy drahé a riskantní
• Nikdo si z Vás nesedne na zadek!
• V reálném životě to je vždy trochu jinak, než jak si to ve škole představujeme
• Není nic špatného na tom, když něco nevíte nebo neumíte…
špatné je, když s tím nic neděláte!
• Nesvádějte svoji lenost nebo blbost na druhé!
K čemu je to dobré? 8
• Účast na mých cvičeních není povinná! Ostatní cvičící to mohou mít jinak!
• Pro získání zápočtu je třeba odevzdat závěrečný projekt.
• Projekt lze osobně prezentovat v termínech vypsaných v ISITu nebo na cvičeních
kdykoliv v průběhu semestru.
• Součástí projektu bude stručná dokumentace (stačí heslovitě na 1x A4).
Podmínky pro zápočet 9
• Projektem je webová aplikace, vytvořená ve Vámi zvolené technologii
• Součástí projektu bude vhodně zvolená integrace sociálních sítí
• Připravíte si powerpointovou prezentaci a ukážete funkční projekt, který má smysl provozovat
a používat!
• Projekt představíte jako šéfové vývojového týmu:
• O co jde?
• Komu je určen? (cílový uživatel)
• Proč by jej měl uživatel používat? (výhody)
• Porovnáte se s konkurencí (v čem je lepší/horší)
• Kolik MD stála implementace, za kolik je prodáváte?
• Výhled do budoucna (rozvoj, nové funkce, sociální sítě apod.)
• Pokud nejste programátor, někoho si na implementaci sežeňte. Ale budete tomu rozumět a
dokážete odpovědět na moje technické dotazy!
Obecné požadavky na projekt 10
• Skriptovací jazyky (PHP a spol.) používejte na projektech povinně v kombinaci s aplikačním
frameworkem (např. Nette, Zend...)!
• Výsledný zdrojový kód stránek bude validní HTML5!
• Aplikace bude fungovat i v mobilním prohlížeči (responsive web design)
• Struktura aplikace, navigace a vzhled stránek budou respektovat aspoň základní pravidla
pro přístupnost a použitelnost (znáte to z TNPW1!)
• Veškerá vizuální nastavení (layout, fonty, barvy apod.) budou definována v CSS (včetně
formátování pro tisk)
• Aplikační data budou uložena v databázi na serveru
• Všechny datové vstupy od uživatelů budou odpovídajícím způsobem ošetřeny (na straně klienta
je to vhodné, na straně serveru povinné), včetně zabezpečení proti opakovanému zápisu dat přes
obnovení stránky apod.
• V projektu bude vhodně využita technologie XML (např. RSS kanál s novinkami, export/import
dat apod.), pokud to má smysl
• Výjimky jsou přípustné, pokud je dokážete obhájit!
Technologické požadavky na projekt 11
• Cíl projektu
• Jméno autora!
• URL adresa projektu
• Popis řešení
• Popis použitých technologií
• Popis zabezpečení
• Odhadovaná pracnost a cena projektu
• K prezentaci si přineste aspoň jeden výtisk! Neposílejte mi osnovu mailem!
Osnova dokumentace 12
Na serveru http://tnpw2.webnode.cz najdete
• Informace k předmětu TNPW2
• Přednášky ke stažení (ve formátu PDF)
• Zdrojové kódy ukázkových příkladů
• Seznam doporučené literatury
• Odkazy na Internetu
Aktuální informace k předmětu na webu 13
Rady, co se mi nikam nevešly…
• Jednoduchá odpověď… ten kdo to platí! Obvykle business 
• Zákazník není váš soupeř, ale spoluhráč!
• Při rozhodování používejte ověřitelné argumenty (výpočet, porovnání)
• Cílem je úspěšná implementace projektu (s ohledem na podmínky)
• Potřeby zákazníka
• Harmonogram
• Peníze
• Kapacity (know-how)
• Hledejte nejjednodušší řešení požadavků!
• Nehledáme dokonalost, čistotu… „Done is better than perfect.“
• Udržitelnost v. neudržitelnost!
Projekt… KDO je tady ŠÉF? 15
• Komunikace je králem!
• Efektivní komunikace je klíčem k úspěšnému projektu
• Musíte být schopni vysvětlit své návrhy/nápady pokud možno stručně –
stostránkový dokument (skoro) nikdo nečte! Hlavně ne zákazník 
• Nebojte se používat názorné obrázky, buďte srozumitelní
• Vždy musíte vědět, kdo je vaše publikum… komu prezentujete/vysvětlujete
• Prezentujte realitu (funkce, stav projektu), nestavte vzdušné zámky (= zklamání)
• Co zákazník potřebuje (očekává)? Konkretizujte (pro různé role!)
• Pozor! Ne vždy je splnění všech zadaných požadavků možné
• Odporující si požadavky, termíny, cena, technologie, další omezení…
• Neodkládejte problémy (o kterých víte) na později!
Komunikace na projektu – I. 16
• Když vám něco (cokoliv) není jasné, zeptejte se!
• Průběžná zpětná vazba od zadavatele!
• Rozhodování o cílech probíhá na strategické, taktické a operační úrovni!
• Důležité je jednoznačné rozdělení zodpovědnosti na projektu (kdo-co?)
• Nenechte se vydírat!
• Žádný zákazník není důležitější než dobrý produkt (opakované řešení)
• Přínos pro jednoho zákazníka může být komplikací pro ostatní >> problém
• Pozor na statistiku (ankety… vědí lidé, o čem hlasují?)
• Naučte se říkat NE. Žádné „možná“ nebo „později“, prostě řekněte NE!
• Nebojte se! Nezapomeňte na to, že úplně KAŽDÝ MÁ SVÉHO ŠÉFA 
Komunikace na projektu – II. 17
• Motto: „Když něco nemůžete změřit, nemůžete to ani řídit“ – Peter Drucker
• Požadavky na informační systém určuje business!
• Zohlednit potřeby zákazníka, jejich pokrytí funkcionalitou systému
• Měřit přínos jednotlivých požadavků (ROI, TCO) – vyplatí se to, za jakých podmínek?
• Návrh architektury musí být v rovnováze – business/technologie – z krátkodobého
i dlouhodobého hlediska!
• Náklady ovlivňují zvolené technologické řešení
• Důležitá je zpětná vazba od businessu v průběhu všech etap řešení
• Kvalita výstupu je přímo úměrná kvalitě vstupních informací
• Implementace řešení, odhady pracnosti, náklady, termíny, pokrytí požadavků
• Kvantifikujte požadavky
• Obecné pojmy (např. rychle, flexibilně, rozšířitelně) nemají jednoznačný výklad
• Upřesněte, co konkrétní požadavek znamená? (např. Průměrná doba odezvy je… )
Projektové požadavky 18
• Koncový uživatel – intuitivní a správné chováním, výkon, spolehlivost,
použitelnost, dostupnost a bezpečnost
• Administrátor – přehlednost chování, jednoduchost správy, nástroje pro
monitorování provozu
• Pracovník businessu – konkurenceschopné funkce, co nejkratší dobu pro
uvedení do provozu, porovnání s konkurenčními produkty/službami a cenou
• Zákazník – zajímá ho cena, stabilita a termín dodání
• Vývojář – očekává jasně specifikované požadavky, a jednoduchý, konzistentní
přístup k dobře zdokumentovanému návrhu, snadné provádění změn
• Projektový manažer – vyžaduje předvídatelnost při sledování projektu, termínů,
rozpočtů a možnost produktivního využití zdrojů
• Zdroj: Monson-Haefel, Richard – 97 klíčových znalostí softwarového architekta
Příklady obvyklých požadavků a potřeb uživatelů 19
• Nepodceňovat!
• Často vychází z metodiky nebo z požadavků zákazníka
• Místo pro důležité informace o projektu… požadavky, design, protokoly,
provozní příručky apod.
• Nespoléhejte na lidskou paměť, dokumentace je spolehlivější
• Dokumentaci ukládat na jedno místo… do projektové knihovny!
• Pečlivě vše dokumentujte (požadavky i návrh architektury)
• Co, kdo, kdy, proč, jaká omezení?
• Všechny požadavky jednoznačně identifikujte (číslování!)
• Jedině s dokumentací lze rozhodnout, je-li dodávané řešení v souladu
s požadavky
• Kvalitní dokumentace zjednodušuje provoz a případný další rozvoj systému
Projektová dokumentace 20
• Různé možnosti, asi žádná není úplně 100% univerzální
• Kritéria pro výběr: znalost, zkušenost, flexibilita, norma/zákon
• Požadovaná metodika je často v zadávací dokumentaci
• Pokud si nějakou vyberete pro projekt, držte se ji
• Každá metodika se přizpůsobuje projektu (FTFP?) a lidem! Chce to čas!
• Některé jsou velmi robustní, jiné jsou jednoduché
• Podporují snahu MNG mít správné lidi ve správnou chvíli na správném místě
• Přehled metodik… Wiki
Projektové metodiky 21
• Jsou hodně trendy (konstatování)
• Extrémní programování (XP)
• Scrum
• Vývoj řízený vlastnostmi (FDD – Feature Driven Development)
• Lean software development
• Vývoj řízený testy (TDD – Test Driven Development)
• Crystal metodiky (Alistair Cockburn)
• Sprint method (Jiří Knesl)
Agilní metodiky 22
• http://www.zdrojak.cz/clanky/agilni-vyvoj-scrum/
• Product owner (pigs)
• Zastupuje zákazníka (business, který projekt platí)
• Určuje priority jednotlivých požadavků, implementační detaily, co bude ve kterém sprintu...
• Team member (pigs)
• Implementuje produkt/projekt, různé role (analýza, programování, testování apod.)
• Zodpovídá za chyby nebo úspěch svých úkolů
• Sám si organizuje práci na přidělených úkolech
• Scrum master (pigs)
• Odstiňuje vývojáře od problémů okolního světa (zajišťuje funkční HW, SW licence…)
• Učí, implementuje scrum metodiky
• Kontroluje, že jsou realizovány správně
• Zajišťuje potřebnou dokumentaci (Backlog, harmonogram, plán iterací, alokace kapacit...)
Agilní metodiky – SCRUM (Role I.) 23
• Stakeholders (chickens)
• Lidé od zákazníka, testeři, připomínky zvenčí
• Managers (chickens)
• Lidé ovlivňující prostředí projektu, nejsou pigs
• Nezapomeňte na ně, i když stojí jakoby mimo implementaci
Agilní metodiky – SCRUM (Role II.) 24
• Projekt je rozdělen do jednotlivých etap/iterací (sprintů)
• Plán sprintu… Co se bude dělat? A jak se to bude dělat?
• Jeden sprint cca 2-4 týdny (může být i kratší)
• Důležitá pravidla!
• V průběhu sprintu nejsou akceptovány žádné změny!
• Každý sprint musí být naplánován před svým zahájením!
• Často probíhá tzv. nultá iterace – řešení nějakého jednoduchého nebo naopak
důležitého úkolu v rámci týmu, resp. školení, příprava prostředí apod.
Agilní metodiky – SCRUM (Sprint) 25
• Seznam všech známých požadavků (tasks, tickets...) na projekt/produkt
• Každý požadavek má stanovenou prioritu (určuje ji Product owner a SCRUM
master)
• Všichni členové týmu mají přístup!
• V rámci sprintu má požadavek svého vlastníka (zodpovídá za implementaci,
výsledek)
• Pokud člen týmu stihne přidělené úkoly v rámci sprintu rychleji, může dostat
z backlogu další (po dohodě se SCRUM masterem!)
Agilní metodiky – SCRUM (Product backlog) 26
• Daily SCRUM (povinně!)
• Každý den ráno schůzka všech členů týmu, cca 15 minut
• Co jste udělali od poslední schůzky?
• Co máte naplánováno do další schůzky?
• Jsou nějaké problémy, na které jste narazili? Kdo je může pomoct vyřešit?
• Organizuje a řádně dokumentuje SCRUM master!
• SCRUM review meeting (povinně!)
• Probíhá na konci každé iterace (sprintu)
• Ukázka toho, co už je hotové
• Zpětná vazba
• Retrospektivní SCRUM meeting (doporučeno)
• Obvykle jen členové týmu a SCRUM master
• Získané zkušenosti, problémy, co a jak zlepšit?
Agilní metodiky – SCRUM (Scrum meeting) 27
• Používejte zdravý rozum!
• Implementace SCRUM metodiky potřebuje čas!
• Není to univerzální kráječ (řešení každého problému)!
• Je to přístup k vývoji software
• Je rychlý a flexibilní
• Je orientován na závazky (osobní zodpovědnost)
• Je založen na srozumitelnosti, kontrole a přizpůsobení
• Pozor na FTFP projekty!
Agilní metodiky – SCRUM (Doporučení) 28
• Čistota návrhu nikdy nesmí být na úkor použitelnosti nebo výkonu!
• Používejte vhodné návrhové vzory a doporučení (SOLID, GRASP …)
• Udělejte řešení co nejjednodušší (KISS)
• Příliš mnoho uživatelských konfigurací vede ke složitosti (a k problémům)
• Neopakujte se (DRY)
• Implementujte jen ty funkce, které jsou skutečně potřeba (YAGNI)
• Rozsah práce (bude to rychle) není důvodem pro implementaci funkce!
• I malá (nepromyšlená) změna může mít velký dopad
• Spousta špatných nápadů má rychlou/levnou implementaci 
Design aplikace (Co je dobré vědět?) 29
• Ukládat na jednom místě v repository (Git, TFS…)
• Definovat programátorské konvence
• Verzovat kód, používat tzv. labels
• Používat komentáře (lepší pochopení geniality autora kódu )
• Vždy dodržovat pravidlo GET – BUILD – RUN!
Zdrojové kódy 30
• Testujte všechno, co jde (funkční, zátěžové, integrační, unit…)
• Pokud se vám vyplatí testy automatizovat, udělejte to (hodně iterací, rozsáhlé
systémy, hodně dodavatelů, refaktorizace…)
• Lidský faktor selhává, automatický test proběhne vždy stejně
• Automatické testy lze dobře propojit s ukládáním změn do repository
• S automatickými testy souvisí přístup Continuous integration
• K tématu… Robert Dresler: Snižování rizikovosti softwarových projektů
Testování 31

Mais conteúdo relacionado

Mais procurados (19)

TNPW2-2014-05
TNPW2-2014-05TNPW2-2014-05
TNPW2-2014-05
 
TNPW2-2013-05
TNPW2-2013-05TNPW2-2013-05
TNPW2-2013-05
 
TNPW2-2013-02
TNPW2-2013-02TNPW2-2013-02
TNPW2-2013-02
 
TNPW2-2014-03
TNPW2-2014-03TNPW2-2014-03
TNPW2-2014-03
 
TNPW2-2012-06
TNPW2-2012-06TNPW2-2012-06
TNPW2-2012-06
 
TNPW2-2012-08
TNPW2-2012-08TNPW2-2012-08
TNPW2-2012-08
 
TNPW2-2014-06
TNPW2-2014-06TNPW2-2014-06
TNPW2-2014-06
 
TNPW2-2013-01
TNPW2-2013-01TNPW2-2013-01
TNPW2-2013-01
 
TNPW2-2013-07
TNPW2-2013-07TNPW2-2013-07
TNPW2-2013-07
 
TNPW2-2012-05
TNPW2-2012-05TNPW2-2012-05
TNPW2-2012-05
 
TNPW2-2012-02
TNPW2-2012-02TNPW2-2012-02
TNPW2-2012-02
 
Smact a průmysl 4.0
Smact a průmysl 4.0Smact a průmysl 4.0
Smact a průmysl 4.0
 
TNPW2-2013-04
TNPW2-2013-04TNPW2-2013-04
TNPW2-2013-04
 
TNPW2-2013-06
TNPW2-2013-06TNPW2-2013-06
TNPW2-2013-06
 
TNPW2-2011-04
TNPW2-2011-04TNPW2-2011-04
TNPW2-2011-04
 
TNPW2-2014-01
TNPW2-2014-01TNPW2-2014-01
TNPW2-2014-01
 
Rich Internet Applications 2009 (Czech)
Rich Internet Applications 2009 (Czech)Rich Internet Applications 2009 (Czech)
Rich Internet Applications 2009 (Czech)
 
Confluence_v1.4_extended
Confluence_v1.4_extendedConfluence_v1.4_extended
Confluence_v1.4_extended
 
TNPW2-2012-07
TNPW2-2012-07TNPW2-2012-07
TNPW2-2012-07
 

Semelhante a TNPW2-2016-01

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
 
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
 
Analytika v B2B světě
Analytika v B2B světěAnalytika v B2B světě
Analytika v B2B světěTaste Medio
 
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
 
Efektivní online prezentace
Efektivní online prezentaceEfektivní online prezentace
Efektivní online prezentaceIvo Kylián
 
Web jako součást obchodního procesu
Web jako součást obchodního procesuWeb jako součást obchodního procesu
Web jako součást obchodního procesuAITOM Digital s.r.o.
 
Komplexní projekty easy-way
Komplexní projekty easy-wayKomplexní projekty easy-way
Komplexní projekty easy-wayKarolina Smejkal
 
Webinář Keboola a GoodData
Webinář Keboola a GoodDataWebinář Keboola a GoodData
Webinář Keboola a GoodDataTaste Medio
 
Komplexitu analyzou neubijete_skpr_20171122
Komplexitu analyzou neubijete_skpr_20171122Komplexitu analyzou neubijete_skpr_20171122
Komplexitu analyzou neubijete_skpr_20171122Karolina Smejkal
 
Jak nastartovat vývojový projekt
Jak nastartovat vývojový projektJak nastartovat vývojový projekt
Jak nastartovat vývojový projektJiří Knesl
 
Konkrétní přínosy webu 2.0 pro management malých a středních firem
Konkrétní přínosy webu 2.0 pro management malých a středních firemKonkrétní přínosy webu 2.0 pro management malých a středních firem
Konkrétní přínosy webu 2.0 pro management malých a středních firemJiri Kodera
 
Vodafone Nápad roku, 21. 4. 2016: Jak na obsah, který prodává
Vodafone Nápad roku, 21. 4. 2016: Jak na obsah, který prodáváVodafone Nápad roku, 21. 4. 2016: Jak na obsah, který prodává
Vodafone Nápad roku, 21. 4. 2016: Jak na obsah, který prodáváObsahová agentura s.r.o.
 
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
 
Data management a jak psát data management plan
Data management a jak psát data management planData management a jak psát data management plan
Data management a jak psát data management planPetra Dedicova
 
8. Lukas Piska - CN Group
8. Lukas Piska - CN Group8. Lukas Piska - CN Group
8. Lukas Piska - CN GroupMobCon
 
Agilní architektura
Agilní architekturaAgilní architektura
Agilní architekturaMilan Rubeš
 
Tomáš Ludvík: Uživatelský výzkum v návrhu webu #blokexpertu
Tomáš Ludvík: Uživatelský výzkum v návrhu webu #blokexpertuTomáš Ludvík: Uživatelský výzkum v návrhu webu #blokexpertu
Tomáš Ludvík: Uživatelský výzkum v návrhu webu #blokexpertuKISK FF MU
 

Semelhante a TNPW2-2016-01 (20)

Prezentace chci.software Masterminding - Smart Network
Prezentace chci.software Masterminding - Smart NetworkPrezentace chci.software Masterminding - Smart Network
Prezentace chci.software Masterminding - Smart Network
 
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ů
 
Analytika v B2B světě
Analytika v B2B světěAnalytika v B2B světě
Analytika v B2B světě
 
Adam Hazdra: Design služeb v knihovnách
Adam Hazdra: Design služeb v knihovnách Adam Hazdra: Design služeb v knihovnách
Adam Hazdra: Design služeb v knihovnách
 
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)
 
Efektivní online prezentace
Efektivní online prezentaceEfektivní online prezentace
Efektivní online prezentace
 
Web jako součást obchodního procesu
Web jako součást obchodního procesuWeb jako součást obchodního procesu
Web jako součást obchodního procesu
 
Komplexní projekty easy-way
Komplexní projekty easy-wayKomplexní projekty easy-way
Komplexní projekty easy-way
 
Webinář Keboola a GoodData
Webinář Keboola a GoodDataWebinář Keboola a GoodData
Webinář Keboola a GoodData
 
Komplexitu analyzou neubijete_skpr_20171122
Komplexitu analyzou neubijete_skpr_20171122Komplexitu analyzou neubijete_skpr_20171122
Komplexitu analyzou neubijete_skpr_20171122
 
Jak nastartovat vývojový projekt
Jak nastartovat vývojový projektJak nastartovat vývojový projekt
Jak nastartovat vývojový projekt
 
TNPW2-2012-01
TNPW2-2012-01TNPW2-2012-01
TNPW2-2012-01
 
Konkrétní přínosy webu 2.0 pro management malých a středních firem
Konkrétní přínosy webu 2.0 pro management malých a středních firemKonkrétní přínosy webu 2.0 pro management malých a středních firem
Konkrétní přínosy webu 2.0 pro management malých a středních firem
 
Vodafone Nápad roku, 21. 4. 2016: Jak na obsah, který prodává
Vodafone Nápad roku, 21. 4. 2016: Jak na obsah, který prodáváVodafone Nápad roku, 21. 4. 2016: Jak na obsah, který prodává
Vodafone Nápad roku, 21. 4. 2016: Jak na obsah, který prodává
 
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
 
Data management a jak psát data management plan
Data management a jak psát data management planData management a jak psát data management plan
Data management a jak psát data management plan
 
8. Lukas Piska - CN Group
8. Lukas Piska - CN Group8. Lukas Piska - CN Group
8. Lukas Piska - CN Group
 
Agilní architektura
Agilní architekturaAgilní architektura
Agilní architektura
 
Jak na úspěšný (digitální) projekt?
Jak na úspěšný (digitální) projekt?Jak na úspěšný (digitální) projekt?
Jak na úspěšný (digitální) projekt?
 
Tomáš Ludvík: Uživatelský výzkum v návrhu webu #blokexpertu
Tomáš Ludvík: Uživatelský výzkum v návrhu webu #blokexpertuTomáš Ludvík: Uživatelský výzkum v návrhu webu #blokexpertu
Tomáš Ludvík: Uživatelský výzkum v návrhu webu #blokexpertu
 

Mais de Lukáš Vacek

Mais de Lukáš Vacek (8)

TNPW2-2013-10
TNPW2-2013-10TNPW2-2013-10
TNPW2-2013-10
 
TNPW2-2013-09
TNPW2-2013-09TNPW2-2013-09
TNPW2-2013-09
 
TNPW2-2013-08
TNPW2-2013-08TNPW2-2013-08
TNPW2-2013-08
 
TNPW2-2013-03
TNPW2-2013-03TNPW2-2013-03
TNPW2-2013-03
 
TNPW2-2012-10
TNPW2-2012-10TNPW2-2012-10
TNPW2-2012-10
 
TNPW2-2012-09
TNPW2-2012-09TNPW2-2012-09
TNPW2-2012-09
 
TNPW2-2012-04
TNPW2-2012-04TNPW2-2012-04
TNPW2-2012-04
 
TNPW2-2012-03
TNPW2-2012-03TNPW2-2012-03
TNPW2-2012-03
 

TNPW2-2016-01

  • 1. Úvodní informace k předmětu Mgr. Lukáš Vacek lukas.vacek@uhk.cz TNPW2 2015/2016
  • 2. 2 „I am still learning“ – Michelangelo (as 87 yo)
  • 3. Agenda • Obsah předmětu • Vstupní předpoklady • Podmínky pro zápočet • Požadavky na projekt • Osnova dokumentace • Aktuální informace k předmětu na webu • Rady, co se mi nikam nevešly… 3
  • 4. • (Skoro) každý ví, co je to Internet! Dokonce i Věra Pohlová  • Význam Internetu ve společnosti neustále roste • Důležité médium (tisk, rozhlas, televize…) • Vysoká míra interakce s koncovým uživatelem • Komunikační prostředek (informace) a platforma pro poskytování služeb • Flexibilní prostředí (ekosystém) s velmi dynamickým vývojem (několik let zpátky = internetový středověk) • Více možností přístupů, různá zařízení, vyšší rychlost (konektivita), 24/7 – odkudkoliv, kdykoliv! Infografika: The Evolution of the Web… http://evolutionofweb.appspot.com/ • Exponenciálně roste počet uživatelů a množství dat, která Sítí protečou Internet? 4
  • 6. • Co jsou to webové aplikace? • Základní přehled používaných technologií, podrobněji • JavaScript • PHP (na cvičeních) • ASP.NET (na cvičeních) • Bezpečnost webových aplikací • Aktuální trendy • Cloud computing • Mobilní aplikace • XML (když bude čas) • Cílem je navázat tam, kde skončil předmět TNPW1 Témata přednášek 6
  • 7. • Absolvování předmětu TNPW1 (zápočet, zkouška) • Praktická znalost (X)HTML • Schopnost používat CSS při definování vizuálních vlastností WWW stránek • Problematika webových aplikací vás zajímá jako technologie/business Vstupní předpoklady 7
  • 8. • Perspektiva ICT – jeden z nejlukrativnějších oborů, rychle se rozvíjí • V kurzu je Internet, mobilní app, systémová integrace, DWH, BD, IoT, Java, .NET • Vaše cena na trhu práce bude vyšší, když budete mít potřebné know-how • Chápejte čas a úsilí věnované svému vzdělávání jako INVESTICI! • Vzdělávání absolventů je dnes pro firmy drahé a riskantní • Nikdo si z Vás nesedne na zadek! • V reálném životě to je vždy trochu jinak, než jak si to ve škole představujeme • Není nic špatného na tom, když něco nevíte nebo neumíte… špatné je, když s tím nic neděláte! • Nesvádějte svoji lenost nebo blbost na druhé! K čemu je to dobré? 8
  • 9. • Účast na mých cvičeních není povinná! Ostatní cvičící to mohou mít jinak! • Pro získání zápočtu je třeba odevzdat závěrečný projekt. • Projekt lze osobně prezentovat v termínech vypsaných v ISITu nebo na cvičeních kdykoliv v průběhu semestru. • Součástí projektu bude stručná dokumentace (stačí heslovitě na 1x A4). Podmínky pro zápočet 9
  • 10. • Projektem je webová aplikace, vytvořená ve Vámi zvolené technologii • Součástí projektu bude vhodně zvolená integrace sociálních sítí • Připravíte si powerpointovou prezentaci a ukážete funkční projekt, který má smysl provozovat a používat! • Projekt představíte jako šéfové vývojového týmu: • O co jde? • Komu je určen? (cílový uživatel) • Proč by jej měl uživatel používat? (výhody) • Porovnáte se s konkurencí (v čem je lepší/horší) • Kolik MD stála implementace, za kolik je prodáváte? • Výhled do budoucna (rozvoj, nové funkce, sociální sítě apod.) • Pokud nejste programátor, někoho si na implementaci sežeňte. Ale budete tomu rozumět a dokážete odpovědět na moje technické dotazy! Obecné požadavky na projekt 10
  • 11. • Skriptovací jazyky (PHP a spol.) používejte na projektech povinně v kombinaci s aplikačním frameworkem (např. Nette, Zend...)! • Výsledný zdrojový kód stránek bude validní HTML5! • Aplikace bude fungovat i v mobilním prohlížeči (responsive web design) • Struktura aplikace, navigace a vzhled stránek budou respektovat aspoň základní pravidla pro přístupnost a použitelnost (znáte to z TNPW1!) • Veškerá vizuální nastavení (layout, fonty, barvy apod.) budou definována v CSS (včetně formátování pro tisk) • Aplikační data budou uložena v databázi na serveru • Všechny datové vstupy od uživatelů budou odpovídajícím způsobem ošetřeny (na straně klienta je to vhodné, na straně serveru povinné), včetně zabezpečení proti opakovanému zápisu dat přes obnovení stránky apod. • V projektu bude vhodně využita technologie XML (např. RSS kanál s novinkami, export/import dat apod.), pokud to má smysl • Výjimky jsou přípustné, pokud je dokážete obhájit! Technologické požadavky na projekt 11
  • 12. • Cíl projektu • Jméno autora! • URL adresa projektu • Popis řešení • Popis použitých technologií • Popis zabezpečení • Odhadovaná pracnost a cena projektu • K prezentaci si přineste aspoň jeden výtisk! Neposílejte mi osnovu mailem! Osnova dokumentace 12
  • 13. Na serveru http://tnpw2.webnode.cz najdete • Informace k předmětu TNPW2 • Přednášky ke stažení (ve formátu PDF) • Zdrojové kódy ukázkových příkladů • Seznam doporučené literatury • Odkazy na Internetu Aktuální informace k předmětu na webu 13
  • 14. Rady, co se mi nikam nevešly…
  • 15. • Jednoduchá odpověď… ten kdo to platí! Obvykle business  • Zákazník není váš soupeř, ale spoluhráč! • Při rozhodování používejte ověřitelné argumenty (výpočet, porovnání) • Cílem je úspěšná implementace projektu (s ohledem na podmínky) • Potřeby zákazníka • Harmonogram • Peníze • Kapacity (know-how) • Hledejte nejjednodušší řešení požadavků! • Nehledáme dokonalost, čistotu… „Done is better than perfect.“ • Udržitelnost v. neudržitelnost! Projekt… KDO je tady ŠÉF? 15
  • 16. • Komunikace je králem! • Efektivní komunikace je klíčem k úspěšnému projektu • Musíte být schopni vysvětlit své návrhy/nápady pokud možno stručně – stostránkový dokument (skoro) nikdo nečte! Hlavně ne zákazník  • Nebojte se používat názorné obrázky, buďte srozumitelní • Vždy musíte vědět, kdo je vaše publikum… komu prezentujete/vysvětlujete • Prezentujte realitu (funkce, stav projektu), nestavte vzdušné zámky (= zklamání) • Co zákazník potřebuje (očekává)? Konkretizujte (pro různé role!) • Pozor! Ne vždy je splnění všech zadaných požadavků možné • Odporující si požadavky, termíny, cena, technologie, další omezení… • Neodkládejte problémy (o kterých víte) na později! Komunikace na projektu – I. 16
  • 17. • Když vám něco (cokoliv) není jasné, zeptejte se! • Průběžná zpětná vazba od zadavatele! • Rozhodování o cílech probíhá na strategické, taktické a operační úrovni! • Důležité je jednoznačné rozdělení zodpovědnosti na projektu (kdo-co?) • Nenechte se vydírat! • Žádný zákazník není důležitější než dobrý produkt (opakované řešení) • Přínos pro jednoho zákazníka může být komplikací pro ostatní >> problém • Pozor na statistiku (ankety… vědí lidé, o čem hlasují?) • Naučte se říkat NE. Žádné „možná“ nebo „později“, prostě řekněte NE! • Nebojte se! Nezapomeňte na to, že úplně KAŽDÝ MÁ SVÉHO ŠÉFA  Komunikace na projektu – II. 17
  • 18. • Motto: „Když něco nemůžete změřit, nemůžete to ani řídit“ – Peter Drucker • Požadavky na informační systém určuje business! • Zohlednit potřeby zákazníka, jejich pokrytí funkcionalitou systému • Měřit přínos jednotlivých požadavků (ROI, TCO) – vyplatí se to, za jakých podmínek? • Návrh architektury musí být v rovnováze – business/technologie – z krátkodobého i dlouhodobého hlediska! • Náklady ovlivňují zvolené technologické řešení • Důležitá je zpětná vazba od businessu v průběhu všech etap řešení • Kvalita výstupu je přímo úměrná kvalitě vstupních informací • Implementace řešení, odhady pracnosti, náklady, termíny, pokrytí požadavků • Kvantifikujte požadavky • Obecné pojmy (např. rychle, flexibilně, rozšířitelně) nemají jednoznačný výklad • Upřesněte, co konkrétní požadavek znamená? (např. Průměrná doba odezvy je… ) Projektové požadavky 18
  • 19. • Koncový uživatel – intuitivní a správné chováním, výkon, spolehlivost, použitelnost, dostupnost a bezpečnost • Administrátor – přehlednost chování, jednoduchost správy, nástroje pro monitorování provozu • Pracovník businessu – konkurenceschopné funkce, co nejkratší dobu pro uvedení do provozu, porovnání s konkurenčními produkty/službami a cenou • Zákazník – zajímá ho cena, stabilita a termín dodání • Vývojář – očekává jasně specifikované požadavky, a jednoduchý, konzistentní přístup k dobře zdokumentovanému návrhu, snadné provádění změn • Projektový manažer – vyžaduje předvídatelnost při sledování projektu, termínů, rozpočtů a možnost produktivního využití zdrojů • Zdroj: Monson-Haefel, Richard – 97 klíčových znalostí softwarového architekta Příklady obvyklých požadavků a potřeb uživatelů 19
  • 20. • Nepodceňovat! • Často vychází z metodiky nebo z požadavků zákazníka • Místo pro důležité informace o projektu… požadavky, design, protokoly, provozní příručky apod. • Nespoléhejte na lidskou paměť, dokumentace je spolehlivější • Dokumentaci ukládat na jedno místo… do projektové knihovny! • Pečlivě vše dokumentujte (požadavky i návrh architektury) • Co, kdo, kdy, proč, jaká omezení? • Všechny požadavky jednoznačně identifikujte (číslování!) • Jedině s dokumentací lze rozhodnout, je-li dodávané řešení v souladu s požadavky • Kvalitní dokumentace zjednodušuje provoz a případný další rozvoj systému Projektová dokumentace 20
  • 21. • Různé možnosti, asi žádná není úplně 100% univerzální • Kritéria pro výběr: znalost, zkušenost, flexibilita, norma/zákon • Požadovaná metodika je často v zadávací dokumentaci • Pokud si nějakou vyberete pro projekt, držte se ji • Každá metodika se přizpůsobuje projektu (FTFP?) a lidem! Chce to čas! • Některé jsou velmi robustní, jiné jsou jednoduché • Podporují snahu MNG mít správné lidi ve správnou chvíli na správném místě • Přehled metodik… Wiki Projektové metodiky 21
  • 22. • Jsou hodně trendy (konstatování) • Extrémní programování (XP) • Scrum • Vývoj řízený vlastnostmi (FDD – Feature Driven Development) • Lean software development • Vývoj řízený testy (TDD – Test Driven Development) • Crystal metodiky (Alistair Cockburn) • Sprint method (Jiří Knesl) Agilní metodiky 22
  • 23. • http://www.zdrojak.cz/clanky/agilni-vyvoj-scrum/ • Product owner (pigs) • Zastupuje zákazníka (business, který projekt platí) • Určuje priority jednotlivých požadavků, implementační detaily, co bude ve kterém sprintu... • Team member (pigs) • Implementuje produkt/projekt, různé role (analýza, programování, testování apod.) • Zodpovídá za chyby nebo úspěch svých úkolů • Sám si organizuje práci na přidělených úkolech • Scrum master (pigs) • Odstiňuje vývojáře od problémů okolního světa (zajišťuje funkční HW, SW licence…) • Učí, implementuje scrum metodiky • Kontroluje, že jsou realizovány správně • Zajišťuje potřebnou dokumentaci (Backlog, harmonogram, plán iterací, alokace kapacit...) Agilní metodiky – SCRUM (Role I.) 23
  • 24. • Stakeholders (chickens) • Lidé od zákazníka, testeři, připomínky zvenčí • Managers (chickens) • Lidé ovlivňující prostředí projektu, nejsou pigs • Nezapomeňte na ně, i když stojí jakoby mimo implementaci Agilní metodiky – SCRUM (Role II.) 24
  • 25. • Projekt je rozdělen do jednotlivých etap/iterací (sprintů) • Plán sprintu… Co se bude dělat? A jak se to bude dělat? • Jeden sprint cca 2-4 týdny (může být i kratší) • Důležitá pravidla! • V průběhu sprintu nejsou akceptovány žádné změny! • Každý sprint musí být naplánován před svým zahájením! • Často probíhá tzv. nultá iterace – řešení nějakého jednoduchého nebo naopak důležitého úkolu v rámci týmu, resp. školení, příprava prostředí apod. Agilní metodiky – SCRUM (Sprint) 25
  • 26. • Seznam všech známých požadavků (tasks, tickets...) na projekt/produkt • Každý požadavek má stanovenou prioritu (určuje ji Product owner a SCRUM master) • Všichni členové týmu mají přístup! • V rámci sprintu má požadavek svého vlastníka (zodpovídá za implementaci, výsledek) • Pokud člen týmu stihne přidělené úkoly v rámci sprintu rychleji, může dostat z backlogu další (po dohodě se SCRUM masterem!) Agilní metodiky – SCRUM (Product backlog) 26
  • 27. • Daily SCRUM (povinně!) • Každý den ráno schůzka všech členů týmu, cca 15 minut • Co jste udělali od poslední schůzky? • Co máte naplánováno do další schůzky? • Jsou nějaké problémy, na které jste narazili? Kdo je může pomoct vyřešit? • Organizuje a řádně dokumentuje SCRUM master! • SCRUM review meeting (povinně!) • Probíhá na konci každé iterace (sprintu) • Ukázka toho, co už je hotové • Zpětná vazba • Retrospektivní SCRUM meeting (doporučeno) • Obvykle jen členové týmu a SCRUM master • Získané zkušenosti, problémy, co a jak zlepšit? Agilní metodiky – SCRUM (Scrum meeting) 27
  • 28. • Používejte zdravý rozum! • Implementace SCRUM metodiky potřebuje čas! • Není to univerzální kráječ (řešení každého problému)! • Je to přístup k vývoji software • Je rychlý a flexibilní • Je orientován na závazky (osobní zodpovědnost) • Je založen na srozumitelnosti, kontrole a přizpůsobení • Pozor na FTFP projekty! Agilní metodiky – SCRUM (Doporučení) 28
  • 29. • Čistota návrhu nikdy nesmí být na úkor použitelnosti nebo výkonu! • Používejte vhodné návrhové vzory a doporučení (SOLID, GRASP …) • Udělejte řešení co nejjednodušší (KISS) • Příliš mnoho uživatelských konfigurací vede ke složitosti (a k problémům) • Neopakujte se (DRY) • Implementujte jen ty funkce, které jsou skutečně potřeba (YAGNI) • Rozsah práce (bude to rychle) není důvodem pro implementaci funkce! • I malá (nepromyšlená) změna může mít velký dopad • Spousta špatných nápadů má rychlou/levnou implementaci  Design aplikace (Co je dobré vědět?) 29
  • 30. • Ukládat na jednom místě v repository (Git, TFS…) • Definovat programátorské konvence • Verzovat kód, používat tzv. labels • Používat komentáře (lepší pochopení geniality autora kódu ) • Vždy dodržovat pravidlo GET – BUILD – RUN! Zdrojové kódy 30
  • 31. • Testujte všechno, co jde (funkční, zátěžové, integrační, unit…) • Pokud se vám vyplatí testy automatizovat, udělejte to (hodně iterací, rozsáhlé systémy, hodně dodavatelů, refaktorizace…) • Lidský faktor selhává, automatický test proběhne vždy stejně • Automatické testy lze dobře propojit s ukládáním změn do repository • S automatickými testy souvisí přístup Continuous integration • K tématu… Robert Dresler: Snižování rizikovosti softwarových projektů Testování 31