Práca vývojárskeho tímu

Slides:



Advertisements
Similar presentations
N. Andrejčíková, J. M. Šafránek, J. Šubová Projekt webu českých pamiatok o krok ďalej.
Advertisements

GABRIEL GARCÍA MÁRQUEZ
Safari Tech Books Online Marika Janoušková. Obsah Prečo potrebujete Safari? Čo je Safari? Aké odbory pokrýva? Ukážka Integrácia Safari do lokálneho knižničného.
XML pre programátorov 7. víkend s Linuxom 5. – 6. október 2002 Žilina Stanislav Meduna ETM Aktiengesellschaft
Slovak University of Technology in Bratislava Faculty of Civil Engineering Prof. Ing.Jan Szolgay, PhD. Vice-dean for Science, Research and Foreign Relations.
Past tenses comparison. Identify the past tenses Grammar tenseWhen I arrived,.... A. Past Simple1. they were talking about me. B. Past Continuous2. they.
Riadiaci systém robota Úloha: urobiť robota, ktorý dokáže nájsť na zem umiestnenú kovovú guličku niekde na 4 poschodí bloku D.
HORIZON RNDr. Eva Majkova, DrSc. SAV Štefánikova 49 SK Bratislava Mobil Kontakt.
Nadácia sú ľudia Konferencia nadácií 2008 NADÁCIE – PROFESIONÁLNI HRÁČI NEZISKOVÉHO SEKTORA.
2007 Microsoft Office System Zmeny v licencovaní.
Present to Save the. FIIT STU Bratislava Mentor  Michal Barla Členovia tímu  Anton Benčič  Roman Mészároš  Roman Panenka  Márius Šajgalík.
This project has been funded with support from the European Commission. Communication in foreign language Komunikácia v cudzom jazyku Lekcia 2 Učenie sa.
1 CERN: čo dostala a čo ešte možno dostane fyzika a kozmológia.
Atomic Force Microscopy
Východiská a perspektívy umenia umelého života PS 2013, TEORIE INTERAKTIVNÍCH MÉDIÍ Mgr. Martina Ivičičová.
Zásady úspešnej prezentácie Obsah: 1. Prezentácia ako taká 2. Čo treba vedieť pred začiatkom 3. Príprava prezentácie 4. Zapojenie poslucháčov 5. Prezentovanie.
Samuel Valent.  *  Celé meno: Selena Marie Gomez  Povolanie: herečka, speváčka, textárka  Hrala vo filmoch: Spy Kids 3D: Game Over, and.
Bezpečnosť a ochrana zdravia pri práci sa týka každého z nás. Cenná pre Vás. Prínos pre firmu. Paneurópsky prieskum verejnej mienky o ochrane zdravia a.
Peking pre istotu cenzuruje aj televíznu zábavu Konzekutívne tlmočenie.
YOUR LOGO Class, members, delegate, generic. YOUR LOGO Access modifiers ModifierExplanation privateThe member is visible only in the class. publicThe.
Analyzing dichotomous dummy variables
Juraj Šitina Peter Dovhun
Bezpečnosť protokolu HTTP
Pracovné metódy a techniky – 2. časť
Zariadenia na ochranu pred predpätím a výpadkom napätia.
PROGRAMOVÉ VYBAVENIE Obsah: program programovacie jazyky
Xamarin Forms Je to vôbec použiteľné?
COLDPLAY.
O malej Aničke Anička sa hrá s loptami.
Sme produkty, musíme sa predať
„Okno do podnikania“ Podpora pre začínajúcich podnikateľov od spoločnosti Microsoft (Microsoft Sparks) Roman Russev Microsoft Slovakia.
Test pre zadaných a ženatých

