This document discusses the history of software development methodologies and questions whether agile is dead based on that history. It outlines the major methodologies from the 1960s through present day, including waterfall in the 1980s, crystal and scrum in the 1990s, RUP and XP in the late 1990s, and agile in 2001. It notes that methods are still at the maturity level of 1970s programming languages and assumes based on past experiences that the "waterfall accident" that a new, better methodology whose name we do not yet know is already emerging.
5. METHODOLOGY
”A SET OF METHODS, RULES, OR
IDEAS THAT ARE IMPORTANT IN
A SCIENCE OR ART : A
PARTICULAR PROCEDURE OR
SET OF PROCEDURES”*
* MERRIAM-WEBSTER DICTIONARY
19. Software development should be done
incrementally,in stages with continuous
user participation and replanning and
with design-to-cost programming
within each stage.
- Svi smo mi počeli programirati sami u svojoj sobi
- Programeri imaju izražen otpor prema overheadu, jer im je posao pronalaziti efikasna rješenja
- Programer ne vidi sebe u procedurama, dok ne doživi nekoliko burnout projekata zbog loše organizacije
- Metodologije su tradicionalno heavyweight
- Izazov je u kompleksnosti današnjih softverskih i sistemskih arhitektura
- Izozov je u tempu koji je danas brži nego ikad
- Tim uključuje naručitelje, programere, analitičare, testere
- Svi se slažemo da je proces danas izrazito multidisciplinaran
- Developeri jesu na vrhu hranidbenog lanca, ali više nisu u potpunosti samostalni
- The ringleman effect, the more people he added to the group, the more personal efficency was getting lower
- Risk of social missunderstandings and conflict becomes larger and not worth the effort of mediating
- Insuficient knowledge transfer
- Cultural differences
- Hidden agendas
- Slični smo vojsci i sportu, baš zbog potrebe za formiranjem timova – nema oruđa, ljudi su oruđe – isto kao u starinskoj vojsci i sportu
- Neke se stvari ne mogu izvesti bez jasnih pravila, ideja, formacije, principa. Sjećate se definicije metodologije iz Webstera?
- Nema sporta sa više od 11, u Agileu nema metodologije koja se bavi timovima većim od 11
- 1930 Walter Shewhart iz Bell Labs opisao je PDSA
- 1940-ih Eduard Demming je pretvorio u PDCA i popularizirao
- 1950-ih živio je u Japanu, bio aktivan u društvenom životu, odlikovan od premijera za zasluge u obnovi industrije. Obučavao managere.
- Ciklus se primjenjuje u razvoju proizvoda da bi se osiguralo učenje u procesu kroz iterativni pristup.
Svemirski programi iznjedrili su brojna unaprijeđenja u znanosti i industriji.
- 1950-ih NASA radi supersonični avion X-15 i provode inkrementalni razvoj «Važan doprinos dugoročnom uspjehu X-15 dao je naglasak na inkrementalni razvoj...»
1960-ih godina, NASA prvi put primjenjuje inkrementalni razvoj na software, u sklopu projekta Mercury. Timovi su prakticirali poludnevne iteracije, a čak i test-driven-development.
- Dio djelatnika Mercury tima kasnije radi u IBM-ovom Federal Systems Divisionu (FSD).
Ne samo da su se jezici razvijali u mogućnostima, nego i pristupi razvojnim jezicima prolaze kroz istraživački (znanstveni) proces.
- Waterfall model razvoja softvera prvi put je formalno opisan 1970. u poznatom članku Winstona Roycea, makar mu u tom članku nije spomenuto ime. Radi se o sekvencijalnoj metodi razvoja softvera, u kojoj sudionici prolaze kroz striktni redoslijed fazi samo jednom.
- Waterfall je gotovo vojnički strog i jako ovisan o sveobuhvatnoj dokumentaciji, koja nastaje u prvim fazama.
- «...gore opisana implementacija je riskantna i poziva na neuspjeh»
- Oni koji su pročitali čak do šeste stranice, mogli su pronaći poglavlje koje zagovara iterativni pristup i kaže «Napravi to dvaput».
- Ipak, ovaj članak je nespretno tumačen i označio je početak sekvencijalnog razvoja softvera i njegov ulazak u mainstream.
- Prvi pisani trag o imenu je iz 1976., u članku Bella i Thayera. No, Bell je odbio prihvatiti da su oni izmislili izraz, već tvrdi da je izraz postojao i ranije.
- Iz 1970-ih Važan projekt softverskog razvoja na ovakvoj metodologiji je prva US Trident podmornica. Projekt je imao više od 1 milijun linija koda, a izvršio se u četiri iteracije po šest mjeseci.
- Prva knjiga koja promovira IIR izašla je 1976. i riječ je o «Software metrics», autora Toma Gilba. Gilb piše:
- U sredini ovog desetljeća, IBM FSD radi LAMPS projekt za Ministarstvo obrane SAD u. Projekt od 200 čovjek/godina razvijao se u iteracijama od 4 tjedna. Ukupno je bilo 45 takvih iteracija
- Važna je i 1985. godina, u kojoj je Ministarstvo obrane SAD donijelo standard DOD-STD-2167. Kao i u izvornom članku iz 1970., i u ovom dokumentu je slika modela sekvencijalnog razvoja donesena upravo na drugoj stranici. Navedeni standard bio je pristran prema korištenju Waterfall metode u ugovorima sa vladinim naručiteljima u SAD, čime je učvrstio poziciju tog modela u IT industriji. Jasno i zašto, vlada SAD-a velik je naručitelj i ima velik utjecaj na IT zajednicu.
Kao i kod Dr. Roycea i kod DOD standarda imamo neslaganje autora s tumačenjem. Glavni autor DOD standarda je naknadnom izjavom požalio što je napisao takav sekvencijalni standard i tvrdio da nije bio upoznat s iterativnim razvojem. No, lavina je već krenula i dugo, dugo je nitko nije uspio zaustaviti.
Godine 1988. Gilb objavljuje «Principles of Software Engineering Management», prvu knjigu sa značajnim brojem poglavlja posvećenih IIR.
- NEKAKO SE ČINI da vožnja ne prestaje. Na ovogodišnjoj Forbesovoj listi najbogatijih ljudi na svijetu, u prvih pet, dvoje je iz svijeta IT-a. Postoji još nešto zajedničko toj dvojici
- No, kad se gleda ukupni promet (eng. revenue) najvećih svjetskih kompanija, softverskih nema niti u prvih 30. Microsoft je prvi među softverašima, ali tek na 34. mjestu ukupno. Oracle je drugi, ali u ukupnom poretku tek na 82. mjestu.
1992., Alistair Cockburn pokreće Crystal metodologiju i kreće raditi s njom na komercijalnim projektima
Personal safety
Focus
Easy access to expert users
Automated tests, configuration management, and frequent integration
The Unified Modeling Language (UML) is a general-purpose modeling language in the field of software engineering, which is designed to provide a standard way to visualize the design of a system.[1]
It was created and developed by Grady Booch, Ivar Jacobson and James Rumbaugh at Rational Software during 1994–95, with further development led by them through 1996.[1]
- Ime Scrum za specifičan proces razvoja produkata prvi su koristili Hirotaka Takeuchi i Ikujiro Nonaka 1986. godine. Objavili su članak u časopisu Harvard Business Review, u kojem uspoređuju moderan pristup razvoju produkata sa rugby formacijom Scrum.
-Takeuchi i Nonaka postigli su veliki svjetski uspjeh sa svojim daljnim radovima na područjima upravljanja. Kako su oboje živjeli u doba obnove japanske industrije nakon drugog svjetskog rata, njihov rad snažno je pod utjecajem Lean razmišljanja.
- Jeff Sutherland je 1993. Počeo koristiti Scrum proces u svom timu unutar tvrtke Easel Corporation.
- Ken Schwaber je 1995 objavio prvi rad na temu Scruma kakvog danas koristimo. Od te se točke bilježi službena povijesti Scruma kakvog danas koristimo i uzlet metodologije prema širokoj prihvaćenosti. Nešto kasnije, Scwhaber i Beedle objavljuju prvu knjigu o Scrumu
- Scrum naslijeđuje iz teorije kompleksnih adaptivnih sustava, a na njega su utjecale najbolje prakse japanske industrije, konkretno principi Lean razvoja implementirani u kompanija poput Toyote i Honde, kao i strategije upravljanja znanjem koje su razvili Takeuchi i Nonaka (sada zaposlenici Hitotsubashi poslovne škole u Japanu) te Peter Sange sa MIT-a. Unaprijeđen je pokretom uzoraka (eng. patterns) koji je evoluirao iz Pasteur projekta u ATT Bell Labs, kojeg je vodio Jim Coplien
1996., Rational izdaje Rational Unified Process, metodu koja se može smatrati ranom implementacijom Agile ideja. Mnogi spore da je RUP istinska Agilna metodologija, no Rationalu se ne mgu poreći pionirski poduhvati na području inkrementalnog razvoja.
Philippe Kruchten, an experienced Rational technical representative was tasked with heading up the original RUP team. This journey began with the creation of the Rational Objectory Process (ROP) in 1996, when Rational acquired the Objectory Process that had been written by Ivar Jacobson and company. This was renamed Rational Unified Process (RUP) in subsequent releases, in part to align the name with that of the Unified Modeling Language.
1999. Kent Beck izdaju knjigu «Extreme Programming Explained» o metodologiji koju primjenjuje od 1996. Ova metodologija orijentirana je prema razvojnim praksama i danas gotovo da nema projekta koji ne koristi barem neke njene elemente. Knjiga opisuje prakse kao što su Refactoring (Opdyke, 1993.), Pair Programming (Coplien&Constantine, 1995), Continuous Integration (Beck, 1999).
Metodologija se temelji na četiri krovne vrijednosti:
Komunikacija
Jednostavnost
Povratna informacija
Hrabrost
Martin Fowler, Chief Scientist u Thoughtworksu, jedan od najutjecajnijih ljudi u Java zajednici. Primarni interesi su mu dizajn velikih sustava i metodologija rada. Pionir je stand up sastanaka, refactoringa, CI, CD
Malo je toga izmislio, ali je snažno zagovarao i bio vizionar. Refactoring svi vežu uz njega, a izvorno ga je osmislio Bill Opdyke 1993.
Među ovih 17 ljudi nalazili su se utemeljitelji i predstavnici metodologija Extreme Programming, SCRUM, DSDM, Adaptive Software Development, Crystal, Feature-Driven Development, Pragmatic programming
Godinu ranije, Kent Beck je već okupio manju grupu istomišljenika u Oregonu. Na sastanku je prepoznata sličnost principa i praksi kroz razne metodologije i osmišljen je izraz «Light» (hrv. lagano) kao zajednički nazivnik. Izraz se nije zadržao, ali postavljeni su temelji za sastanak u Snowbirdu sljedeće godine.
Natrag u 2001. i druženje u Snowbirdu u državi Utah, koje je sazvao Robert C. Martin. Nakon tri dana radnog druženja, osmišljen je izraz «Agilni razvoj», a osnivači su se okupili «Agile alliance». Temeljni zaključci predstavljeni su u dvije kratke, ali sadržajne objave: «Agilni manifest» i «Načela agilnog razvoja».
Lean software development (LSD) is a translation of lean manufacturing and lean IT principles and practices to thesoftware development domain. Adapted from the Toyota Production System,[1] a pro-lean subculture is emerging from within the Agile community. Lean is most popular with startups that want to penetrate the market, or test their idea and see if it would make a viable business.[citation needed]
Kiichiro Toyoda u svojoj uvodio brojne inovacije. Kiichiro je želio uhvatiti korak s američkom automobilskom industrijom, ali nije se mogao natjecati s njihovim brojevima. Američko gospodarstvo je cvalo, a japansko je bilo narušeno – narudžbe automobila nisu bile česte. Shvatio je da ne može uštediti velikim narudžbam, ali da se može fokusirati na optimiziranje procesa i postati konkurentan. U Toyotu uvodi Just-in-Time (JIT) ideju: djelovi se neće skladištiti, već će se proizvoditi onda kada su potrebni za novu isporuku.
DJ Anderson, Lean Kanban University, primjena
Lean Startup
Software craftmenship manifesto
Clean code
Etc.
Ovo je prvi takeaway koji želim da ponesete s predavanja
Ovo je prvi takeaway koji želim da ponesete s predavanja
- Metodologije se ubrzano razvijaju od 1990-ih godina, a jeziki akceleriraju od 1960-ih.
- Kopiramo metode iz automobilske industrije, supermarketa i proizvodne industrije – stare 30 godina.
- Što će biti kad krenemo donositi svoje novitete
Chaos report kaže da su primarni uzroci neuspjeha softverskih projekata… ali to nam ne otkriva koje su metodologije bile iza projekata. Možda je uzrok bio nespreman klijent, loši programeri ili loš ugovor. Jedino što možemo je empirijski potvrditi što nama najbolje funkcionira i istraživati među dostupnim metodama. Scrum je trenutno metoda koja je iznimno jeftina za implementirati, a donosi puno vrijednije rezultate – reklo bi se best buy.
Postoje istraživanja Doctor Dobs Journala iz 2007 koja kažu da su Agile projekti 10% uspješniji od waterfall projekata.
U 2010, taj je postotak 13% u korist Agilea
Dakle, krećemo se u dobrom smjeru
Scrum je trenutno agile metoda broj1, prema zadnjem State of Agile ispitivanju, koristi gra preko 65% agilno orijentiranih kompanija.
Da, apsolutno. Scrum je nastao 1986, a dva Amera su ga donijela 10 godina kasnije u software. Eksplodirao je bez realne provjere radi li u svim uvjetima i koristi se rezonski i nerezonski. Scrum nije dobar za projekte održavanja, a koristi se i tamo. Scrum je odličan za večinu razvojnih projekata, ali je li za sve?
- Budite spremni zaboraviti na svoje Scrum certifikate, naučen tim.
- Budite sretni što je Scrum lightweight i jeftino znanje pa ga je jefino i baciti.
- Pametno birajte sljedeću metodologiju, koja odgovara istim uvjetima.
- Trajnost znanja u našoj industriji je brutalno kratka i zato kupujte jeftino, jer za koju godinu to više nećete trebati.
- Budite spremni zaboraviti na svoje Scrum certifikate, naučen tim.
- Budite sretni što je Scrum lightweight i jeftino znanje pa ga je jefino i baciti.
- Pametno birajte sljedeću metodologiju, koja odgovara istim uvjetima.
- Trajnost znanja u našoj industriji je brutalno kratka i zato kupujte jeftino, jer za koju godinu to više nećete trebati.