JavaRush /Java Blog /Random-TL /Mga pamamaraan ng pag-unlad ng software

Mga pamamaraan ng pag-unlad ng software

Nai-publish sa grupo
Kamusta. Sa huling dalawang panayam ay tinanong ako tungkol sa mga pamamaraan. Hindi ito ang pinakamahalaga o mahirap na tanong, ngunit magiging maganda kung mayroong isang cheat sheet para sa sagot. Sa artikulong ito susubukan kong magbigay ng ideya kung ano ang isang pamamaraan ng pag-unlad at ihambing ang mga personal kong nakilala o tinanong tungkol sa. Mga pamamaraan sa pagbuo ng software - 1Ang pamamaraan ng pag-develop ng software ay isang proseso ng paglalarawan kung paano bubuo ang isang partikular na produkto, iyon ay, isa sa mga paraan upang ayusin ang pagbuo ng koponan. Mayroong maraming iba't ibang mga modelo ng naturang proseso, na ang bawat isa ay naglalarawan ng sarili nitong diskarte, at hindi masasabi na sa kanila ay mayroong isa na kailangang gamitin sa bawat proyekto, ang lahat ay puro sitwasyon. Iminumungkahi kong isaalang-alang ang tatlo sa kanila nang mas detalyado.

Talon

Ang Waterfall (cascade, waterfall) ay isa sa mga pinakalumang pamamaraan at nagpapahiwatig ng mahigpit na sunud-sunod na pagpapatupad ng lahat ng mga yugto, ang bawat isa ay dapat makumpleto bago magsimula ang susunod. Iyon ay, ang paglipat sa susunod na yugto ay nangangahulugan ng kumpletong pagkumpleto ng trabaho sa nauna. Ipinapakita ng larawan na una naming pinag-aaralan ang gawain (mga gawain sa dokumento, talakayin ang mga paghihirap), pagkatapos ay nangyayari ang disenyo (sa yugtong ito ang istraktura ng proyekto ay nabuo), pagkatapos ay coding at pagsubok. Walang mga refund para sa mga susunod na yugto. Inirerekomenda na gumamit ng ganitong sistema sa maliliit na proyekto kung saan ang mga kinakailangan ay alam nang maaga at may maliit na posibilidad na magbago ang mga ito. Mga pamamaraan sa pagbuo ng software - 2Mga kalamangan:
  • Kumpleto at pare-parehong dokumentasyon sa bawat yugto;
  • Dali ng paggamit;
  • Matatag na mga kinakailangan.
  • Ang badyet at mga deadline ay paunang natukoy
Bahid:
  • Isang malaking halaga ng dokumentasyon;
  • Hindi isang napaka-flexible na sistema;
  • Hindi matingnan ng kliyente ang demo na bersyon ng produkto;
  • Walang paraan upang bumalik ng isang hakbang.

Scrum

Ang Scrum ay isang software development system na nakabatay sa paghahati sa buong proseso sa mga pag-ulit, kung saan sa dulo ng bawat isa sa kanila ay handa ang team na magbigay ng demo na bersyon ng produkto. Ang larawan ay nagpapakita na ang koponan ay dumaan sa lahat ng mga yugto ng pag-unlad nang magkatulad, na nagpapahintulot sa amin na magkaroon ng isang natapos na bahagi ng proyekto sa dulo ng bawat pag-ulit. Mga pamamaraan sa pagbuo ng software - 3Susubukan kong ipaliwanag nang maikli sa mga simpleng salita ang kakanyahan ng pamamaraan, ngunit mayroong maraming mga termino dito. Sa tingin ko ang pinakamahalagang bagay ay upang maunawaan ang kakanyahan, at ang mga tuntunin ay maaalala sa karanasan. Ang lahat ng pag-unlad ay nahahati sa mga sprint (madalas na 2-3 linggo). Mayroong backlog (listahan ng mga gawain) para sa buong panahon ng pag-unlad at para sa bawat sprint nang hiwalay. Ang bawat gawain ay may sariling story point (pag-rate ng kahirapan). Ang bawat kalahok sa proseso ay may tungkulin:
  • Ang pangkat ng Scrum ay isang pangkat na nagtatrabaho sa isang proyekto (mga developer, tester, taga-disenyo).
  • Ang Scrum Master ay isang taong tumitiyak na sinusunod ang mga prinsipyo ng Scrum.
  • May-ari ng produkto - customer.
