CORE013 / Barbora Bühnová1 Přednáška 2 IT pozice v životním cyklu software CORE013 / Barbora Bühnová2 Činnosti softwarového procesu ̶ Specifikace požadavků: zákazníci a inženýři definují software a omezení jeho fungování ̶ Analýza a návrh: požadavky se upřesňují do návrhu systému ̶ Implementace: vytváření software ̶ Validace a verifikace: kontrola, zda software odpovídá požadavkům zákazníka ̶ Údržba a rozvoj: software se upravuje podle měnících se požadavků zákazníků a trhu CORE013 / Barbora Bühnová3 LIDSKÝ FAKTOR VE VÝVOJI SOFTWARE CORE013 / Barbora Bühnová4 Lidský faktor ve vývoji softwarových systémů ̶ Zúčastněné osoby ̶ Vývoj software – Role v softwarové firmě ̶ Zákazníci a jejich klíčoví stakeholders ̶ Uživatelé – koncoví i testovací ̶ Důležité aspekty ̶ Role osob v řízení vývoje softwarových systémů (planning, risk management) ̶ Nástroje pro usnadnění práce lidí v IT firmách ̶ Průzkum uživatelských potřeb a testování jejich naplnění, A/B testing CORE013 / Barbora Bühnová5 ROLE V SOFTWAROVÉ FIRMĚ CORE013 / Barbora Bühnová6 Činnosti softwarového vývoje ̶ Specifikace požadavků: zákazníci a inženýři definují software a omezení jeho fungování ̶ Analýza a návrh: požadavky se upřesňují do návrhu systému ̶ Implementace: vytváření software ̶ Validace a verifikace: kontrola, zda software odpovídá požadavkům zákazníka ̶ Údržba a rozvoj: software se upravuje podle měnících se požadavků zákazníků a trhu CORE013 / Barbora Bühnová7 Vedení vývoje Specifikace požadavků Analýza a návrh Implementace Validace a verifikace Nasazení a provoz Údržba a rozvoj projektoví a produktoví manageři / tech lead vs. people manager Konzultanti, doménoví experti Bussiness analytik System analytik Designer Technical Architect Frontend/backe nd vývojář Database vývojář Mobile app vývojář UX engineer Testeři (performance, security) Quality analytik DevOps, síťař, infrastruktura, administrátoři Helpdesk Technická podpora Liší se výrazně u zakázkového vs. produktového vývoje (produkt i služba) Činnosti softwarového procesu CORE013 / Barbora Bühnová8 Role v softwarové společnosti © Papcunová https://media-exp1.licdn.com/dms/image/C5612AQG2Iyoh-3dfnQ/article-inline_image- shrink_1500_2232/0?e=1593648000&v=beta&t=GLy799ZpVVCJmrloDtxpJikio0taboz8ZU9yJpVc8no CORE013 / Barbora Bühnová9 Tým vodopádového modelu © Papcunová https://media-exp1.licdn.com/dms/image/C4E12AQE9w5UELHCzEw/article-inline_image- shrink_1000_1488/0?e=1593648000&v=beta&t=79YTCHzq2tpqi8yYfavNh0J_6p093H9sIf1pVLKeoyw CORE013 / Barbora Bühnová10 Scrum tým © Papcunová https://www.pngitem.com/pimgs/m/145-1451323_what-is-scrum-team-illustration-hd-png-download.png CORE013 / Barbora Bühnová11 Klíčové body ̶ V softwarové společnosti existuje celá řada rolí. ̶ Ve vodopádovém týmu můžeme najít ̶ Business analytici, techničtí architekti, vývojáři, testeři, helpdesk, projektoví manažeři. ̶ V agilním týmu můžeme najít ̶ Scrum Master, Product Owner, Business Owner, Domain Expert a vývojáři, kteří mohou působit také jako inženýři kvality, obchodní analytici a architekti. CORE013 / Barbora Bühnová12 ŘÍZENÍ SOFTWAROVÉHO VÝVOJE CORE013 / Barbora Bühnová13 Management softwarových projektů ̶ Zabývá se činnostmi souvisejícími se zajištěním, aby byl software dodán včas, v rámci rozpočtu a v souladu s požadavky organizací, které software vyvíjejí a pořizují. ̶ Kritéria úspěšnosti: ̶ Dodání softwaru zákazníkovi v dohodnutém termínu. ̶ Udržujte celkové náklady v rámci rozpočtu. ̶ Dodávat software, který splňuje očekávání zákazníka. ̶ Udržujte spokojený a dobře fungující vývojový tým. CORE013 / Barbora Bühnová14 Rozdíly ve správě softwaru ̶ Produkt je nehmotný. ̶ Software nelze vidět ani se ho dotknout. Vedoucí softwarových projektů nemohou zjistit pokrok pouhým pohledem na vytvářený artefakt. ̶ Mnoho softwarových projektů je jednorázových. ̶ Velké softwarové projekty se obvykle v některých ohledech liší od předchozích projektů. I pro manažery, kteří mají bohaté předchozí zkušenosti, může být obtížné předvídat problémy. ̶ Softwarové procesy jsou proměnlivé a specifické pro jednotlivé organizace. ̶ Stále nedokážeme spolehlivě předpovědět, kdy určitý softwarový proces pravděpodobně povede k problémům při vývoji. CORE013 / Barbora Bühnová15 Řídící činnosti ̶ Plánování projektu ̶ Projektoví manažeři jsou zodpovědní za plánování, odhadování a rozvrhování vývoje projektu a přidělování lidí k úkolům. ̶ Řízení rizik ̶ Projektoví manažeři vyhodnocují rizika, která mohou projekt ovlivnit, monitorují tato rizika a v případě problémů přijímají opatření. ̶ Řízení lidí ̶ Projektoví manažeři si musí vybrat lidi do svého týmu a stanovit způsoby práce, které povedou k efektivnímu výkonu týmu. CORE013 / Barbora Bühnová16 Řídící činnosti ̶ Reporting ̶ Projektoví manažeři jsou obvykle zodpovědní za podávání zpráv o průběhu projektu zákazníkům a manažerům společnosti, která software vyvíjí. ̶ Vyjednávání o smlouvě ̶ První fáze softwarového projektu může zahrnovat sepsání návrhu na získání zakázky na provedení určité práce. Návrh popisuje cíle projektu a způsob jeho provedení. ̶ Následně je smlouva sjednána a později prodloužena s ohledem na změny požadavků a měnící se časová omezení. CORE013 / Barbora Bühnová17 PLÁNOVÁNÍ PROJEKTU CORE013 / Barbora Bühnová18 Plánování projektu ̶ Plánování projektu zahrnuje rozdělení práce na části a jejich přidělení členům projektového týmu, předvídání problémů, které by mohly nastat, a přípravu předběžných řešení těchto problémů. ̶ Plán projektu, který se vytváří na začátku projektu, slouží ke sdělení způsobu provedení práce projektovému týmu a zákazníkům a k vyhodnocení postupu projektu. Proces plánování projektu Kapitola 23 Plánování projektu Zobrazení harmonogramu - Ganttův diagram Kapitola 23 Plánování projektu Zastoupení v rozvrhu - tabulka rozdělení zaměstnanců Kapitola 23 Plánování projektu CORE013 / Barbora Bühnová22 Problémy s plánováním ̶ Odhadnout obtížnost problémů, a tedy i náklady na vývoj řešení, je obtížné. ̶ Produktivita není úměrná počtu lidí pracujících na úkolu. ̶ Přidávání lidí do opožděného projektu často způsobuje jeho zpoždění z důvodu režijních nákladů na komunikaci. ̶ Vždy se stane něco neočekávaného. Při plánování vždy počítejte s nepředvídatelnými událostmi. CORE013 / Barbora Bühnová23 Ceny softwaru ̶ Odhady se provádějí s cílem zjistit, kolik vývojářská společnost stojí výroba softwarového systému. ̶ Vezměte v úvahu náklady na hardware, software, cestovné, školení, úsilí a další náklady. ̶ Je třeba vzít v úvahu jak fixní, tak variabilní náklady. ̶ Mezi náklady na vývoj a cenou účtovanou zákazníkovi není jednoduchý vztah. ̶ Cenu ovlivňují širší organizační, ekonomické, politické a obchodní úvahy. Nejistota odhadu nákladů Kapitola 23 Plánování projektu CORE013 / Barbora Bühnová25 ŘÍZENÍ RIZIK CORE013 / Barbora Bühnová26 Řízení rizik ̶ Risk management se zabývá identifikací rizik a vypracováním plánů na minimalizaci jejich dopadu na projekt. ̶ Riziko je pravděpodobnost, že nastane nějaká nepříznivá okolnost. ̶ Rizika projektu ovlivňují harmonogram nebo zdroje; ̶ Produktová rizika ovlivňují kvalitu vyvíjeného softwaru; ̶ Obchodní rizika se týkají organizace, která software vyvíjí nebo pořizuje. CORE013 / Barbora Bühnová27 Příklady běžných projektových, produktových a obchodních rizik Riziko Ovlivňuje Popis Fluktuace zaměstnanců Projekt Zkušení pracovníci opustí projekt před jeho dokončením. Změna řízení Projekt Dojde ke změně organizačního řízení s jinými prioritami. Nedostupnost hardwaru Projekt Hardware nebude dodán podle plánu. Změna požadavků Projekt a produkt V požadavcích bude větší počet změn, než se předpokládalo. Zpoždění specifikace Projekt a produkt Specifikace základních rozhraní nejsou k dispozici podle plánu. Podcenění velikosti Projekt a produkt Velikost systému byla podceněna. Nedostatečná výkonnost nástroje CASE Produkt Nástroje CASE, které projekt podporují, nepracují podle očekávání. Změna technologie Obchodní Nahrazení základní technologie, na které je systém postaven. Soutěž o výrobek Obchodní Konkurenční výrobek je uveden na trh před dokončením systému. CORE013 / Barbora Bühnová28 ŘÍZENÍ LIDÍ CORE013 / Barbora Bühnová29 People management ̶ Lidé jsou nejdůležitějším aktivem organizace. ̶ Zejména v oblasti IT, kde vývojářská společnost nemusí investovat do drahého vstupního materiálu (jako ve výrobních podnicích). ̶ Většina vstupních investic směřuje do lidí, a to buď přímo (mzdy), nebo nepřímo (nástroje zvyšující produktivitu lidí, pracovní prostředí atd.). ̶ Úkoly manažera jsou v podstatě zaměřeny na lidi. Bez porozumění lidem bude řízení neúspěšné. ̶ Špatné řízení lidí významně přispívá k neúspěchu projektu. CORE013 / Barbora Bühnová30 Faktory řízení lidí ̶ Konzistence ̶ Se všemi členy týmu by se mělo zacházet srovnatelným způsobem bez zvýhodňování nebo diskriminace. ̶ Respekt ̶ Různí členové týmu mají různé dovednosti a tyto rozdíly je třeba respektovat. ̶ Inkluze ̶ Zapojte všechny členy týmu a dbejte na to, aby byly zohledněny jejich názory. ̶ Upřímnost ̶ Vždy byste měli být upřímní ohledně toho, co se vám v projektu daří a co ne. Motivace a Maslowova hierarchie potřeb 31 Kapitola 22 Řízení projektů 32 © Barbora Bühnová GOODLEADERSCARE 33 34 DELEGATION 35 DELEGATION 36 MOVINGMOTIVATORS • Curiosity: I have plenty of things to investigate and to think about • Honor: I feel proud that my personal values are reflected in how I work. • Acceptance: The people around me approve of what I do and who I am. • Mastery: My work challenges my competence but it is still within my abilities. • Power: There’s enough room for me to influence what happens around me. • Freedom: I am independent of others with my work and my responsibilities. • Relatedness: I have good social contacts with the people in my work. • Order: There are enough rules and policies for a stable environment. • Goal: My purpose in life is reflected in the work that I do. • Status: My position is good, and recognized by the people who work with me. See more at: https://management30.com/practice/moving-motivators/ MOVING MOTIVATORS (CHAMPFROGS) CORE013 / Barbora Bühnová38 Osobnostní rysy ̶ Každá osobnost je složena z různých rysů. ̶ Mezi pět velkých osobnostních rysů patří ̶ extraverze, ̶ svědomitost, ̶ příjemnost, ̶ otevřenost vůči zkušenostem, ̶ neuroticismus (označovaný také jako emoční stabilita). ̶ Tyto znaky se mohou vyvíjet s věkem, zkušenostmi nebo jinými životními podmínkami. CORE013 / Barbora Bühnová39 Osobnostní orientace ̶ Orientace na úkoly ̶ Motivací k práci je práce samotná. ̶ Orientace na sebe ̶ Práce je prostředkem k dosažení individuálních cílů - např. zbohatnout, hrát tenis, cestovat atd. ̶ Interakčně orientované ̶ Hlavní motivací je přítomnost a činnost spolupracovníků. Lidé chodí do práce, protože tam chodí rádi. ̶ Individuální motivace se skládá z prvků jednotlivých tříd, kde hraje zásadní roli týmová práce. FOUR DOMAINS OF CLIFTON STRENGTHS CORE013 / Barbora Bühnová41 FOUR DOMAINS OF CLIFTON STRENGTHS ̶ Talents = Naturally recurring patterns of thought, feeling, or behavior that can be productively applied. ̶ Strengths = Combination of talents, knowledge, and skills -- along with the time spent (i.e., investment) in practicing, developing your skills, and building your knowledge base. ̶ Domains of Clifton Strengths ̶ Executing ̶ Influencing ̶ Relationship building ̶ Strategic thinking ̶ We tend to mix strengths with weaknesses ̶ Especially if the talents of others do not resemble ours CORE013 / Barbora Bühnová43 Týmová práce ̶ Většina softwarového inženýrství je skupinová činnost ̶ Harmonogram vývoje většiny netriviálních softwarových projektů nemůže dokončit jeden člověk pracující sám. ̶ Dobrá skupina je soudržná a má týmového ducha. ̶ V soudržné skupině považují její členové skupinu za důležitější než jednotlivce v ní. ̶ Výhody soudržné skupiny jsou: ̶ Členové týmu se od sebe navzájem učí a poznávají svou práci; snižují se zábrany způsobené neznalostí. ̶ Znalosti jsou sdílené. Kontinuita může být zachována i v případě odchodu člena skupiny. ̶ Podporuje se refaktoring a neustálé zlepšování. Členové skupiny pracují kolektivně, aby dosáhli kvalitních výsledků a odstranili problémy. CORE013 / Barbora Bühnová44 Optimální velikost týmu ̶ 2-20 členů v závislosti na: ̶ účel vytvoření týmu, ̶ očekávání, která máte od týmu a jeho členů, ̶ role, které musí členové týmu zastávat, ̶ míru soudržnosti a propojení, které jsou nezbytné pro optimální výkon týmu, a ̶ funkce, činnosti a cíle týmu. ̶ Při vývoji softwaru je nejčastější optimální velikost 4-6 členů (pravidlo dvou pizz). CORE013 / Barbora Bühnová45 Tuckmanův model týmové dynamiky CORE013 / Barbora Bühnová46 Křivka produktivity velikosti týmu ̶ Větší tým neznamená produktivnější tým CORE013 / Barbora Bühnová47 Shrnutí ̶ Lidé jsou motivováni interakcí s ostatními lidmi, uznáním vedení a kolegů a příležitostmi k osobnímu rozvoji. ̶ Skupiny vyvíjející software by měly být poměrně malé a soudržné. ̶ Klíčovými faktory, které ovlivňují efektivitu skupiny, jsou lidé v této skupině, způsob její organizace a komunikace mezi členy skupiny. ̶ Komunikace ve skupině je ovlivněna faktory, jako je status členů skupiny, velikost skupiny, genderové složení skupiny, osobnost a dostupné komunikační kanály. CORE013 / Barbora Bühnová48 CO NÁS ČEKÁ PŘÍŠTĚ CORE013 / Barbora Bühnová49 3. Principy softwarového vývoje ̶ Metodiky vývoje softwarových systémů ̶ Agilní vývoj ̶ Role modelů v softwarovém vývoji Domácí práce a příprava na příští přednášku ̶ Pročtěte si 3 z článků přidaných ostatními a přidejte comment v DF ̶ Vyzkoušejte si Quiz: Which IT career pathway is right for you?