Mbinu Agile dhidi ya Jadi ya Ukuzaji wa Programu
Kuna idadi ya mbinu mbalimbali za ukuzaji programu zinazotumika katika tasnia ya programu leo. Njia ya maendeleo ya maporomoko ya maji ni mojawapo ya mbinu za awali za maendeleo ya programu. V-Model, RUP na mbinu zingine chache za mstari, za kurudiarudia na zilizounganishwa, ambazo zilikuja baada ya mbinu ya maporomoko ya maji, iliyokusudiwa kufuta masuala mengi ya mbinu ya maporomoko ya maji. Mbinu hizi zote za awali zinaitwa Mbinu za Jadi za Ukuzaji wa Programu. Muundo wa Agile ni muundo wa hivi majuzi zaidi wa ukuzaji wa programu ulioletwa kushughulikia mapungufu yanayopatikana katika miundo ya kitamaduni. Lengo kuu la Agile ni kujumuisha majaribio mapema iwezekanavyo na kutoa toleo la kufanya kazi la bidhaa mapema sana, kwa kugawa mfumo katika sehemu ndogo sana na zinazoweza kudhibitiwa.
Mbinu ya Jadi ya Ukuzaji wa Programu ni nini?
Mbinu za programu kama vile njia ya Maporomoko ya maji, V-Model na RUP zinaitwa mbinu za kitamaduni za kutengeneza programu. Mbinu ya maporomoko ya maji ni mojawapo ya mifano ya awali ya ukuzaji wa programu. Kama jina linavyopendekeza, ni mchakato unaofuatana ambao maendeleo hutiririka kupitia awamu kadhaa (uchambuzi wa mahitaji, muundo, ukuzaji, majaribio na utekelezaji) kutoka juu hadi chini, sawa na maporomoko ya maji. V-Model inachukuliwa kuwa kiendelezi cha modeli ya ukuzaji wa programu ya Maporomoko ya maji. V-Model hutumia uhusiano sawa kati ya awamu zilizofafanuliwa katika mfano wa Maporomoko ya Maji. Lakini badala ya kushuka kwa mstari (kama mfano wa Maporomoko ya maji) V-Model inashuka chini kwa kimshazari kisha inasogea nyuma (baada ya awamu ya kusimba), na kutengeneza umbo la herufi V. RUP (Rational Unified Process) ni mfumo wa mchakato unaoweza kubadilika (sio mchakato mmoja madhubuti), ambao unaweza kubinafsishwa na shirika la maendeleo kulingana na mahitaji yao. Inafanana kidogo na maporomoko ya maji, ina awamu zisizobadilika kama kuanzishwa, ufafanuzi, ujenzi na mpito. Lakini tofauti na maporomoko ya maji, RUP ni mchakato unaorudiwa.
Agile ni nini?
Agile ni mbinu ya hivi majuzi ya uundaji wa programu (au kwa usahihi zaidi, kundi la mbinu) kulingana na manifesto mahiri. Hii ilitengenezwa ili kutatua upungufu fulani katika mbinu za jadi za ukuzaji programu. Mbinu za Agile zinatokana na kutoa kipaumbele cha juu kwa ushiriki wa wateja mapema katika mzunguko wa maendeleo. Inapendekeza kujumuisha majaribio na mteja mapema na mara nyingi iwezekanavyo. Jaribio hufanywa katika kila hatua wakati toleo thabiti linapatikana. Msingi wa Agile unategemea kuanza majaribio tangu mwanzo wa mradi na kuendelea hadi mwisho wa mradi. Utayarishaji wa Scrum na Extreme ni aina mbili maarufu za mbinu za Agile.
Thamani kuu ya Agile ni "ubora ni jukumu la timu", ambayo inasisitiza kuwa ubora wa programu ni jukumu la timu nzima (sio timu ya majaribio pekee). Kipengele kingine muhimu cha Agile ni kuvunja programu katika sehemu ndogo zinazoweza kudhibitiwa na kuziwasilisha kwa mteja haraka sana. Kutoa bidhaa inayofanya kazi ni muhimu sana. Kisha timu inaendelea kuboresha programu na kutoa mfululizo kwa kila hatua kuu. Hii inafanikiwa kwa kuwa na mizunguko mifupi ya kutolewa (inayoitwa sprints katika Scrum) na kupata maoni ya uboreshaji mwishoni mwa kila mzunguko. Wachangiaji wasio na mwingiliano mwingi wa timu kama vile wasanidi programu na wanaojaribu katika mbinu za awali, sasa wanafanya kazi pamoja ndani ya muundo wa Agile.
Kuna tofauti gani kati ya Mbinu Agile na ya Jadi ya Ukuzaji wa Programu?
Ingawa mbinu ya Agile inategemea ukuzaji wa kurudia kwani baadhi ya mbinu za kitamaduni, mbinu za Agile na za Kidesturi zina tofauti kuu. Mbinu za kitamaduni hutumia kupanga kama utaratibu wao wa kudhibiti, huku miundo ya Agile hutumia maoni kutoka kwa watumiaji kama njia kuu ya udhibiti. Agile inaweza kuitwa mbinu ya watu zaidi kuliko mbinu za jadi. Agile model hutoa toleo la kufanya kazi la bidhaa mapema sana ikilinganishwa na mbinu za kitamaduni ili mteja aweze kutambua baadhi ya manufaa mapema. Muda wa mzunguko wa majaribio wa Agile ni mfupi ikilinganishwa na mbinu za kitamaduni, kwa sababu majaribio hufanywa sambamba na ukuzaji. Aina nyingi za kitamaduni ni ngumu sana na hazinyumbuliki kidogo kuliko mfano wa Agile. Kwa sababu ya faida hizi zote, Agile inapendelewa zaidi ya mbinu za jadi kwa sasa.