CORE013 / Barbora Bühnová1 Přednáška 2 IT pozice v životním cyklu software CORE013 Vývoj softwarových systémů: od myšlenky k funkčnímu řešení CORE013 / Barbora Bühnová2 LIDSKÝ FAKTOR VE VÝVOJI SOFTWARE CORE013 / Barbora Bühnová3 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á4 ROLE V SOFTWAROVÉ FIRMĚ CORE013 / Barbora Bühnová5 Role v softwarové firmě https://viniciustavanoferreira.wordpress.com/2019/04/17/software- engineering-baseline-software-architecture-software-to-discover- plants-diseases/ 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 IT pozice ve vývoji software ̶ Vedení vývoje – projektoví a produktoví manageři, tech lead vs. people manager ̶ Specifikace požadavků – konzultanti, doménoví experti ̶ Analýza a návrh – bussiness analytik, system analytik, designer, technical architect ̶ Implementace – frontend/backend vývojář, vývojář mobilních aplikací, databázový odborník, UI/UX designer ̶ Validace a verifikace – testeři (performance, security, atd.), quality engineer ̶ Nasazení a provoz – DevOps inženýr, síťový expert, infrastruktura, administrátor ̶ Údržba a rozvoj – helpdesk, technická podpora CORE013 / Barbora Bühnová9 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á10 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á11 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á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 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 PLÁNOVÁNÍ PROJEKTU CORE013 / Barbora Bühnová17 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. 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á20 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. Nejistota odhadu nákladů Kapitola 23 Plánování projektu CORE013 / Barbora Bühnová22 ŘÍZENÍ RIZIK CORE013 / Barbora Bühnová23 Ří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á24 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á25 ŘÍZENÍ LIDÍ CORE013 / Barbora Bühnová26 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á27 Personal Leadership Style ̶ Management – manage resources, organize, plan, deliver ̶ Leadership – sets vision, is an inspiration, followers and their growth ̶ What followers need from their leader? CORE013 / Barbora Bühnová28 Personal Leadership Style ̶ Management – manage resources, organize, plan, deliver ̶ Leadership – sets vision, is an inspiration, followers and their growth ̶ What followers need from their leader? 1. Trust 2. Compassion 3. Stability 4. Hope ̶ What are your Strengths & Weaknesses with respect to these? Motivace a Maslowova hierarchie potřeb 29 Kapitola 22 Řízení projektů 30 © Barbora Bühnová GOODLEADERSCARE 31 32 DELEGATION 33 DELEGATION 34 MOVINGMOTIVATORS CORE013 / Barbora Bühnová35 Moving Motivators (Champfrogs) ̶ 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/ FOUR DOMAINS OF CLIFTON STRENGTHS CORE013 / Barbora Bühnová37 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á39 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á40 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á41 Tuckmanův model týmové dynamiky CORE013 / Barbora Bühnová42 Křivka produktivity velikosti týmu ̶ Větší tým neznamená produktivnější tým CORE013 / Barbora Bühnová43 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á44 CO NÁS ČEKÁ PŘÍŠTĚ CORE013 / Barbora Bühnová45 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?