CodeGym /Java Blog /Random /Lahat ng kailangan mong malaman tungkol sa mga pamamaraan...
John Squirrels
Antas
San Francisco

Lahat ng kailangan mong malaman tungkol sa mga pamamaraan ng pagbuo ng software: mga uso, prinsipyo, at mga pitfalls para sa mga nagsisimula

Nai-publish sa grupo
Ang pagbuo ng software ay isang kumplikadong proseso ng negosyo. Nangangahulugan ito na ang mga propesyonal sa IT ay kailangang magsalita ng wika ng pag-optimize, pagpaplano, at paggastos. Ang pag-unawa sa mga konsepto ng pamamahala ay nagbibigay sa mga employer at developer ng malaking kalamangan at nakakatulong na isulong ang pakikipagtulungan sa susunod na antas. Lahat ng kailangan mong malaman tungkol sa mga pamamaraan ng pagbuo ng software: mga uso, prinsipyo, at mga pitfalls para sa mga nagsisimula - 1

Pansin, mga nagsisimula! Mga modelo, pamamaraan, at pangkalahatang kalituhan

Upang magsimula, kailangan nating gumawa ng isang mahalagang paglilinaw: ang mga modelo ng pagbuo ng software at mga pamamaraan ng pagbuo ng software ay hiwalay at naiiba. Hinuhulaan ng mga modelo kung paano kikilos ang isang sistema. Kinakailangan ang mga pamamaraan para gumana ang system ayon sa nararapat. Ang nakakalito na mga modelo at pamamaraan ng software development ay karaniwang operating procedure para sa bawat IT baguhan, kaya hindi ito itinuturing na isang malaking pagkakamali. Ang isang halimbawa ng isang modelo ay ang classic na waterfall model , kasama ang linear progression nito, malinaw na kahulugan ng mga layunin para sa bawat yugto, at mahigpit na kontrol sa mga deadline. Ang isa pang modelo ay ang spiral model, na may pagtuon sa maagang pagtuklas at pagpapagaan ng mga panganib sa proyekto. Ang pag-unlad ng spiral ay nagsisimula sa maliit, unang paglutas ng mga lokal na problema, at pagkatapos ay umuusad sa mas kumplikadong mga problema. Sa wakas, ang isa pang modelo ay iterative at incremental development (IID) , kung saan ang ikot ng buhay ng proyekto ay hinati-hati sa isang serye ng mga pag-ulit, na ang bawat isa ay kahawig ng isang "mini-project". Sa pangkalahatan, ang isang modelo ay isang paglalarawan ng proseso ng pagbuo ng software . Ngunit ang mga pamamaraan ay mga sistema para sa pagkontrol, pagsusuri, at pagsubaybay sa gawain sa mga nakatalagang gawain. Ang mga pamamaraan ay ang patpat at karot ng modernong panahon, na kailangan upang kontrolin ang bawat hakbang sa proseso ng pag-unlad. Pinipili ang mga ito batay sa direksyon ng proyekto, badyet nito, at mga deadline para sa pagpapatupad ng huling produkto. Higit pa rito, maaaring piliin ang mga pamamaraan batay sa ugali ng pinuno ng proyekto at ng kanyang koponan. Kahit na batay sa pilosopiya ng kumpanya o customer. Tingnan natin ang pinakasikat na mga pamamaraan.

1. Scrum

Ang scrum ay isang maliksi na pamamaraan ng pamamahala ng proyekto. Ito ay batay sa "mga sprint", o maiikling pag-ulit, mahigpit na limitado sa oras (karaniwan ay 2-4 na linggo). Pinapababa nito ang tagal ng mga pagpupulong, ngunit pinapataas ang dalas ng mga ito. Ang bawat sprint ay binubuo ng isang listahan ng mga gawain na dapat kumpletuhin sa pagtatapos ng pag-ulit, at bawat isa sa kanila ay may sariling "timbang". Sa mga pagpupulong, tinatalakay ng pangkat kung ano ang nagawa ng mga miyembro ng pangkat, kung ano ang plano nilang gawin, at kung anong mga problema ang mayroon. Gumagamit ang Scrum ng backlog para sa pagpaplano. Sa ganitong paraan, ang mga koponan sa pangkalahatan ay may scrum master. Tinutulungan ng taong ito ang koponan na magtrabaho nang walang pagkaantala at lumikha ng komportableng kapaligiran para sa koponan. Ang proyekto ay magkakaroon din ng isang tao sa papel ng may-ari ng produkto. Ang taong ito ang pinuno ng pag-unlad, sinusubaybayan ang produkto, at nagsisilbing pangunahing link sa pagitan ng kung ano ang hinihiling ng customer at kung ano ang ginagawa ng koponan.

Mga kalamangan:

  • kakayahang mabilis na maglunsad ng isang proyekto na may pinakamababang posibleng badyet;
  • araw-araw na pagsubaybay sa pag-unlad, madalas na mga demo ng proyekto;
  • ang kakayahang gumawa ng mga pagsasaayos sa panahon ng proyekto.

