Agile Methodology: Kahulugan, pakinabang, disadvantages at higit pa

Palaging gustong malaman kung ano ang maliksi na pamamaraan sa pagbuo ng software? Tingnang mabuti dito para makuha ang mga detalye.

Ang agile methodology ay isang software development philosophy na naglalayong maghatid ng mas magandang halaga sa mga customer sa pamamagitan ng paggamit ng mas maiikling development cycle habang kasama ang patuloy na pagbabago.

Ang pag-unlad ng software ay lumago mula sa larangan ng matematika at agham. Kaya, orihinal nitong isinama ang mga siyentipikong pamamaraan mula sa mga larangang iyon.

Ang mga pamamaraang ito ay umunlad sa diskarte sa talon noong 1970s upang matugunan ang mga kinakailangan ng araw. Ang mga computer at ang kanilang software noong mga panahong iyon ay malalaki, kumplikado, at idinisenyo upang tumagal ng ilang dekada. Kaya, ang paraan ng talon ay angkop.

Ngunit, sa huling bahagi ng 1990s, ang internet ay kapansin-pansing nagbabago sa mundo at isang bagong diskarte ang naging kinakailangan. Ganyan nabuhay ang maliksi na pamamaraan.

Ang sumusunod ay isang mas malapit na pagtingin sa kilusang ito sa pagbuo ng software at kung paano ito makakatulong sa iyo at sa iyong koponan.

Kasaysayan ng pamamaraan ng Agile development

Ang maliksi na software development ay lumago mula sa internet at ang walang sawang pangangailangan nito para sa mga application sa panahon ng mga boom na taon ng 1990s at unang bahagi ng 2000s.

Ito rin ang panahon kung kailan maraming developer na walang background sa computer science ang lumipat sa web development dahil sa malaking pangangailangan para sa mga website na tumutugon sa iba't ibang grupo at industriya.

Naturally, karamihan sa mga startup ay maliit. Kaya, ang karamihan sa mga pag-unlad ay nangyari sa mga maliliit na koponan, na ang pangunahing layunin ay madalas na isang mabilis na oras-sa-market. Dahil ang pagiging huli ay nangangahulugan ng pagkawala ng bahagi sa merkado.

Upang kontrahin ang mga paghihigpit na ibinibigay ng modelo ng waterfall sa pagkuha ng mga produkto sa merkado sa lalong madaling panahon, ang iba't ibang mga developer ay gumawa ng iba't ibang mga pamamaraan noong 1990s. Kabilang dito ang Rapid Application Development (RAD), Scrum, Extreme Programming (XP), Kanban, at iba pa.

Pagkatapos, noong 2001, 17 developer na nagsasanay ng isang paraan ng maagang agile development o iba pa, ay nagsama-sama sa Utah, USA. Pagkatapos ay tinapos nila ang kanilang pagpupulong sa pamamagitan ng paglalathala ng 'Manifesto para sa Agile Software Development.

Ang manifesto na ito ay batay sa 4 na halaga at 12 prinsipyo.

Ang 4 na halaga at 12 prinsipyo ng Agile development

Mula sa mga karanasang pinagsama-sama nila sa kanilang pagpupulong, napagkasunduan ng 17 developer ang isang hanay ng mga halaga upang lumikha ng software nang mas mahusay.

Ang apat na halagang ito ay ang mga sumusunod:

  1. Mga indibidwal at pakikipag-ugnayan sa mga proseso at mga kasangkapan. Nangangahulugan ito na ang pagbuo ng software na may mga tool habang sumusunod sa isang partikular na proseso ay mahalaga. Ngunit ang pagkakaroon ng mga karampatang tao na nagtutulungan nang mas epektibo ay mas mahalaga.

  2. Gumaganang software higit sa komprehensibong dokumentasyon. Inaatake ng isang ito ang waterfall na paraan ng unang pagdidisenyo ng software at pagsulat ng dokumentasyon para dito bago ang aktwal na proseso ng pagbuo ng software.

  3. Pakikipagtulungan ng customer higit sa negosasyon sa kontrata. Sa pamamagitan lamang ng pakikipagtulungan nang malapit sa customer o user na maaari mong matutunan at mabuo kung ano mismo ang kailangan ng customer. Lumilikha ito ng higit na halaga.

  4. Tumutugon sa pagbabago higit sa pagsunod sa isang plano. Ang pagsunod sa plano ng proyekto ay mahalaga. Ngunit ang plano ay hindi dapat masyadong mahigpit. Dapat itong tumanggap ng mga pagbabago upang matugunan ang mga inaasahan ng stakeholder.

