"Kaya, gusto kong sabihin sa iyo ang tungkol sa Agile at Scrum ."

"Sa simula ng ika-21 siglo, ang paraan ng pag-iisip ng mga tao tungkol sa pagprograma ay nabaligtad."

"Ang lahat ay kumbinsido na ang pangmatagalang pagpaplano ay hindi gumagana, kaya nagpasya silang iwanan ito nang buo."

"Paano nila nagawa iyon?"

"Eto kung paano."

"Inimbento nila ang pinaka-kakayahang umangkop na diskarte sa pamamahala ng proyekto na posible."

Narito ang mga pangunahing ideya sa likod ng agile development :"

  • ang mga tao at komunikasyon ay mas mahalaga kaysa sa mga proseso at kasangkapan;
  • ang isang gumaganang produkto ay mas mahalaga kaysa sa kumpletong dokumentasyon;
  • ang pakikipagtulungan sa customer ay mas mahalaga kaysa sa pagtugon sa mga tuntunin ng isang kontrata;
  • ang pagpayag na magbago ay mas mahalaga kaysa manatili sa orihinal na plano.

Narito ang mga prinsipyo ng mabilis na pag-unlad:

  • masiyahan ang customer sa pamamagitan ng pagbibigay ng mahalagang software nang maaga at tuloy-tuloy;
  • malugod na tinatanggap ang mga pagbabago sa mga kinakailangan kahit na sa pagtatapos ng pag-unlad (maaari nitong mapataas ang pagiging mapagkumpitensya ng huling produkto);
  • maghatid ng gumaganang software nang madalas (bawat buwan o linggo o mas madalas);
  • malapit na araw-araw na komunikasyon sa pagitan ng customer at mga developer sa buong proyekto;
  • ang proyekto ay ginagawa ng mga motibasyon na indibidwal na binibigyan ng mga kinakailangang kondisyon sa trabaho, suporta, at tiwala;
  • ang ginustong paraan para sa pakikipag-usap ng impormasyon ay isang personal (harapan) na pag-uusap;
  • ang gumaganang software ay ang pinakamahusay na sukatan ng pag-unlad;
  • ang mga sponsor, developer, at user ay dapat na mapanatili ang isang pare-parehong bilis para sa isang hindi tiyak na panahon;
  • patuloy na pagtutok sa pagpapabuti ng teknikal na kahusayan at disenyong madaling gamitin;
  • ang pagiging simple ay ang sining ng hindi paggawa ng labis na gawain;
  • ang pinakamahusay na teknikal na mga kinakailangan, disenyo, at arkitektura ay nagmumula sa isang self-organized na koponan;
  • patuloy na pagbagay sa pagbabago ng mga pangyayari.

"Ang pangunahing problema sa pagbuo ng software ay na sa anumang yugto wala sa mga kalahok ang may kumpletong impormasyon tungkol sa kung ano ang gagawin."

"Maaaring sabihin sa iyo ng customer kung paano niya naiisip ang programa, ngunit may iiwan siya o ipagwalang-bahala ang isang bagay."

"Ang manager sa pangkalahatan ay kailangang isalin ang mga kinakailangan mula sa programming jargon sa wika ng customer at bumalik muli."

"Masyadong maraming kawalan ng katiyakan."

"Kadalasan ang mga kinakailangan ng customer ay ganito: gawin ito sa ilang paraan, pagkatapos ay ipakita sa akin — kung hindi ko gusto ito, maaari mo itong gawing muli."

"Uh... grabe naman."

"Ayon sa bagong paradigm, ang mga programmer ay hindi na bumubuo ng isang produkto o programa. Sa halip, ipinapatupad nila ang pag-andar na kailangan ng customer."

"Ano ang pinagkaiba?"

"Well, kumbaga, ang pagpapaunlad ng programa noon ay tumatagal ng isang taon. At anim na buwan ang kailangang lumipas bago magkaroon ng anumang bagay na tingnan. Para itong pagtatayo ng isang malaking bahay: una, maghukay ka ng hukay para sa pundasyon, pagkatapos ay ibuhos ang pundasyon, ang itayo ang mga dingding, bubong, gupitin, atbp."

"Ngunit ngayon, sinisikap ng mga programmer na ilabas ang kinakailangang pag-andar sa lalong madaling panahon. Ito ay magiging tulad ng unang pagtatayo ng isang kubo, pagkatapos ay isang mobile home, pagkatapos ay isang maliit na bahay, at pagkatapos lamang ng isang malaking bahay-sa pamamagitan ng mga installment."

"Isinasaalang-alang na malamang na hindi alam ng customer kung ano ang gusto niya, kung gayon ito ay isang napaka-makatwirang diskarte."