Dahil sa sistemang ito ang diin ay sa komunikasyon, mayroong isang malaking bilang ng mga rally:
  • Ang stand-up ay isang maikling pagpupulong, na ginaganap araw-araw, nakikibahagi ang lahat ng miyembro ng koponan at sinasagot ng bawat kalahok ang 3 tanong: ano ang ginawa mo? Ano ang gagawin nito? At ano ang mga blocker?
  • Pagpaplano – gaganapin sa simula ng sprint at sa pulong na ito ay natutukoy kung anong mga gawain ang dapat tapusin sa susunod na sprint.
  • Ang retrospective ay gaganapin sa pagtatapos ng sprint at ang esensya nito ay upang malaman kung ano ang nagawa nang maayos at kung ano ang maaaring mapabuti.
Mga kalamangan:
  • Maaaring obserbahan ng customer ang resulta sa panahon ng proseso ng pagbuo.
  • Araw-araw na kontrol sa proseso ng pag-unlad.
  • Kakayahang gumawa ng mga pagsasaayos sa panahon ng pag-unlad.
  • Mahusay na itinatag na komunikasyon sa lahat ng miyembro ng koponan.
  • Maliit na dami ng dokumentasyon.
Bahid:
  • Mahirap tantiyahin ang paggawa at gastos na kailangan para sa pagpapaunlad
  • Mahirap matukoy ang pinakamalaking bottleneck bago magsimula ang pag-unlad.
  • Ang pangangailangang isali ang lahat sa pagbuo ng iba pang miyembro ng koponan.

Kanban

Ang Kanban ay isang sistema na binuo sa pag-visualize sa proseso ng pagkumpleto ng mga gawain ng team. Ang pangunahing ideya sa system na ito ay upang bawasan ang bilang ng mga gawain na kasalukuyang isinasagawa (sa column na "in progress." Sa Scrum, ang koponan ay nakatuon sa matagumpay na pagkumpleto ng mga sprint; sa Kanban, ang mga gawain ang mauna. Mabuti para sa mga proyekto na nasa yugto ng suporta, kung saan ang pangunahing pag-andar ay nabuo na at nananatili ang kaunting mga pagpapabuti at pag-aayos ng bug. Sa Kanban, isa-isang isinusumite ang mga gawain. Ang gawain, anuman ang iba pang mga gawain, ay dumadaan sa lahat ng mga yugto sa board at sa sandaling ito ay makumpleto maaari itong ipakita sa customer. Ang isang Kanban board ay binubuo ng mga column, na ang bawat isa ay kumakatawan sa isang hiwalay na proseso ng pag-unlad. Ang ilang mga column (halimbawa, kasalukuyang isinasagawa) ay nagpapataw ng mga paghihigpit sa bilang ng mga gawain na maaaring gawin doon. Nakakatulong ito upang madali at mabilis na makahanap ng mga lugar ng problema sa pamamahagi ng mga gawain. Ang larawan ay nagpapakita ng isang halimbawa ng gayong simpleng board. Maaaring mag-iba ang bilang ng mga column at pangalan, ngunit pangalanan ko ang mga pinakakaraniwan: Mga pamamaraan sa pagbuo ng software - 4
  • Gagawin - isang listahan ng mga gawain na kailangang gawin
  • Kasalukuyang ginagawa – mga gawain na kasalukuyang ginagawa
  • Pagsusuri ng code – mga gawain na natapos at ipinadala para sa pagsusuri
  • Sa pagsubok - mga gawain na handa para sa pagsubok
  • Tapos na – natapos ang mga gawain.
Mga kalamangan:
  • Dali ng paggamit.
  • Visualization (nakakatulong sa paghahanap ng mga bottleneck, pinapasimple ang pag-unawa)
  • Mataas na paglahok ng koponan sa proseso mismo.
  • Mataas na kakayahang umangkop sa pag-unlad.
Bahid:
  • Hindi matatag na listahan ng gawain.
  • Mahirap gamitin sa mga pangmatagalang proyekto.
  • Walang mahirap na mga deadline.

Sa konklusyon tungkol sa pamamaraan ng pagbuo ng software

Sa aking palagay, ang mga taong humahawak ng mga posisyon sa pamamahala o naghahangad sa kanila ay kailangang magkaroon ng masusing pag-unawa sa mga pamamaraan ng pagpapaunlad ng software, ngunit ipinapayong maunawaan ng lahat ang hindi bababa sa mga pangunahing kaalaman. Ito ay isang mahalagang bahagi ng proseso ng pag-unlad at ginagamit hindi lamang sa larangan ng IT. Salamat sa paglalaan ng oras upang basahin ang aking artikulo, sana ay nakatulong ito sa iyo. Sinubukan kong ilarawan lamang ang mga pangunahing punto nang malinaw at maikli hangga't maaari, kaya hindi kumpleto ang artikulo. Natutuwa akong marinig ang iyong opinyon tungkol dito at sagutin ang iyong mga katanungan. Lahat ng pinakamahusay!
Mga komento
TO VIEW ALL COMMENTS OR TO MAKE A COMMENT,
GO TO FULL VERSION