Ang mga halaga ng Agile Manifesto sa itaas ay batay sa 12 Prinsipyo at ang mga ito ay ang mga sumusunod:

  1. Kasiyahan ng customer sa pamamagitan ng maaga at tuluy-tuloy na paghahatid ng mahalagang software.
  2. Maligayang pagdating sa pagbabago ng mga kinakailangan, kahit na sa huling pag-unlad.
  3. Maghatid ng gumaganang software nang madalas (mga linggo sa halip na buwan)
  4. Malapit, araw-araw na pakikipagtulungan sa pagitan ng mga taong negosyante at mga developer
  5. Ang mga proyekto ay binuo sa paligid ng mga motivated na indibidwal, na dapat pagkatiwalaan
  6. Ang harapang pag-uusap ay ang pinakamahusay na paraan ng komunikasyon (co-location)
  7. Ang gumaganang software ay ang pangunahing sukatan ng pag-unlad
  8. Sustainable development, kayang mapanatili ang patuloy na bilis
  9. Patuloy na atensyon sa teknikal na kahusayan at magandang disenyo
  10. Ang pagiging simple—ang sining ng pag-maximize sa dami ng gawaing hindi nagawa—ay mahalaga
  11. Ang pinakamahusay na mga arkitektura, kinakailangan, at disenyo ay lumalabas mula sa mga self-organizing team
  12. Regular, ang koponan ay nagmumuni-muni kung paano maging mas epektibo at nag-aayos nang naaayon

Mga Pag-ulit o Sprint

Ang mga pag-ulit o sprint sa maliksi na pag-develop ng software ay mga maikling panahon na karaniwang 1 hanggang 4 na linggo, kung saan nasira ang gawaing pagpapaunlad. Ginagawa nitong mas madaling pamahalaan ang mga bagay, dahil nangangailangan ito ng mas kaunting pagpaplano.

Karaniwan ding binubuo ang bawat koponan ng mga miyembro na may iba't ibang function, at maaaring kabilang dito ang pagpaplano, pagsusuri, disenyo, coding, at pagsubok.

Ang koponan ay nagtatrabaho sa software sa bawat pag-ulit o sprint nang magkasama. At gumagawa sila ng isang gumaganang produkto sa dulo. Ang gumaganang piraso ng software na ito ay isang sukatan ng tunay na pag-unlad, ayon sa Agile Manifesto.

Depende sa produkto at sa mga pangangailangan ng customer, ang produkto ng isang pag-ulit ay maaaring mailabas sa merkado o hindi. Kaya, madalas na nangangailangan ng maraming pag-ulit para sa isang paglabas.

Ang mga pakinabang ng Agile development

Tulad ng maiisip mo, ang maliksi na pamamaraan ay nagdudulot ng maraming pakinabang. Ang mga ito ay ang mga sumusunod:

  1. Mas mabilis na pagpapatupad ng mga ideya
  2. Higit na flexibility kaysa sa waterfall approach
  3. Pinahusay na pagiging produktibo sa mga pinamamahalaang pag-ulit
  4. Mas magagandang produkto sa pamamagitan ng mga pakikipag-ugnayan ng user
  5. Mabilis na natukoy at naaalis ang mga error

Mga disadvantages ng Agile methodology

Mayroon ding ilang mga disadvantages ng pagtatrabaho sa isang maliksi na paraan ng pag-unlad. At maaari nilang isama ang:

  1. Maaaring mahirap i-assess ang kumpletong gastos sa simula
  2. Kailangan nito ng maraming input ng customer
  3. Nagsasangkot ng maraming hindi planadong gawain
  4. Walang malinaw na tinukoy na pagtatapos ng proyekto

Kailan gagamitin ang Agile Methods

  1. Kapag hindi mo matantya kung ano ang kailangan ng software
  2. Mayroon kang sapat na access sa mga customer
  3. Gumagawa ka ng isang web app o isang madaling i-update na system
  4. Kailangan mong mabilis na makuha ang market share sa isang maagang paglabas

Mga sikat na Agile development frameworks

Maraming sikat na agile development frameworks. Ang ilan ay nagsimula bago ang Agile Manifesto ng 2001, habang ang iba ay dumating nang maglaon.

Ang layunin ng isang balangkas ay simpleng tukuyin ang mga tuntunin ng isang pamamaraan. Kaya, habang ang pinakasikat na mga balangkas ay nakalista sa ibaba para sa iyong sanggunian, marami pa. At malaya ka ring gumawa ng sa iyo o magbago ng isang umiiral na balangkas upang umangkop sa iyong koponan.

  1. Scrum: Ang balangkas na ito ay idinisenyo para sa mga pangkat na may 10 o mas kaunting miyembro. Hinahati-hati ang trabaho sa mga sprint na 2-4 na linggo na may pang-araw-araw na 15 minutong pagpupulong.

  2. Kanban: Nagmula sa Toyota, ang Kanban ay isang Japanese na salita na nangangahulugang billboard at napakalaking tulong para sa mga team na nagpapahalaga sa visual aid. Ang mga gawain ay inililipat mula sa isang yugto patungo sa isa pa gamit ang mga visual na representasyon tulad ng mga malagkit na tala o app.

  3. Mabilis na Pag-unlad ng Application RAD: Ang pariralang ito ay maaaring parehong tumukoy sa maliksi na pagbuo ng software sa pangkalahatan o sa pamamaraang James Martin. Nakatuon ang RAD sa mga kinakailangan sa user interface at lubos na umaasa sa prototyping.

  4. Pagsisimula ng Lean: Ang balangkas na ito ay para sa mga kailangang bumuo ng isang produkto o serbisyo, ngunit kailangan munang matukoy ang kakayahang mabuhay nito sa merkado. Kabilang dito ang paggamit ng eksperimento upang makita kung ano ang gumagana at kung ano ang hindi.

