Agilni razvoj softvera 101

Autor: Judy Howell
Datum Stvaranja: 26 Srpanj 2021
Datum Ažuriranja: 23 Lipanj 2024
Anonim
Agilne metode projektovanja IS
Video: Agilne metode projektovanja IS

Sadržaj


Oduzeti:

Ova metoda razvoja softvera potiče suradnju i fleksibilnost kako bi se postigao visokokvalitetni proizvod.

Puno je zujanja oko Agile-a u svijetu softverskog inženjerstva i razvoja aplikacija. Agile nije koncept, već način razmišljanja. Kao što ime sugerira, ona se koncentrira na fleksibilnost i dinamičnost. Ova metodologija također uklanja izolaciju između faza razvoja softvera i potiče razvojni tim na suradnju s analitičarima kvalitete. Također naglašava uključenost kupaca u razvoj, izgradnju i isporuku visokokvalitetnog proizvoda. Ovdje dobro pogledajte Agile, kako to funkcionira i neke najbolje prakse za ovaj popularni način razvoja softvera.

Kratki opis životnog ciklusa razvoja softvera

Životni ciklus razvoja softvera (SDLC) proces je stvaranja softverskih rješenja ili izmjene postojećih struktura namijenjenih rješavanju određenog problema. Obuhvaća različite korake koji slijede logičnim redoslijedom. U tradicionalnim SDLC modelima to su koraci koji se slijede jedan za drugim i koji se provode izolirano:


  1. Zahtjevi za prikupljanje od klijenata
  2. Analiza sustava i izvedivosti
  3. Dizajn i modeliranje
  4. Kodiranje ili implementacija
  5. Testiranje
  6. Uvođenje i isporuka
  7. Zahtjevi za održavanje i promjenu

U tipičnom ciklusu razvoja softvera, stvarni korisnici ili klijenti uključeni su u proces prikupljanja zahtjeva, a zatim tijekom beta testiranja. Međutim, problem ovog tradicionalnog modela je što dio ciklusa za održavanje postaje težak i prilično skup posao. Mnogo puta nema poboljšanja ili promjena unutar sustava. U najgorem slučaju, softver koji je projektiran ili razvijen nije u skladu s stvarnim specifikacijama i očekivanjima kupca, što znači da će razvojnom timu možda trebati ponovo pokrenuti cijeli postupak.

Zašto su agilni razvoj različiti

Najčešći tradicionalni modeli SDLC - vodopadni model, brzi model primjene, iterativni model, spiralni model itd. - imaju svoj niz prednosti i nedostataka. Prolazila su vremena prije nego što su ljudi zapravo mogli analizirati koliko su ovi modeli realni. Oni se savršeno uklapaju u idealne scenarije, ali nisu uvijek bili praktični kada je riječ o stvarnim aplikacijama. Kao rezultat toga, timovi za razvoj softvera suočili su se s brojnim izazovima. Neka ograničenja uobičajenih SDLC modela uključuju:


  • Ne dopuštaju da se zahtjevi mijenjaju u kasnijim fazama, jer su oni zamrznuti u dokumentu specifikacije softverskog zahtjeva. U određenim slučajevima, očekivanja korisnika ostaju nepromijenjena ili pogrešno shvaćena.
  • Krajnji korisnici ne vide sustav dok ga ne dovrši. To pruža vrlo malo prostora za davanje prijedloga i promjena.
  • Tradicionalni SDLC može stvoriti ogroman jaz u komunikaciji između programera i testera, jer su to zasebne faze i nema suradnje dviju strana.
  • Ispitivanje bijele kutije ne može se učinkovito izvršiti.

Upotreba Agile-a rješava mnoge od ovih problema jer, umjesto da korak po korak, djeluje više kao filozofija i okvir koji ima za cilj pomoći timovima da sarađuju, reagirati na promjene i izgraditi gotov proizvod koji uključuje više uloga od svih stranaka, uključujući korisnike.

Agile prakse

Pojava Agile metodologije nije ništa drugo nego revolucionarna reforma u metodologiji razvoja softvera, jer pruža dovoljno prostora kreativnim i svestranim projektnim timovima dok i dalje preuzimaju kolektivno vlasništvo nad svakom fazom proizvoda. Slijedeći Agile put, pojedinačni sudionici u timu za razvoj softvera mogu uvjeriti svoj um da prihvate neizvjesnost, suoče se s promjenama i izgrade bolji proizvod kao proces, a ne u diskretnim, neprivezanim koracima.

Iako ne postoji sveobuhvatan popis Agile principa, postoje određene prakse koje Agile propagira. To uključuje:

  1. Test Driven Development (TDD)
    U idealnom slučaju, programeri bi trebali prvo napisati testne slučajeve za dio funkcionalnosti koji žele kodirati. Na taj će se način osigurati kvalitetna šifra, koja je manje vjerojatna da će se pokvariti u izvanrednim uvjetima. Ovaj postupak također pomaže da se osigura da su adresirane korisničke specifikacije.
  2. Parno programiranje
    U Agile razvoju, programeri obično rade na istom problemu u parovima, gdje jedna osoba piše kôd (upravljački program), a druga pregledava kôd i daje ideje i prijedloge (navigator). To povećava produktivnost i smanjuje vrijeme potrebno za pregled koda.
  3. Refactoring kodova
    Refaktoring koda uključuje razgrađivanje koda na manje i jednostavnije module koji mogu (i trebaju) postojati neovisno u idealnom scenariju. To uvelike poboljšava čitljivost, provjerljivost i održivost koda.
  4. Aktivno sudjelovanje stvarnih dionika
    Nakon redovitih intervala određenog vremenskog razdoblja (koji se nazivaju "ss"), klijenti bi trebali primiti značajan radni prototip softvera. To omogućava programerima da dobiju povratne informacije o tome što grade.
  5. Tretirajte zahtjeve kao prioritetni paket
    U Agile je nužno kategorizirati zahtjeve na temelju njihove važnosti. To može uključivati ​​kako implicitne, tako i eksplicitne očekivanja korisnika u vezi s softverskim proizvodom koji se razvija. Tim za razvoj softvera trebao bi zajednički procijeniti vrijeme i resurse koje će uložiti u implementaciju značajke te to preslikati na temelju potreba korisnika i relativnog poretka kojim će se baviti svakim dijelom projekta.
  6. Regresijsko ispitivanje
    Regresijsko testiranje uključuje testiranje funkcionalnosti čitave aplikacije nakon dodavanja nove značajke ili izmjene postojeće funkcionalnosti u kodu. Na taj se način osigurava da promjene nisu prekršile postojeći kod.

Zašto Agile?

Agile propisuje određene prakse, ali ne primjenjuje ih u timu za razvoj softvera. Uostalom, ako nema prostora za prilagodbe i odstupanja, svrha Agile je u velikoj mjeri poražena. Uključivanje čak nekoliko aspekata Agile razvoja u projekt može pomoći timovima za razvoj softvera da se nose s neočekivanim izazovima i, u konačnici, izgraditi bolji proizvod na učinkovitiji način.

Bez grešaka, bez stresa - Vaš korak po korak vodič za stvaranje softvera koji mijenja život bez uništavanja života

Ne možete poboljšati svoje programiranje kad nikoga nije briga za kvalitetu softvera.