"Ipagpalagay na gusto ng customer ng isang malaking hunting lodge."

"Ang mga developer ay bumuo sa kanya ng isang maliit na isa. Siya ay nakatira sa ito para sa isang taglamig.

"Siya ay nakatira malapit sa lawa para sa isang tag-araw, ngunit ang mga lamok ay kumakain sa kanya ng buhay. Narinig niya sa isang lugar na ang mga lawa ay malamig, at kaya't gusto niyang magkaroon ng isa. Ngunit ngayon ay hindi niya gusto ang isang lawa. At ito ay magiging mas madaling magtayo. ang bahay sa ganitong paraan: walang lawa ay nangangahulugang walang banta ng baha, at maaari mong itayo ang bahay sa lupa sa halip na sa mga stilts, na magiging 25% na mas mabilis."

"Isang kawili-wiling analogy. Ganyan ba talaga kadalas na binabago ng mga customer ang kanilang mga kinakailangan?"

"Oo, ngunit ang problema ay hindi ang customer."

"Una, napakahirap isipin kung ano ang mangyayari sa hinaharap. Ginagawa rin ito ng mga manager, tester, at programmer. Nagbabago rin ang isip nila depende sa kung paano gumagana ang mga bagay."

"Pangalawa, hindi ba ang mga kinakailangan ng customer ang pinakamahalaga?  Pagkatapos ng lahat , ang punto ng lahat ng gawaing ito ay upang lumikha ng kung ano ang kailangan ng customer , hindi kung ano ang una niyang sinabi na lumikha ."

"Sa katunayan, ito ay gumagana tulad nito dati: ang mga analyst ng negosyo ay gagawa ng isang listahan ng lahat ng mga kinakailangan. Isasama nila ang listahang ito sa isang kontrata, pipirmahan ito, at gagana lamang ayon sa listahan."

"Kung ang listahan ay may nawawalang bagay na talagang kailangan ng customer ngunit nakalimutan, walang gagawa ng anuman tungkol dito."

"I see. Mas madaling sundin ang isang plano, ngunit hindi lahat ay maaaring gawin ayon sa isang plano!"

"Eksakto."

"Iyon ang dahilan kung bakit naimbento ang maliksi na pamamaraan ng pag-unlad."

"At ngayon sasabihin ko sa iyo ang tungkol sa Scrum - ang pinakasikat sa kanila.

"Ang pangunahing tampok ng Scrum ay ang paghahati ng pagbuo ng proyekto sa maliliit na pag-ulit - karaniwang 2-4 na linggo ang haba. Ang bawat pag-ulit ay tinatawag na sprint."

"Sa simula ng isang sprint, gaganapin ang isang sprint planning meeting. Ito ay tumatagal ng 3-4 na oras."

"Sa dulo, mayroong isang pagpapakita ng lahat ng ganap na natapos na mga gawain."

"Narito kung paano karaniwang gumagana ang lahat:"

"Bago ang pinakaunang sprint, ang customer (o isang kinatawan ng customer) ay bumubuo ng isang listahan ng mga kinakailangan, ibig sabihin, ang hanay ng mga bagay na dapat gawin ng programa. Ang mga kinakailangang ito ay karaniwang tinatawag na mga kwento ng gumagamit , at ang customer ay karaniwang tinawag ang may-ari ng produkto ."

"Siya ay tinatawag na may-ari ng produkto , dahil ang produkto ay isinulat para sa kanya. Siya, at siya lamang, ang tumutukoy sa listahan ng mga kinakailangan — ano, kailan, at sa anong pagkakasunud-sunod."

"Bukod dito, ang may-ari ng produkto ay karaniwang nagtatalaga ng mga priyoridad sa gawain. Ang mga gawaing may pinakamataas na priyoridad ay unang ipapatupad. Ang buong listahan ng mga kinakailangan ay tinatawag ding product backlog ."

"Kapag nagsimula ang isang sprint, lahat ay nagtitipon para sa isang pulong. Ang scrum master , karaniwang isang miyembro ng koponan, ay karaniwang namumuno sa pulong. Ang layunin ng pulong ay piliin ang mga gawain ( kuwento ng gumagamit ) para sa kasalukuyang sprint (pag-uulit ng pag-unlad). "

"Una, ang koponan ay nagtatalaga sa bawat gawain ng isang magaspang na pagtatantya sa abstract man-days, na kilala rin bilang mga story point.  Pagkatapos ay ang koponan ang magpapasya kung gaano karaming mga gawain ang magkakaroon sila ng oras upang tapusin sa panahon ng sprint."