Cons:

  • kahirapan sa pagtatapos ng mga kontrata dahil sa kakulangan ng isang nakapirming badyet;
  • hindi gumagana para sa isang walang karanasan na koponan o kapag ang mga deadline o ang badyet ay maliit;
  • ang kakayahang patuloy na gumawa ng mga pagbabago sa pagitan ng mga sprint ay maaaring lumikha ng pagkalito.

Para kanino ito?

Ang ganitong sistema ay angkop para sa mga proyekto ng hanggang sampung tao, independyente man o umiiral sa loob ng malalaking kumpanya. Maginhawa ito kung ang koponan ay may malaking dami ng trabaho at mahabang ikot ng buhay na pumipilit sa kanila na magbago at umangkop sa mga bagong kondisyon ng merkado.

2. Kanban

Ang pinakamahalagang tampok ng Kanban ay visualization ng ikot ng buhay ng proyekto. Ang mga hanay para sa pagganap ng mga item sa trabaho ay nilikha. Ang mga bagay sa trabaho ay tinatalakay nang paisa-isa. Ang mga column ay minarkahan ng mga katayuan tulad ng: Gagawin, Kasalukuyan, Pagsusuri ng code, Sa pagsubok, Tapos na (siyempre, maaaring mag-iba ang mga pangalan ng column). Ang layunin ng bawat miyembro ng koponan ay bawasan ang bilang ng mga bagay sa trabaho sa unang hanay. Ang diskarte ng Kanban ay intuitive at tinutulungan kang maunawaan kung saan naroroon ang mga problema. Ang istraktura ng Kanban ay hindi tiyak at hindi na mababawi: depende sa mga detalye ng proyekto, maaari kang magdagdag ng mga improvised na column. Halimbawa, ang ilang mga koponan ay gumagamit ng isang sistema kung saan kailangan mong tukuyin ang mga tapos na panuntunan para sa isang item sa trabaho bago ito isagawa. Sa kasong ito, dalawang column ang idinaragdag: Tukuyin (tukuyin ang mga parameter) at Ipatupad (magtrabaho).

Mga kalamangan:

  • kakayahang umangkop sa pagpaplano. Ang koponan ay tumutuon lamang sa kasalukuyang gawain, ang priyoridad ng isang gawain ay tinukoy din;
  • visibility. Kapag ang lahat ng kalahok ay may access sa data, ang mga pandaigdigang isyu ay mas madaling makita;
  • mataas na pakikilahok sa proseso ng pag-unlad. Ang pag-visualize ng mga proseso ay nagpapataas ng pag-aayos sa sarili at pagpipigil sa sarili.

Cons:

  • hindi gumagana sa mga pangkat na higit sa limang tao;
  • hindi inilaan para sa pangmatagalang pagpaplano;
  • hindi angkop para sa isang unmotivated na koponan. Ang Kanban ay walang mga deadline para sa bawat item sa trabaho. Hindi rin ang pamamaraan ay nagtatakda ng mga parusa para sa mga pagkaantala.

Para kanino ito?

Ang Kanban ay mahusay na gumagana sa mga kumpanya kung saan ang koponan ay motibasyon na lumago at makamit ang mga resulta. Ito ay dapat na malinaw na - ito ay para sa isang maliit na koponan. Marahil kahit isang detatsment o bahagi ng isang koponan.

3. Rational Unified Process (RUP)

Ang pamamaraan ng RUP ay gumagamit ng umuulit na modelo ng pag-unlad. Sa pagtatapos ng bawat pag-ulit (na tumatagal ng 2 hanggang 6 na linggo), dapat makamit ng koponan ang mga nakaplanong layunin at makakuha ng gumagana, kahit pansamantala, na bersyon ng proyekto. Nanawagan ang RUP na hatiin ang proyekto sa apat na yugto . Sa bawat yugto, ang gawain sa susunod na henerasyon ng produkto ay isinasagawa: pagsisimula, pag-elaborasyon, pagtatayo at paglipat. Sa pagtatapos ng isang yugto, ang isang milestone ng proyekto ay nakakamit. Ang sandali kung kailan sinusuri ng koponan ang mga resulta nito ay maaaring ituring na isang milestone ng proyekto. Nangangahulugan ito na ang pamamaraan ay nagpapahiwatig na ang mga pangunahing tampok ay inilabas sa unang yugto, at ang mga pagdaragdag ay idinagdag sa mga kasunod na yugto.

Mga kalamangan:

  • ginagawang posible na harapin ang pagbabago ng mga gawain, kapwa mula sa customer at mga pagbabago na lumitaw sa kurso ng trabaho;
  • tinitiyak ang patuloy na pagpapabuti ng produkto. Sa panahon ng mga pag-ulit, maaari mong suriin nang mabuti ang proyekto;
  • ginagawang posible upang matukoy at maalis ang mga panganib sa mga unang yugto ng trabaho, gayundin ang epektibong kontrolin ang kalidad ng pag-unlad.

Cons:

  • Ang pamamaraang ito ay medyo kumplikado at mahirap ipatupad sa isang maliit na pangkat o kumpanya;
  • depende sa kakayahan ng mga eksperto na magtakda ng mga gawain;
  • nangangailangan ng labis na dokumentasyon ng mga kinakailangan.