Prednáška 8 podprogramy typy podprogramov lokálne a globálne objekty
Jakub Šimko Metódy inžinierskej práce Prednáška 4: Ako správne písať + Mystérium dokumentácie Jakub Šimko
Prehľadávanie (searching) UI. I Markošová Mária
Tepelné deje v plynoch Kód ITMS projektu:
Yulia Šurinová "There is always a better way; it should be found."
Makrá v PowerPointe Joshua Lajčiak.
Sieťový operačný systém
Mám v triede dyslektika
Procedurálne riadenie letovej prevádzky
REACH 2018 Zorganizujte spoluprácu so svojimi spoluregistrujúcimi –
Človek vo sfére peňazí ročník.
...nová správa Od: oktáva Predmet: KAJ_hw :D mail new.
KVANTITATÍVNE METÓDY V MARKETINGU
William Shakespeare Životopis
Bee Gees Anna Mária Gburíková 7.B.
Integritné obmedzenia v SQL
Navrhovanie experimentov – DOE (Design of Experiment) 2
Spresnenie požiadaviek pri hodnotení kvality veterinárnych liekov
Webové prehliadače.
Tretie oko Servia Monitoring infraštruktúry
MTM MTM (Methods Time Measurement) je metóda analýzy ľudskej práce, navrhovania pracovných postupov a určenia spotreby času na uskutočnenie potrebných.
Využitie IKT na hodinách anglického jazyka
Pojem agent.
Ing. Róbert Chovanculiak, Ph.D. INESS
Big Data & Analytics Prediktívna analýza pomáha poľskej sieti drogérií Rossmann pochopiť vzory nákupov a vyladiť propagačné akcie Urýchľuje generovanie.
Metódy kĺzavých priemerov (MA – moving averages) - Marcel Kocifaj
Heuristické optimalizačné procesy
Smelý Palko v Ohiu alebo pán Turing ide voliť
VYSOKOFREKVENČNÁ INDUKČNÁ PEC
Open Access v H2020 Barbora Kubíková Národný kontaktný bod
Patrik Ort Acount Executive , Stredná Európa
ROVINNÉ (2D) SYMBOLY DWG
Za kvalitnejšie dáta v zdravotníctve Dušan Zachar, INEKO
Andrej Lúčny Témy bakalárskych prác Andrej Lúčny
Je modrá veľryba najväčšia vec na svete?
Je modrá veľryba najväčšia vec na svete?
My test presentation This is for test only Funguju tu aj animacie Ano je to tak Druha animacia.
Presentation transcript:

Práca vývojárskeho tímu Martin Šutka [MCSD, MCPD] team leader of web development, software architect, Zymestic Solutions, s.r.o. martin.sutka@zymestic.sk

Obsah Role na projekte Organizácia vývoja Firemná agenda DEMO

Role na projekte Product-owner (u zákazníka) Project manager Kľúčová rola pre úspech projektu Určuje priority Prostredník do vnútra firmy Pri niektorých (štátnych) zákazkách chýba Project manager Prostredník medzi PO a Dev team-om Sleduje termíny, kapacity Implementácia nastupuje po získaní projektu. Úplne kľúčová rola pre úspech projektu je „Product Owner“. Človek na protistrane, ktorý má kompetencie aby rozhodoval aké sú priority, čo tam má nemá byť ako to má fungovať. Mal by byť prostredníkom do vnútra firmy. Nie vždy sa obraciame len na neho, ale je hlavný vstyčný bod, ktorý tiahne projekt dopredu. Pri niektorých zakázkach (väčšinou štátnych) takáto rola chýba, nahrádza sa rôznymi výbormi a komisiami – skupinka ľudí, z ktorých každý ma iný názor, končí sa vždy nejakým zápisom, ktorý vlastne hovorí akurátne, že sa na ničom nezhodli, projekt nepostupuje a na konci sa akurátne dohodnú na tom, že to chceli úplne inak. Project manager – prostredník medzi Product Owner-om a Dev tímom. Funguje ako proxy. Komunikuje medzi Dev tímom a product ownerom, sleduje termíny, kapacity.

Role na projekte Riešiteľ projektu (team leader) „Mozog“ projektu Tvorí architektúru projektu Určuje: Čo? Kto? Kedy? V akej kvalite? Tvorí odhady CodeReview Garancia kvality Team Leader – jeden z vývojárov, ktorý je v podstate mozgom projektu, rozdeľuje prácu, tvorí hlavnú štruktúru projektu, architektúru projektu, určuje čo ako bude fungovať. Tvorí odhady, CodeReview, kontrola a garancia kvality.

Role na projekte Dev team Vývojari Testeri Technical writer Team leader Dev Team – podľa príručky 3 developeri, 2 testeri, 1 technical writer a team leader.

Role na projekte Analytický team Komunikácia so zákazníkom Vytvára „obecný koncept“ Návrh riešenia nie však implementácie Tvorba užívateľských príručiek Konfigurácia prostredí Nasadzovanie aplikácií Školenia Analytický team – zodpovedný za analýzu, zúčastňuje sa na projekte ešte pred dev teamom. Komunikuje so zákazníkom a zisťuje jeho požiadavky a predstavy. Výsledkom práce je analýza a návrh riešenia – „obecný koncept“ – v prípade veľkých zákaziek (štátnych) výsledkom je kvantum dokumentácie. Návrh riešenie nie je návrh konkrétnej implementácie. Napr. návrh riešenia je že to bude webová aplikácia, ale to že či to bude WebForm, MVC, SPA, atď. je už v réžii architekta riešenia. Zúčastňujú sa na projekte aj počas jeho implementácie. Tvorba užívateľských príručiek, konfigurácia prostredí, nasadzovanie aplikácií, školenia. PM syslí informácie!