"Muli, ang koponan mismo ang magpapasya kung gaano karaming mga gawain ang magkakaroon sila ng oras upang tapusin sa panahon ng sprint."

"Sabihin nating inaasahan ng may-ari ng produkto na pipiliin ng team ang unang 7 gawain ngunit 5 lang ang napili nito, pagkatapos ay ipagpaliban ang mga gawain 6 at 7 sa susunod na sprint. Kung hindi iyon angkop sa may-ari ng produkto , maaari niyang itaas ang priyoridad ng mga gawain 6 at 7 upang matiyak na sila ay napili, ngunit pagkatapos ay ang ilan sa iba pang mga gawain ay mawawala sa sprint."

"Maaari ding magmungkahi ang scrum master na hatiin ang ilan sa mga gawain sa mas maliliit at magtakda ng iba't ibang priyoridad para sa kanila upang maging masaya ang may-ari ng produkto hangga't maaari."

"Iyon ang punto ng pagpupulong: ang mga gawain ay maaaring baguhin at hatiin, ang mga priyoridad ay maaaring baguhin, atbp. Ito ang gawain na hindi nakikita sa simula, ngunit nagdudulot ng maraming halaga."

"Got it. Para kang nagmamaneho ng kotse. Kahit na sa una ay naniniwala ka na kailangan mo lang dumiretso, ang katotohanan ay kailangan mong patuloy na iwasan ang mga lubak, umiwas sa kanan at kaliwa, at dumaan sa iba o hayaan silang dumaan sa iyo."

"Oo, may ganyan."

"Ang listahan ng mga gawaing pinili para sa sprint ay tinatawag na sprint backlog ."

"Ang mga programmer ang magpapasya kung sino ang gagawa ng kung ano, at saka lang sila makakapagtrabaho. "Upang mapabuti ang kahusayan, iminumungkahi ng Scrum na ang isang 5-15 minutong pagpupulong ay gaganapin araw-araw kung saan lahat ay maaaring sabihin sa isa't isa kung ano ang kanilang ginawa kahapon at kung ano sila. gagawin ngayon."

"Teamwork. Kaya kong igalang yan!"

"Upang gawing mas madaling makita ang mga bagay, kadalasang inirerekomenda na ipakita ang kasalukuyang status ng sprint sa isang espesyal na board:"

Maliksi, scrum, talon - 2

"Tandaan ang tatlong column sa kaliwa."

"Ang mga pinaikling pangalan ng gawain ay nakasulat sa mga sticky notes. At ang mga sticky notes ay inilalagay sa iba't ibang mga column depende sa kanilang katayuan (nakaplano, nasa progreso, tapos na)."

"Sa kanan, makakakita ka ng burndown chart . Para sa bawat araw, inililista ng chart na ito ang mga gawain na nananatiling hindi nagagawa. Sa isip, ang bilang ng mga hindi kumpletong gawain ay bumaba sa zero sa panahon ng sprint."

"Kapag ang sprint ay tapos na, ang scrum-master ay nagbibigay ng isang demo upang ipakita ang listahan ng lahat ng bagay na ganap na natapos."

"Pagkatapos ay nagsasagawa siya ng isang sprint retrospective meeting , na tumatagal din ng ilang oras. Sa panahon ng pagpupulong na ito, karaniwang sinusubukan ng mga kalahok na malaman kung ano ang naging maayos at kung ano (at paano) ang mga bagay ay maaaring nagawa nang mas mahusay."

"Karaniwan pagkatapos ng 2-3 sprint, maaari mong tukuyin at alisin ang mga pangunahing problema na pinipigilan ang koponan sa pagtatrabaho nang mas mahusay. Ito ay humahantong sa higit na produktibo nang hindi nadaragdagan ang workload ng koponan. Hindi ito  posible bago ang panahon ng mga maliksi na pamamaraan. "

"Minsan ang isang pagpupulong sa pag-aayos ay gaganapin din sa panahon ng sprint. Ang layunin nito ay upang planuhin ang susunod na sprint. Karaniwang nililinaw ng mga kalahok ang mga priyoridad ng gawain sa pulong na ito. Maaari din nilang hatiin ang ilang mga gawain sa mga bahagi at/o magdagdag ng mga bagong gawain sa backlog ng produkto . "

"Well, iyon lang talaga ang mayroon ako. Ito ay isang pangkalahatang-ideya lamang. Imposibleng ipaliwanag ang lahat ng ito sa ilang salita lamang, ngunit maaari mong basahin ang isang magandang artikulo sa paksa dito:"

https://en.wikipedia.org/wiki/Scrum_(software_development)