Para kanino ito?

Malaking proyekto na may malinaw na itinatag na mga kinakailangan at panganib na naiintindihan nang mabuti, kapag ang produkto ay kailangang ilabas sa lalong madaling panahon. Kahit na sa kapinsalaan ng pag-andar, upang mabilis na sakupin ang iyong angkop na lugar at sa paglaon ay idagdag ang mga pagtatapos.

Mayroong maraming mga pamamaraan, ngunit isang trend

Bilang karagdagan sa scrum at Kanban, na hindi maikakailang popular at batay sa maliksi na mga prinsipyo , pati na rin ang matibay, umuulit na pamamaraan ng RUP, ang mga kumpanya ay gumagamit ng maraming mga pagkakaiba-iba ng mga pamamaraan. Ang isang kumpanya ay maaaring mas malapit sa matinding programming at paggawa ng pinakamabilis at pinakasimpleng desisyon. Ang isa pa ay maaaring mas malapit sa pag-unlad na hinimok ng pagsubok. Ang isa pa ay maaaring mas gusto ang mabilis na pag-unlad ng aplikasyon (RAD). Iyon ay sinabi, mayroong isang malakas, hindi mapag-aalinlanganan na kalakaran patungo sa paggamit ng maramihang mga pamamaraan nang sabay-sabay. O kahit na pagsasama-sama ng mga modelo at pamamaraan sa isang natatanging sistema ng pamamahala. Ang mga kumpanya ngayon ay nagsusumikap na alisin ang mga burukratikong hadlang at lumikha ng isang kapaligiran ng pinag-isang pagtutulungan ng magkakasama sa loob ng organisasyon, nang hindi nagbabago ng responsibilidad sa pagitan ng mga departamento at mga yunit ng organisasyon. Ayon sa Scrum Alliance, 70% ng mga kumpanya ng IT ay gumagamit ng scrum. Kabilang sa mga ito ang mga higante tulad ng Google, Amazon, Salesforce, Microsoft, at Adobe. Ang mga startup at mga batang proyekto ay mas nakakiling sa Kanban, ngunit ang Toyota at, halimbawa, ang mga manlalaro sa Wargaming, ay gumagamit din nito. Ang Scrum ay isang tool sa pagpaplano, habang ang Kanban ay para sa pagsubaybay sa pag-unlad. Tulad ng para sa RUP, ito ay kadalasang ginagamit ng mga kumpanya sa Kanluran na may 50-200 empleyado at mga kita na $1-10 milyon. Gayunpaman, binago ng IBM ang RUP upang mas mapalapit sa mga prinsipyong maliksi, na inilabas ang pamamaraang OpenUP (RUP, ngunit maliksi). Ang ipinagmamalaki na maliksi na pamamaraan na ito ay nagtutulak ngayon sa mundo ng IT . Ito ay hindi lamang isang lumilipas na uso — ito ay makabago pa rin, at sa katunayan ito ay ginagamit sa maraming malalaking kumpanya. Ang maliksi ay ginagamit sa Silicon Valley. Ginagamit ito ng Facebook at Uber.

Ang ilalim na linya

Ang bawat proyekto ay may sariling pamamaraan ng pagbuo ng software, na nakasalalay sa koponan, pagpopondo, mga deadline, at mga kinakailangan ng customer. Walang unibersal na pamamaraan ng pamamahala: kahit na ang napakasikat na maliksi na pamamaraan ay hindi masisiguro ang pinakamahusay na diskarte sa proseso ng pag-unlad. Bilang resulta, ang mga pamamaraan ay maingat na pinili, kung minsan kahit na sa prinsipyo. Kaya't maaari tayong gumawa ng mga konklusyon tungkol sa isang kumpanya mismo o tungkol sa mga customer nito sa pamamagitan ng pagtingin sa pamamaraan nito. Ang mga pamamaraan ay pinaghalo, dinagdagan ng mga modelo, at iniangkop. Kaya magkano na sila ay nagbibigay ng mga bagong diskarte. Iyon ay sinabi, ang pamamahala sa kaharian ay nananatili sa mga kamay ng scrum at Kanban, na may mga hindi inaasahang elemento ng modelo ng waterfall o ang umuulit na pamamaraan ng RUP.
Higit pang pagbabasa:
Mga website: Mga Aklat:
  • Andrew Stelman, Jennifer Greene: "Pag-aaral ng Agile";
  • Bawat Kroll, Bruce MacIsaac: «Ang Agility and Discipline Made Easy: Practices from OpenUP and RUP";
  • Mike Cohn: "Pagtatagumpay sa Agile: Software Development Gamit ang Scrum";
  • Robert C. Martin: "Agile Software Development: Principles, Patterns, Practices";
  • Marcus Hammarberg, Joakim Sunden: "Kanban in Action";
  • I. Jacobson, G. Booch, J. Rumbaugh: "Pinag-isang Proseso ng Pag-develop ng Software".
Mga komento
TO VIEW ALL COMMENTS OR TO MAKE A COMMENT,
GO TO FULL VERSION