Organizácia vývoja Iterácie Backlog „Krátke“ časové horizonty Implementácia dohodnutých funkčností Výsledok diskusie medzi PM a TL Backlog Pool funkčností požadovaných zázkazníkom Obsahuje User Stories Zdroj pre iterácie Iterácie alebo bloky, sú krátke časové horizonty, zvyčajne jeden týždeň počas ktorého sa implementujú dohodnuté funkčnosti. To, že ktoré funkčnosti sa implementujú je výsledkom diskusie medzi Product Ownerom alebo PM a riešiteľom/Team Leadrom. Nie je dobré ak je iterácia dlhšia ako mesiac, pretože už to nespĺňa ten správny účel. Blacklog – Je v podstate pool, ktorý obsahuje zoznam User Stories, inak povedané zoznam funkčností, ktoré požaduje zákazník. U nás je User Story jeden Use Case – použitie aplikácie. Pred začatím každej iterácie sa podľa odhadu pracnosti pre jednotlivé User Stories a velocity teamu vyberie zoznam User Stories, ktoré sa majú v danej iterácii implementovať.

Organizácia vývoja User stories Requirements Use Case – použitie aplikácie Náročnosť určená v Story point-och (napr. MD) Príklad: meranie Requirements Konkrétna požiadavka na funkčnosť Podrobnejšia špecifikácia Príklad: meranie bodom, líniou, ... User Story – u nás use case, reprezentuje blok funkčnosti, ktorú požaduje zákazník. Náročnosť implementácie sa určuje v story pointoch, čo je virtuálna jednotka, u nás sa používajú MD, ktoré sú potrebné pre plánovanie PM. Príkladom môže byť napríklad „Meranie“. Requirement – konkrétna požiadavka na funkčnosť, s podrobnejšou špecifikáciou. Napríklad merať bodom, líniou, polygónom, zobrazenie výsledkov merania, ....

Organizácia vývoja Tasks Konkrétna implementačná úloha Priraďuje ich TL Odhad v hodinách ID úlohy sa páruje so zmenami v Source Control Code Review Príklad: tlačítko v toolbare, ... Task – konkrétna implementačná úloha, priraďuje sa developerovi, priraďuje ju team leader, zadáva sa odhad času v hodinách, každá úloha ma identifikačné číslo, pod týmto číslom sa aj comittujú zmeny do TFS, aby bolo vidieť aké zmeny boli v rámci danej úlohy vykonané. Napríklad implementovanie tlačítka do toolbaru, ktoré spustí meranie líniou atď. Team leader následne po implementácie vykoná code review, a pošle na prípadné dopracovanie developerovi. Následne sa task uzavrie, vyplní sa čas strávený implementáciou a nastaví sa, že remaining je nula. Ak sa zimplementujú všetky úlohy na danej user story, je táto pripravená na testovanie.