Kasama sa iba pang mga kilalang framework ang Extreme Programming (XP), Adaptive Software Development, Agile Modeling, Dynamic Systems Development Method, at ang Scaled Agile Framework.

Ang Agile vs Waterfall Methodologies

Narito ang isang side-by-side na pagtingin sa maliksi at waterfall na pamamaraan para sa pagbuo ng software. Makakatulong ito na malaman kung paano nagkakaisa ang bawat pamamaraan sa isa't isa. Kaya, madali mong mapipili ang pinakamahusay na mga tool para sa iyong trabaho.

MaliksiTalon
Incremental at umuulit na diskarteLinear at sunud-sunod na modelo ng siklo ng buhay
Flexible sa pagbabagoMahigpit na pagpapatupad
Patuloy ang mga pagsubok at pagsusuriMayroon lamang isang yugto ng pagsubok pagkatapos makumpleto
Maaaring magbago ang mga kinakailanganAng mga kinakailangan ay naayos pagkatapos ng pagpaplano
Isang koleksyon ng maraming maliliit na proyektoIsang solong proyekto
Higit pang paglahok ng customerMas kaunting paglahok ng customer

Adaptive vs Predictive Development

Ang layunin ng agile software development ay ang umangkop sa mga pagbabago sa totoong mundo. At ang mga ito ay kadalasang resulta ng mga pangangailangan ng isang customer o user. Ang pagbagay ay lubos na kabaligtaran sa predictive na katangian ng modelo ng talon.

Makatuwiran kung gayon na gumamit ng mga maliksi na pamamaraan kapag bumubuo ng mga sistema na hindi ka sigurado kung ano ang mangyayari. O kapag may patuloy na pagbabago at ebolusyon sa isang industriya. Ang internet ay isang malaking halimbawa.

Kung hindi, kung ikaw ay bumubuo para sa isang sistema o merkado na alam mo ang lahat, at halos hindi nagbabago o hindi nababago. Pagkatapos, ang predictive na katangian ng waterfall philosophy ay maaaring makatulong.

Software Craftsmanship

Ang Software Craftsmanship ay isa pang pilosopiya na bumubuo sa maliksi na mga prinsipyo ng pag-unlad at nakatutok ito sa pagbibigay-diin sa mga kasanayan ng mga developer ng software na kasangkot sa isang proyekto.

Ang kilusan ng Software Craftsmanship ay mayroon ding manifesto at nakasaad dito:

Bilang naghahangad na Software Craftsmen, itinataas namin ang antas ng propesyonal na software development sa pamamagitan ng pagsasanay nito at pagtulong sa iba na matutunan ang craft. Sa pamamagitan ng gawaing ito, nabigyang halaga namin ang: · Hindi lamang gumagana ang software, kundi pati na rin ang mahusay na pagkakagawa ng software · Hindi lamang tumutugon sa pagbabago, kundi pati na rin ang patuloy na pagdaragdag ng halaga · Hindi lamang mga indibidwal at mga pakikipag-ugnayan, kundi pati na rin isang komunidad ng mga propesyonal · Hindi lamang customer pakikipagtulungan, ngunit din produktibong pakikipagtulungan Ibig sabihin, sa pagtugis ng mga item sa kaliwa ay natagpuan namin na ang mga item sa kanan ay kailangang-kailangan.  © 2009, ang nilagdaan sa ibaba. Maaaring malayang kopyahin ang pahayag na ito sa anumang anyo, ngunit sa kabuuan lamang nito sa pamamagitan ng abisong ito

Konklusyon

Pagdating sa dulo ng aming pagtingin sa maliksi na pamamaraan at pag-develop ng software, makikita mong napakaraming mga opsyon doon.

Ang bawat koponan ay naiiba. At tulad ng iba't ibang mga koponan na binuo ng kanilang iba't ibang mga pamamaraan upang umangkop sa pagbabago ng panahon. Kakailanganin mo rin na umangkop sa pamamagitan ng alinman sa pagpunta sa isang naitatag na balangkas o sa pamamagitan ng pag-angkop nito upang umangkop sa iyong koponan.

Nnamdi Okeke

Nnamdi Okeke

Si Nnamdi Okeke ay isang mahilig sa computer na mahilig magbasa ng malawak na hanay ng mga libro. Mas gusto niya ang Linux kaysa sa Windows/Mac at gumagamit na siya
Ubuntu mula noong mga unang araw nito. Mahuhuli mo siya sa twitter via bongotrax

Mga Artikulo: 298

Tumanggap ng mga kagamitan sa teknolohiya

Mga tech na trend, mga uso sa pagsisimula, mga review, online na kita, mga tool sa web at marketing nang isang beses o dalawang beses bawat buwan