Upgrade to Pro — share decks privately, control downloads, hide ads and more …

Introduction to Agile methodology

Introduction to Agile methodology

Short intro to Agile, overview and history of software development methodologies

Nedeljko Damnjanovic

April 18, 2015
Tweet

More Decks by Nedeljko Damnjanovic

Other Decks in Programming

Transcript

  1. Proces razvoja softvera • Metodologija razvoja softvera • Podela procesa

    u faze čije aktivnosti za cilj imaju bolje planiranje i organizaciju • Traditional vs Agile pristup
  2. Tradicionalni pristup • Osnovni principi: • proces je podeljen u

    sukcesivne faze • naglasak je na planiranju, rokovima, budžetu i implementaciji čitavog sistema odjednom • kontrola se postiže obimnom dokumentacijom, formalnim review-evima, i odobravanju korisnika i menadžmenta na kraju svake faze • Waterfall
  3. Nedostaci Waterfall-a • Oslanjanje na inicijalne zahteve, moze biti problem

    ukoliko su pogresno postavljeni. Isto vazi i za ostale faze • Jednom zavrsena faza, ne moze biti izmenjena, nema nazad. Ima, ali uz izmenu svih faza do tada • Svaka promena zahteva u sred razvoja, utice na citav proces, menja opseg, budžet, postavljene rokove • Citav proizvod se testira na kraju. Isto vazi i za povratnu informaciju od strane klijenta • Klijent ne zna šta želi dok to ne vidi
  4. Kada koristiti Waterfall? • Kada postoji jasna i nedvosmislena slika

    sta treba uraditi i kako finalni proizvod treba da izgleda • Kada klijent nema mogucnost izmene zahteva, dok se projekat ne zavrsi
  5. Agilni pristup • Definišu ‘proces iteracija’, u kom se sve

    faze razvoja softvera dešavaju istovremeno, a za njihovo obavljanje, zaduženi su cross-functional timovi • Promovišu adaptivni razvoj i planiranje, rani demo i brz feedback, konstantno usavršavanje i adekvatnu i brzu reakciju na promenu
  6. Tradicionalni Waterfall pristup Agilni pristup poznavanje svih zahteva na startu,

    planiranje kompletnog resenja inkrementalno dodavanje vrednosti, kreiranje funkcionalnih modula klijenti specifiraju sve na startu klijent aktivno učestvuje i menja mišljenje limitirana komunikacija, akcenat na dokumentaciji intenzivna komunikacija, dokumentacija u drugom planu sprečavanje promena prihvatanje promena, eksperimentisanje, i reprioritizacija dostavljanje na kraju procesa, fail na kraju dostavljanje što brže i češće, fail raniji
  7. Filozofija agilnog razvoja softvera • Fokus je na kompleksnim dinamičkim

    sistemima • adaptivni vs prediktivni • iterativni vs waterfall • code vs documentation • product mindset vs project mindset
  8. Istorija agilnog razvoja • Začeci razvoja u IT industriji su

    60-ih godina, iako nisu bili jasno definisani • Snažniji i organizovaniji ‘pokret’ sredinom 90-tih kao odgovor na tradicionalne pristupe, i sve češće kritike • 1994 - unified process i DSDM • 1995 - scrum • 1996 - crystal clear i xp • 1997 - adaptive software dev i feature - driven dev
  9. Agile Manifesto • Februar 2001. - 17 softver inženjera •

    Objedinjuje sve prethodno pomenute metodologije pod Agile software development • Usvojena su 4 principa, kasnije prosirena na 12, koja dodatno objašnjavaju šta znači agilnost u razvoju softvera
  10. Agile Manifesto We are uncovering better ways of developing software

    by doing it and helping others do it. Through this work we have come to value: Individuals and interactions over Processes and tools Working software over Comprehensive documentation Customer collaboration over Contract negotiation Responding to change over Following a plan That is, while there is value in the items on the right, we value the items on the left more
  11. 12 principa • Our highest priority is to satisfy the

    customer through early and continuous delivery of valuable software. • Welcome changing requirements, even late in development. Agile processes harness change for the customer's competitive advantage. • Deliver working software frequently, from a couple of weeks to a couple of months, with a preference to the shorter timescale.
  12. 12 principles • Business people and developers must work together

    daily throughout the project. • Build projects around motivated individuals. Give them the environment and support they need, and trust them to get the job done. • The most efficient and effective method of conveying information to and within a development team is face-to-face conversation.
  13. 12 principles • Working software is the primary measure of

    progress. • Agile processes promote sustainable development. The sponsors, developers, and users should be able to maintain a constant pace indefinitely. • Continuous attention to technical excellence and good design enhances agility. • Simplicity--the art of maximizing the amount of work not done--is essential. • The best architectures, requirements, and designs emerge from self-organizing teams.
  14. 12 principles • At regular intervals, the team reflects on

    how to become more effective, then tunes and adjusts its behavior accordingly.
  15. Potpisnici Agile Manifesta Kent Beck James Grenning Robert C. Martin

    Mike Beedle Jim Highsmith Steve Mellor Arie van Bennekum Andrew Hunt Ken Schwaber Alistair Cockburn Ron Jeffries Jeff Sutherland Ward Cunningham Jon Kern Dave Thomas Martin Fowler Brian Marick
  16. Metode agilnog razvoja Adaptive software developme nt (ASD) Agile modeling

    Agile Unified Process (AUP) Crystal Clear Methods Disciplined agile delivery Dynamic systems developme nt method Extreme programmin g (XP) Feature- driven developme nt (FDD) Lean software developme nt Kanban (developme nt) Scrum Scrum ban