1 / 16

Řízení projektů

Agilní metodiky vývoje softwaru. Řízení projektů. Důvody k zavádění nových metodik. Rozšířování komunity programátorů Zmenšování vývojových týmů Změna situace trhu se softwarem mnohem větší důraz na rychlost nasazení rostoucí podíl webových aplikací méně projektů na zakázku

lowell
Download Presentation

Řízení projektů

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. Agilní metodiky vývoje softwaru Řízení projektů

  2. Důvody k zavádění nových metodik • Rozšířování komunity programátorů • Zmenšování vývojových týmů • Změna situace trhu se softwarem • mnohem větší důraz na rychlost nasazení • rostoucí podíl webových aplikací • méně projektů na zakázku • zákazník nemá přesnou představu o tom, co požaduje

  3. Kvalita a rychlost • Důraz na spojení se zákazníkem, člen týmu • Přímá a osobní komunikace v týmu • Omezení doby na analýzu a návrh • Důraz na implementaci (integrace a, n, i) • Pravidelné vyvíjení prototypů • Zpětná vazba • Odvaha zapracovávat změny • Snaha o jednoduchost • Velmi důsledné a průběžné testování

  4. Agilní metodiky - úvod • Počátek: rok 2001 v Utahu • Cíl: co nejrychlejší vývoj SW • Průkopníci: AlistarCockburn, KentBeck, WardCunningham... • prošli od malých po velké společnosti • zažili krach projektu • hledali příčiny neúspěchu • špičkoví vývojáři • Výsledek schůzky: • založení Aliance pro agilní vývoj softwaru • formulace Manifestu agilního vývoje softwaru • Agilní metodika = skupina metod, které prověřují správnost systému cestou: • nejrychlejšího vývoje • předložení zákazníkovi • zpětné vazby vedoucí k úpravě systému

  5. Tradiční vs. agilní metodiky Tradiční • Implementujeme pro dnešek, navrhujeme pro zítřek Agilní • Implementujeme pro dnešek, navrhujeme pro úspěšnou implementaci zdroje fixní funkcionalita čas proměnné čas zdroje funkcionalita

  6. Agilní metodiky- základní principy • Iterativní a inkrementální vývoj s velmi krátkými iteracemi • Přímá a osobní komunikace v týmu • Nepřetržité sepětí a komunikace se zákazníkem • Rigorózní, opakované a průběžné automatizované testování • Jediným spolehlivým nositelem informace je zdrojový kód

  7. Manifest agilního vývoje softwaru • Základní teze: • jedinou jistotou je změna, proto je nutné být na ni připraven • přijmutí změny je mnohem efektivnější než snaha jí zabránit • Preference: • individualitám a komunikaci (před procesy a nástroji) • provozuschopnému softwaru (před obsáhlou dokumentací) • spolupráci se zákazníkem (před uzavíráním smluv) • reakce na změnu (před striktnímu plnění plánu) • Occamova břitva - jednoduchost:Neměla by být předpokládána existence více věcí, než jsou absolutně nezbytné.

  8. Agilní metodiky- přehled • Extrémní programování (Kent Bect) • Adaptivní vývoj softwaru (Jim Highsmith) • Vlastnostmi řízený vývoj (Jeff De Luca, Peter Coad) • Lean Development (Bob Charette) • SCRUM Development Process (Ken Schwaber, Mike Beedle) • Crystal Methodologies (Alistar Cockburn) • Dynamic System Development Method (DSDM Consortium) • Testy řízený vývoj (Kent Bect)

  9. Extrémní programování (XP)- úvod • Vznik v roce 1999, autor KentBeck • Nejrozšířenější a nejznámější agilní metodiku • Vhodná pro malé až střední týmy • Jediným exaktním, změřitelným a nezpochybnitelným zdrojem informací je zdrojový kód

  10. Extrémní programování- charakteristika • Modifikuje tradiční a přidávánovou proměnnou: • funkcionalita → šíře zadání (nezbytné + zbytné) • zdroje → náklady • čas • kvalita • Zákazníkstanovuje hodnoty libovolných tří proměnných, vývojový tým zbývající čtvrtou • Stanovení všech hodnot by vedlo k nízkékvalitě • Členové týmu jsou méně specializovaní

  11. Extrémní programování- principy • Jednoduchost • Neustálá kontrola kódu • Návrh – denně • Architektura – stálé vylepšování • Testování – všichni a průběžně, testují i zákazníci, integrace denně • Krátké iterace – uvolňování SW po malých částech

  12. Extrémní programování- hodnoty • XP se řídí čtyřmi hodnotami komunikace jednoduchost zpětná vazba odvaha

  13. Extrémní programování- činnosti • Zásadní činnosti z pohledu vývoje testování psaní kódu návrh poslouchání

  14. Extrémní programování- posloupnost kroků a fází • Vývoj softwaru je vždy rozvíjející se dialog mezi možným a žádoucím • Plánovací hra: • účastní se ji obchodníci (+ zákazník) i technici • velmi hrubý a stručný plán, který se průběžně aktualizuje • výstupem je plán verze • Plán verze: • definuje šíři zadání, tým náklady a harmonogram • výstupem jsou karty zadání • Fáze plánovací hry: • průzkum:vedení → tzv. uživatelské příběhy, technici → odhad náročnosti na zdroje a dobu • závazek: vedení → šíře zadání a termín, technici → zaváží se ke splnění; výstupem jsou karty zadání • Řízení: úpravy podle skutečného postupu

  15. Extrémní programování- formality a přizpůsobení • Neortodoxní vztah k formalitám • nedefinuje žádné dokumenty a mezníky • základem je přímá komunikace nad zdrojovým kódem • Nosiče informací: • karty zadání (uživatelské příběhy) • úkolové karty (konkrétní popis úkolů) • nástěnka na pracovišti (základní architektura) • smlouvy • XP je lehkou metodikou • velmi široké možnosti úprav • přechod na XP postupně, řešením nejpalčivějšího problému (v iteracích)

  16. Extrémní programování- shrnutí • Výhody: • instinktivní práce (lidská přirozenost) • iterativní a inkrementální způsob vývoje • nelpění na formalitách, přímočarý postup k cíli • flexibilní • velice rozšířené • Nevýhody: • přechod z tradičních metodik • myslet jednoduše a přiznat chybu • přijmout odklon od individualismu • Vhodnost: • malé týmy • podpora rychlé iterace a komunikace • důvěra v lidi a změnu

More Related