Organizácia vývoja Test Case Buildy po iteráciách Testovacie scenáre pre User Stories Testovanie prebieha po nasadení buildu Nájdené nedostatky sa zaznačia ako Bug-y Bug opravený v nasledovnej iterácii Buildy po iteráciách Done vs. Technický dlh Prototypovanie Čo najjednoduchší workflow Testovanie testerom prebieha na builde a po jeho následnom nasadení do testovacieho prostriedia. Prípadné nájdené nedostatky za zaznačia ako bugy, pričom sa určí v ktorej verzii aplikácie bol bug nájdený, pripoja sa screenshoty, postup imulácie bugu. Bug sa naviaže na User story ktorej sa týka. V tomto prípade bug nahrádza Requirement, a stáva sa súčasťou Backlogu. Každý bug by mal byť opravený v nasledovnej iteracií, nie vždy to tak je. Pre bug sa opäť vytvoria tasky, ktoré treba implementovať aby bol bug odstránený. Nie každý bug je bug. Nie každý task viac ako 8 hodín. Dôležité je po každej/pred každou iteráciou mať stretnutie so zákazníkom / Product ownerom, aby sme si vedeli ujasniť či projekt sa uberá správnym smerom, na aké možné problémy sme narazili atď. Krátke len neformálne zápisky, tie sa pošlú všetkým účastníkom, ale čisto len kvôli archivácii, nečaká sa, že účastníci budú teraz revidovať daný zápis. Spresňujú sa odhady. Odhad je na riešiteľovi pričom treba brať ohľad na člena tímu, ktorému tá úloha je priradená. Je vhodné na začiatku savyhnúť nejakej enormne veľkej špecifikácii, čo však pri štátnych zakázkach nie je veľmi možné. Nakoniec je výsledkom špecifikácie veľká kopa zmien, viď zmena legislatívy. Ak sa aj snažíte dodržať špecifikáciu, tak nakoniec sa môže stať že výsledkom je niečo čo nie úplne zákazník hcel, pretože tie jeho požiadavky sa časom menia. Pomocou iterácií je možné postupne ukrajovať a neustále sa adaptovať na potreby zákazníka. Buildy po iteráciach a priebežné nasadzovanie je dobré aj preto, že zákazník vidí čo sa robí, a nečaká povedzme rok na nejakú verziu, ktorú následne týždeň testuje, z čoho vypadnú púripomienky, ktoré sa zas možno po pol roku zapracujú, a vtedy si už zákazník ani nepamatá možno prečo napísal to čo napísal, alebo ešte lepšie medzi časom zistil že pripomienka s pred pol roka, ktorá sa už zapracovala nie je aktuálna lebo, ... A teda ajzbytočná práca sa urobila. Na konci iterácie by mal byť hotový blok, práce, na ktorom už nikto nemusí nič robiť, definícia toho čo je „Done“, problém je technický dlh, ktorý ak sa vyskytuje po konci iterácie, pvoezdme že niečo nie je úplne otestované, prípadne viete že tu som nedal komentáre atď, tak ani zázkaník to potom nepovažuje za ukončené, nevenuje tomu pozornosť, často sa na to zabudne s tým, že neskôr sa k tomu vrátime, to sa nabaľuje a anak onci projektu zistíme že vlastne htové je všetko ale nie ´plne a nič nefunguje tak ako to malo fungovať a len čiastočne, veľ achýb atd. Tehcnický dlh podvedome vytesňujete. I keby sa malo použiť vetvenie kódu, na konci každej iterácie proste nič rozpracované nemá byť. Vyyhnúť sa prekrývaniu. Ak to bude takto že po iterácií je uzavretá funkčnosť, a zákazník si to môže v nejakom staging prostredí otestovať prípadne používať, každé ďalšie požiadavky je možné riešiť ako change requesty, zákazník nikdy nevie čo chce. V priebehu iterácie sa už nebude nič meniť. Ak počas iterácie zistíme že niečo nie je to čo sme chceli, tak to z iterácie vyjemme a urobíme to bez toho. Zákazník sa snaží do iterácie pridávať funkčnosť – viď štýl bolo by super keby to vedelo ešte toto a toto, toto proste nie je možné takto robiť lebo sa to rozbije. Prototypovanie – niečo sa skúsi, niečo čo sa možno aj zahodí, zákazník na to musí pristúpuť a akceptovať, má to výhody, je možné zákazníkovy ukazáť nejakú úzku funkčnosť aby mal lepšieu predstavu, kde pri zložitej architekúre je pomerne ťažké v krátkej dobe niečo ukázať (viď snapovanie na živej aplikácií) Workflow – New -> Open -> Rejected / Resolved, vs. Predošlý worklfow, ktorý mal veľa stavov, nebolo to dobré. Čím jednoduchšie tým lepšie.

Firemná agenda Dev meeting Koordinačné porady 1 krát za 2 týždne Kto, čo robil, bude robiť zápis Koordinačné porady 1 krát za týždeň per project

Firemná agenda Stand-up denný Kick-off, Ad-hoc, Review Timesheet Čo budem robiť Čo som spravil Bez zápisu Kick-off, Ad-hoc, Review Timesheet Výkaz pre zákazníka (PM) Lepšie začať s tým čo idem robiť ako s tým čo som robil, ľudia sa rozrozprávali o tom čo všera urobili, a strácal sa dôraz na to, že čo ma čaká kam napredovať. Timesheet – v SharePoint-e, je možné exportovať do excelu, výhodné pre PM, je to ale otrava. Spomeň Brno kde sa timeshet bral ako výkaz práce a počítala sa zneho produktivita a odmeny.

DEMO Locator

Odkazy http://www.zymestic.sk/ http://blog.aspnet.sk/xxxmatko/

?

Ďakujem za pozornosť