vývoje softwaru : důraz na průběžnou komunikaci mezi vývojovým týmem a zákazníkem důraz na tvorbu kvalitního kódu a funkcí, které mají přímou obchodní hodnotu pro zákazníka týmovou spolupráci a samoorganizaci týmů co nejčastější předávání hotové práce vítání změn jako příležitosti být lepší důraz na výslednou hodnotu pro zákazníka před dokumenty a papíry
: běžné aplikace zkušení vývojáři požadavky se velmi často mění malý počet vývojářů založeno na principech volné spolupráce Klasické metodiky: kritické aplikace nezkušení vývojáři požadavky se nemění (příliš často) velký počty vývojářů založeno na principech pevného řádu Příklady agilních metodik: Extrémní programování, SCRUM, Crystal Clear, Adaptivní vývoj, Feature Driven Development,...
Agile Cost Estimation Estimate size of features in story points These are relative sizes: one feature is twice as large as another one, etc. Use a few simple relative sizes, e.g., 1, 2, 4, and 8 Use a Delphi-like procedure to get consensus Translation of story points to real time: velocity: number of function points completed in one iteration Start: yesterday s weather: productivity is the same as that for the last project If the outcome is wrong: adjust the velocity, not the story points
Agile Planning Factors Estimate value of features (e.g. the MoSCoW way) Cost of implementing features (Cost of doing it now versus cost of doing it later) New knowledge acquired (First do features that bring a lot of new knowledge) Risk removed by implementing feature First high-value-low risk features, then low risk-low value features Avoid high value-high risk features
Extreme Programming Fine scale feedback Pair programming Planning game Test-driven development Whole team Continuous process Continuous integration Refactoring or design improvement Small releases Shared understanding Coding standards Collective code ownership Simple design System metaphor Programmer welfare Sustainable pace
SCRUM Klasické metodiky jsou příliš kostnaté? - použijme agilní Roles - ScrumMaster, Product Owner, Team Meetings - Daily Scrum, Sprint Planning Meeting, Sprint Review Meeting, Sprint Retrospective Artifacts - Product backlog, Sprint backlog, Burn down
Feature Driven Development vývoj řízený aktuálními požadavky na funkcionality vývoj probíhá v iteracích soupis všech požadavků na funkcionality analýza funkcionalit a odhad času vývoje a ceny přidělení priorit funkcionalitám zákazníkem vlastní implementace vybraných funkcionalit testování nasazení (deployment) změny by měl zákazník aktivně sledovat a komentovat zákazník může operativně zasahovat do vývoje
Test Driven Development nejde přímo o agilní metodiku vývoje vychází z principu psaní kódů v Extrémním programování napiš (rozšiř) automatický test nově požadované funkcionality naimplementuj aby všechny testy prošly refaktorizuj (odstraň duplicitu v kódu) opakuj proces