Maliksi na Modelo
Ang flexible (Agile) na pamamaraan ay nakakatulong na bawasan ang panganib sa pagbuo ng software sa pamamagitan ng paglipat ng daloy ng trabaho sa ilang maliliit na cycle. Ang mga cycle na ito ay tinatawag na mga pag-ulit at karaniwang tumatagal ng dalawa hanggang tatlong linggo.
Ang isang pag-ulit ay tulad ng isang maliit na proyekto ng software na binubuo ng mga gawain, na ang bawat isa ay nagpapabuti sa paggana. Kabilang dito ang: pagguhit ng isang plano, pagsusuri ng mga kinakailangan, pagsang-ayon sa isang proyekto, pagsulat ng code, pagsubok, at paglikha ng teknikal na dokumentasyon.
Ang isang pag-ulit ay karaniwang hindi sapat para sa isang ganap na paglabas ng software. Gayunpaman, ang magandang bagay tungkol sa Agile ay ang maliliit na bahagi ng proyekto ay handa na para sa pagsusuri sa pagtatapos ng bawat pag-ulit. Nagbibigay-daan ito sa mga miyembro ng koponan na baguhin ang mga priyoridad para sa karagdagang trabaho nang hindi naghihintay ng panghuling paglabas.
Ang paglalapat ng isang "maliksi" na pamamaraan ng pag-unlad, maaari mong makita ang isang kongkretong resulta pagkatapos ng bawat pag-ulit. Ibig sabihin, mauunawaan ng developer kung ang resulta ng kanyang trabaho ay nakakatugon sa mga kinakailangan o hindi. Ito ay isa sa mga mahalagang bentahe ng nababaluktot na modelo.
Tulad ng para sa mga kahinaan, kapag gumagamit ng Agile, kung minsan ay mahirap tantiyahin ang halaga ng mga mapagkukunan ng paggawa at ang badyet ng proyekto. Kung kukuha tayo ng mga pagpipilian para sa praktikal na aplikasyon ng nababaluktot na modelo, kung gayon ang pinakatanyag sa kanila ay ang Extreme Programming (XP).
Ang XP ay batay sa mga maikling pagpupulong ng mga miyembro ng koponan na nagaganap araw-araw, at mga regular na pagpupulong (isang beses sa isang linggo o mas kaunti). Sa pang-araw-araw na rally (pang-araw-araw na standup) ay karaniwang tinatalakay:
- kasalukuyang mga resulta ng trabaho;
- isang listahan ng mga gawain na dapat tapusin ng bawat miyembro ng pangkat;
- mga kahirapan at mga paraan upang malutas ang mga ito.
Manipesto
Ang Agile ay isang buong direksyon sa pag-unlad, kaya ang mga patakaran para sa pagtatrabaho dito ay ipinahayag sa isang espesyal na dokumento - Agile Manifesto. Kabilang dito ang parehong mga kasanayan at prinsipyo kung saan dapat gumana ang koponan.
Binubuo ang Agile Manifesto ng 4 na pangunahing ideya at 12 prinsipyo.
Mga Pangunahing Ideya:
- ang pakikipagtulungan sa pagitan ng mga developer ay mas mahalaga kaysa sa mga tool;
- ang gumaganang bersyon ng produkto ay nangunguna sa dokumentasyon;
- mas mahalaga ang mutual understanding sa pagitan ng team at ng customer kaysa sa mga tuntunin ng kontrata;
- Ang orihinal na plano ay maaaring palaging baguhin kung kinakailangan.
Tulad ng para sa 12 prinsipyo ng Agile, narito ang mga ito:
- ang pangunahing priyoridad ay ang pagsunod sa natapos na programa sa mga inaasahan ng customer;
- pinahihintulutan ang pagbabago ng mga kondisyon sa anumang yugto, kahit na sa huling yugto ng pag-unlad (kung mapapabuti nito ang kalidad at pagiging mapagkumpitensya ng software);
- regular na paghahatid ng mga gumaganang bersyon ng produkto ng software (bawat 14 na araw, buwan o quarterly);
- ang susi sa tagumpay ay regular na pakikipag-ugnayan sa pagitan ng customer at mga developer (mas mabuti araw-araw);
- ang mga proyekto ay dapat itayo sa mga interesado sa kanila, ang mga naturang tao ay dapat bigyan ng mga kinakailangang kondisyon para sa trabaho at lahat ng uri ng suporta;
- ang pinakamahusay na paraan upang magbahagi ng impormasyon sa isang koponan ay isang personal na pagpupulong;
- ang gumaganang bersyon ng software ay ang pinakamahusay na tagapagpahiwatig ng pag-unlad;
- lahat ng mga stakeholder ay dapat na mapanatili ang nais na bilis ng trabaho sa buong proseso ng pagbuo ng software;
- teknikal na pagpapabuti at mahusay na disenyo mapabuti ang flexibility;
- mahalagang panatilihin itong simple at hindi labis na paggawa;
- ang pinakamahusay na mga resulta ay nakuha mula sa mga koponan na magagawang ayusin ang sarili;
- Ang mga miyembro ng koponan ay dapat na regular na mag-isip tungkol sa mga paraan upang mapabuti ang kanilang kahusayan sa pamamagitan ng pagbabago sa daloy ng trabaho.
Ayon sa Agile manifesto, ang isang mahusay na proseso ng pagbuo ng software ay direktang nakasalalay sa mga taong kasangkot sa prosesong ito. Upang gawin ito, kailangan mong ayusin ang kanilang pakikipag-ugnayan nang mahusay hangga't maaari, lumikha ng pinaka-organisadong koponan.
Mga pamamaraan
Mayroon ding ilang mga pamamaraan sa Agile Manifesto na nagpapaliwanag ng mga halaga at prinsipyo:
- Agile Modeling;
- Agile Unified Process;
- Mabilis na Paraan ng Data
- Rapid Application Development (DSDM);
- Mahalagang Pinag-isang Proseso;
- matinding programming;
- pag-unlad na hinimok ng tampok;
- Pagiging Totoo;
- Buksan;
- Scrum.
Ang Agile Modeling ay isang koleksyon ng mga prinsipyo, tuntunin, at kasanayan na nagpapabilis at nagpapasimple sa pagbuo ng mga modelo ng software at dokumentasyon.
Ang layunin ng Agile Modeling ay pahusayin ang pagmomodelo at dokumentasyon. Mahalagang tandaan na hindi kasama dito ang coding, pagsubok, o mga isyung nauugnay sa kontrol, deployment, at suporta ng proyekto. Gayunpaman, kasama sa pamamaraang ito ang pagsusuri ng code.
Ang Agile Unified Process ay isang pamamaraan na nagpapadali para sa mga user na tantiyahin (modelo). Karaniwang ginagamit upang bumuo ng komersyal na software.
Agile Data Method - ilang mga katulad na pamamaraan kung saan ang mga kondisyon ng customer ay nakakamit sa pamamagitan ng pakikipagtulungan ng ilang mga koponan.
DSDM - ang diskarte na ito ay naiiba sa iba dahil, kasama ang mga developer, ang mga gumagamit ng hinaharap na produkto ay aktibong bahagi nito.
Ang feature driven development ay isang development methodology na may limitasyon sa oras: "dapat ipatupad ang bawat feature nang hindi hihigit sa dalawang linggo."
Ito ay nagkakahalaga ng pagsasaalang-alang na kung ang kaso ng paggamit ay maliit, maaari itong ituring na isang tampok. Kung ito ay makabuluhan, dapat itong nahahati sa maraming mga pag-andar.
Ang Getting Real ay isang umuulit na pamamaraan kung saan ang interface ng programa ay unang binuo, at pagkatapos lamang ang functionality nito ay binuo.
Ang OpenUP ay isang paraan ng pag-unlad na naghahati sa ikot ng proyekto sa apat na yugto: pagsisimula, pagpipino, pagtatayo, at pagbibigay.
Ayon sa mga prinsipyo ng Agile, anuman ang tagal ng trabaho, kinakailangang bigyan ang lahat ng mga stakeholder at miyembro ng koponan ng isang paraan upang makilala at makagawa ng mga desisyon. Salamat sa ito, posible na epektibong kontrolin ang sitwasyon at suriin ang mga intermediate na resulta sa oras. Tinutukoy ng plano ng proyekto ang ikot ng buhay, at ang huling resulta ay dapat ituring na isang matatag na paglabas ng aplikasyon.
Tulad ng para sa Scrum, kinokontrol nito ang mga patakaran para sa pamamahala ng proseso ng pag-unlad at pinapayagan kang maglapat ng mga umiiral na kasanayan sa coding na may posibilidad na ayusin ang mga kundisyon o gumawa ng mga pagbabago. Ang paggamit ng pamamaraang ito ay nagpapahintulot sa iyo na makita at alisin ang mga paglihis mula sa inaasahang resulta sa mga unang yugto ng pag-unlad.
Tingnan natin ito nang mas detalyado...