Agile vs Traditional Software Development Methodology
May ilang iba't ibang mga pamamaraan ng pagbuo ng software na ginagamit sa industriya ng software ngayon. Ang pamamaraan ng pag-unlad ng talon ay isa sa mga pinakaunang pamamaraan ng pagbuo ng software. V-Model, RUP at ilang iba pang mga linear, iterative at pinagsamang linear-iterative na pamamaraan, na dumating pagkatapos ng waterfall methodology, na nilayon na lipulin ang maraming isyu ng waterfall method. Ang lahat ng mga naunang pamamaraan na ito ay tinatawag na Traditional Software Development Methodologies. Ang maliksi na modelo ay isang mas kamakailang modelo ng pagbuo ng software na ipinakilala upang matugunan ang mga pagkukulang na makikita sa mga tradisyonal na modelo. Ang pangunahing pokus ng Agile ay ang pagsasama ng pagsubok sa lalong madaling panahon at paglalabas ng gumaganang bersyon ng produkto nang napakaaga, sa pamamagitan ng paghahati-hati sa system sa napakaliit at napapamahalaang mga sub parts.
Ano ang Traditional Software Development Methodology?
Ang Software methodologies tulad ng Waterfall method, V-Model at RUP ay tinatawag na tradisyonal na software development methodologies. Ang pamamaraan ng Waterfall ay isa sa mga pinakaunang modelo ng pagbuo ng software. Gaya ng ipinahihiwatig ng pangalan, ito ay isang sunud-sunod na proseso kung saan ang pag-unlad ay dumadaloy sa ilang mga yugto (pagsusuri ng pangangailangan, disenyo, pag-unlad, pagsubok at pagpapatupad) mula sa itaas hanggang sa ibaba, na kahalintulad sa isang talon. Ang V-Model ay itinuturing na extension ng Waterfall software development model. Ginagamit ng V-Model ang parehong mga ugnayan sa pagitan ng mga phase na tinukoy sa modelo ng Waterfall. Ngunit sa halip na pababang linearly (tulad ng Waterfall model) ang V-Model ay bumaba nang pahilis at pagkatapos ay gumagalaw pabalik pataas (pagkatapos ng coding phase), na bumubuo ng hugis ng letrang V. Ang RUP (Rational Unified Process) ay isang naaangkop na balangkas ng proseso (hindi isang solong kongkretong proseso), na maaaring ipasadya ng organisasyon ng pag-unlad ayon sa kanilang mga pangangailangan. Bahagyang katulad ng talon, mayroon itong mga nakapirming yugto bilang pagsisimula, elaborasyon, pagbuo at paglipat. Ngunit hindi tulad ng talon, ang RUP ay isang umuulit na proseso.
Ano ang Agile?
Ang Agile ay isang napakakamakailang pamamaraan ng pagbuo ng software (o mas tama, isang pangkat ng mga pamamaraan) batay sa maliksi na manifesto. Ito ay binuo upang malutas ang ilang mga pagkukulang sa mga tradisyonal na pamamaraan ng pagbuo ng software. Ang maliksi na pamamaraan ay nakabatay sa pagbibigay ng mataas na priyoridad sa partisipasyon ng customer sa unang bahagi ng yugto ng pag-unlad. Inirerekomenda nito ang pagsasama ng pagsubok ng customer nang maaga at madalas hangga't maaari. Ginagawa ang pagsubok sa bawat punto kapag naging available ang isang matatag na bersyon. Ang pundasyon ng Agile ay batay sa pagsisimula ng pagsubok mula sa simula ng proyekto at nagpapatuloy hanggang sa katapusan ng proyekto. Ang Scrum at Extreme programming ay dalawa sa pinakasikat na variation ng Agile method.
Ang pangunahing halaga ng Agile ay "ang kalidad ay responsibilidad ng team", na nagbibigay-diin na ang kalidad ng software ay responsibilidad ng buong team (hindi lang ng testing team). Ang isa pang mahalagang aspeto ng Agile ay ang paghahati-hati ng software sa mas maliliit na napapamahalaang bahagi at paghahatid ng mga ito sa customer nang napakabilis. Ang paghahatid ng isang gumaganang produkto ay isang sukdulang kahalagahan. Pagkatapos ay patuloy na pinapahusay ng team ang software at patuloy na naghahatid sa bawat pangunahing hakbang. Ito ay nakakamit sa pamamagitan ng pagkakaroon ng napakaikling mga ikot ng paglabas (tinatawag na mga sprint sa Scrum) at pagkuha ng feedback para sa pagpapabuti sa dulo ng bawat cycle. Ang mga nag-aambag na walang gaanong pakikipag-ugnayan ng team gaya ng mga developer at tester sa mga naunang pamamaraan, ngayon ay nagtutulungan sa loob ng Agile model.
Ano ang pagkakaiba ng Agile at Traditional Software Development Methodology?
Bagaman ang pamamaraan ng Agile ay nakabatay sa umuulit na pag-unlad dahil ang ilan sa mga tradisyonal na diskarte, ang Agile at Tradisyunal na pamamaraan ay may mga pangunahing pagkakaiba. Ginagamit ng mga tradisyonal na diskarte ang pagpaplano bilang kanilang mekanismo ng kontrol, habang ginagamit ng mga modelong Agile ang feedback mula sa mga user bilang pangunahing mekanismo ng kontrol. Ang maliksi ay matatawag na people-centric approach kaysa sa mga tradisyonal na pamamaraan. Ang maliksi na modelo ay naghahatid ng gumaganang bersyon ng produkto nang napakaaga kumpara sa mga tradisyunal na pamamaraan upang maagang matanto ng customer ang ilan sa mga benepisyo. Ang panahon ng ikot ng pagsubok ng Agile ay medyo maikli kumpara sa mga tradisyonal na pamamaraan, dahil ang pagsubok ay ginagawa parallel sa pag-unlad. Karamihan sa mga tradisyonal na modelo ay napakahigpit at medyo hindi gaanong nababaluktot kaysa sa Agile model. Dahil sa lahat ng mga pakinabang na ito, mas pinipili ang Agile kaysa sa mga tradisyonal na pamamaraan sa kasalukuyan.