JavaRush /Java Blog /Random-TL /Lahat ng kailangan mong malaman tungkol sa mga pamamaraan...

Lahat ng kailangan mong malaman tungkol sa mga pamamaraan ng pag-develop 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 kailangan ng IT na magsalita sa wika ng pag-optimize, pagpaplano at pagkalkula. Lahat ng kailangan mong malaman tungkol sa mga pamamaraan ng pagbuo ng software: mga uso, mga prinsipyo at mga pitfalls para sa mga nagsisimula - 1Ang pag-unawa sa mga konsepto ng pamamahala ay nagbibigay ng malaking kalamangan sa parehong mga tagapag-empleyo at mga developer at tumutulong sa pagkuha ng pakikipagtulungan sa susunod na antas.

Tandaan para sa mga nagsisimula: mga modelo, pamamaraan at pangkalahatang pagkalito

Isang mahalagang paglilinaw upang magsimula sa: may mga hiwalay na modelo para sa pagbuo ng software at hiwalay na pamamaraan para sa mismong pag-unlad na ito. Ang mga modelo ay hinuhulaan ang hinaharap na gawi ng isang sistema. Kailangan ang mga pamamaraan para gumana ang system sa paraang kailangan nito. Ang nakakalito na mga modelo at pamamaraan ng pagbuo ng software ay ang sagradong gawain ng bawat nagsisimula sa IT, kaya hindi ito itinuturing na isang malaking pagkakamali. Gayunpaman, ang mga modelo ay classic cascading Waterfall , na may linearity, malinaw na setting ng layunin para sa bawat yugto at mahigpit na kontrol sa mga deadline. Ang mga modelo ay Spiral , na nakatuon sa maagang pagkilala at pagpapagaan ng mga panganib sa proyekto. Ang pag-unlad ng spiral ay nagsisimula sa isang maliit na antas, unang paglutas ng mga lokal na problema, at pagkatapos ay mas kumplikado. Ang huling modelo ay IID , na naghahati sa ikot ng buhay ng proyekto sa isang pagkakasunod-sunod ng mga pag-ulit, na ang bawat isa ay kahawig ng isang "mini-proyekto." Sa pangkalahatan, ang isang modelo ay isang bagay na naglalarawan sa proseso ng pagbuo ng software . Ngunit ang mga pamamaraan ay mga sistema para sa kontrol, pagsusuri at pagsubaybay ng trabaho sa mga nakatalagang gawain. Ang mga metodolohiya ay ang karot at stick ng modernong pag-unlad, na kinakailangan upang kontrolin ang bawat link ng proseso ng pag-unlad. Ang mga ito ay pinili batay sa direksyon ng proyekto, ang badyet nito at ang tiyempo ng huling produkto. Bukod dito, ang mga pamamaraan ay maaaring mapili batay sa ugali ng tagapamahala ng proyekto at ng kanyang koponan. Kahit na batay sa pilosopiya ng kumpanya o ng customer. Tingnan natin ang pinakasikat na mga pamamaraan.

1. Pamamaraan ng scrum

Ang scrum ay isang maliksi na pamamaraan ng pamamahala ng proyekto . Ito ay batay sa "mga sprint" - maikling pag-ulit, mahigpit na limitado sa oras (karaniwan ay 2-4 na linggo). Ang tagal ng mga pagpupulong ay binabawasan sa pinakamaliit, ngunit ang kanilang dalas ay tumataas. Ang bawat sprint ay binubuo ng isang listahan ng mga gawain hanggang sa katapusan ng pag-ulit, at bawat isa sa kanila ay may sariling "timbang". Sa mga pagpupulong, tinatalakay ng pangkat kung sino ang gumawa ng ano, ano ang kanilang gagawin, at kung anong mga problema ang mayroon. Gumagamit ang Scrum ng sprint journal para sa pagpaplano. Sa diskarteng ito, madalas na lumilitaw ang isang Scrum master sa koponan, na nagtatatag ng tuluy-tuloy na gawain ng buong koponan, na lumilikha ng mga komportableng kondisyon para dito. Gayundin sa proyekto, lumilitaw ang papel ng May-ari ng Produkto - ang tagapamahala ng pag-unlad, ang taong sumusubaybay sa produkto at nagsisilbing pangunahing link sa pagitan ng kahilingan ng kliyente at resulta ng koponan.

Mga kalamangan:

  • mabilis na paglulunsad ng proyekto na may pinakamababang posibleng badyet;
  • araw-araw na pagsubaybay sa pag-unlad ng trabaho, madalas na pagpapakita ng proyekto;
  • ang kakayahang gumawa ng mga pagbabago habang umuusad ang proyekto.

Minuse:

  • kahirapan sa pagtatapos ng mga kontrata dahil sa kakulangan ng isang nakapirming badyet;
  • hindi gumagana sa mababang kwalipikasyon ng pangkat, minamaliit ang mga deadline sa trabaho o badyet;
  • ang kakayahang patuloy na gumawa ng mga pagbabago sa pagitan ng mga sprint ay maaaring lumikha ng kalituhan.

Kanino ito angkop para sa:

Ang sistemang ito ay angkop para sa mga proyekto ng hanggang sampung tao - independiyente o sa loob ng malalaking kumpanya. Ito ay maginhawa kung ang koponan ay may malaking dami ng trabaho at isang mahabang ikot ng buhay, na pinipilit silang magbago at umangkop sa mga bagong kondisyon ng merkado.

2. Pamamaraan ng Kanban

Ang pinakamahalagang tampok ng Kanban ay ang visualization ng ikot ng buhay ng proyekto . Ang mga column ay nilikha para sa pagkumpleto ng mga gawain na isa-isang isinumite. Ang mga column ay minarkahan ng mga marker tulad ng: To do, In progress, Code review, In testing, Done (ang mga pangalan ng column, siyempre, ay maaaring magbago). Ang layunin ng bawat miyembro ng pangkat ay bawasan ang bilang ng mga gawain sa unang hanay. Ang Kanban na diskarte ay nakikita at tumutulong sa iyong maunawaan kung nasaan ang problema. Ang istruktura ng Kanban ay hindi tiyak at hindi mababawi: depende sa mga detalye ng proyekto, maaaring magdagdag ng mga improvised na column. Halimbawa, ang ilang mga koponan ay gumagamit ng isang sistema kung saan kailangan nilang tukuyin ang pamantayan para sa pagiging handa ng isang gawain bago ito isagawa. Pagkatapos ay idinagdag ang dalawang hanay - tukuyin (tukuyin ang mga parameter) at isagawa (magtrabaho).

Mga kalamangan:

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

Minuse:

  • hindi gumagana sa mga pangkat na higit sa limang tao;
  • hindi inilaan para sa pangmatagalang pagpaplano;
  • hindi angkop para sa pagtatrabaho sa isang pangkat nang walang pagganyak. Sa Kanban, walang mga deadline na itinakda para sa bawat gawain, at ang pamamaraan ay hindi nagbibigay ng mga parusa para sa pagkaantala.

Kanino ito angkop para sa:

Ang Kanban ay mahusay na gumagana sa mga kumpanya kung saan ang koponan ay motibasyon na bumuo at makamit ang mga resulta. Tulad ng nakikita na, isang maliit na koponan. Marahil kahit isang dibisyon o bahagi ng isang koponan.

3. Pamamaraan ng 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 magkaroon ng pansamantala ngunit gumaganang bersyon ng proyekto. Kasama sa RUP ang paghahati ng proyekto sa apat na yugto , kung saan ang bawat isa ay ginagawa sa isang bagong henerasyon ng produkto: ang yugto ng pagsisimula ng proyekto, pagpipino, pagtatayo at pagpapatupad. Sa pagtatapos ng yugto, isang marker ng pagkumpleto ng yugto (Project Milestone) ang ipinasok. Ang Project Milestone ay maaaring isaalang-alang ang sandali kung kailan sinusuri ng pangkat ang mga resultang nakamit. Bilang resulta, 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:

  • nagbibigay-daan sa iyo upang makayanan ang pagbabago ng mga gawain na nagmumula sa parehong kliyente at sa mga nangyayari sa kurso ng trabaho;
  • tinitiyak ang patuloy na pagpapabuti ng produkto. Sa panahon ng mga pag-ulit, ang disenyo ay maaaring masuri;
  • nagbibigay-daan sa iyo na kilalanin at alisin ang mga panganib sa mga unang yugto ng trabaho, pati na rin ang epektibong kontrolin ang kalidad ng pag-unlad.

Minuse:

  • isang medyo kumplikadong pamamaraan na mahirap ipatupad sa isang maliit na koponan o kumpanya;
  • pag-asa sa kakayahan ng mga eksperto na magtakda ng mga gawain;
  • nangangailangan ng labis na dokumentasyon ng mga kinakailangan.

Kanino ito angkop para sa:

Mga malalaking proyekto na may malinaw na tinukoy na mga kinakailangan at tinukoy na mga panganib, kapag ang produkto ay kailangang ilabas sa lalong madaling panahon. Kahit na sa gastos ng pag-andar, upang mabilis na sakupin ang angkop na lugar nito at pagkatapos ay pinuhin ang mga nuances.

Maraming mga pamamaraan, isang kalakaran

Bilang karagdagan sa hindi maikakaila na sikat na Scrum at Kanban, na nakabatay sa mga prinsipyo ng flexibility sa ilalim ng pangkalahatang pangalang "Agile" , pati na rin ang matiyagang umuulit na RUP, gumagana ang mga kumpanya sa maraming mga pagkakaiba-iba ng mga pamamaraan. Ang ilang mga tao ay mas gusto ang matinding programming at paggawa ng pinakamabilis at pinakasimpleng mga desisyon, ang ilan ay mas gusto ang test-driven na pag-unlad, at ang iba ay mas gusto ang rapid application development (RAD). Kasabay nito, ang pangunahing at walang kondisyong kalakaran ay ang paggamit ng ilang mga pamamaraan nang sabay-sabay . O kahit na pagsasama-sama ng mga modelo at pamamaraan sa isang natatanging sistema ng kontrol. Lahat ng kailangan mong malaman tungkol sa mga pamamaraan ng pagbuo ng software: mga uso, prinsipyo at mga pitfalls para sa mga nagsisimula - 2Ang mga modernong kumpanya ay nagsusumikap na alisin ang mga burukratikong hadlang at lumikha ng isang kapaligiran ng pangkalahatang pagtutulungan ng magkakasama sa loob ng organisasyon, nang hindi nagbabago ng responsibilidad sa pagitan ng mga departamento at mga bloke. Ayon sa ulat ng Scrumalliance , 70% ng mga kumpanya ng IT ay gumagamit ng Scrum. Kabilang sa mga ito ang mga higante tulad ng Google, Amazon, Salesforce, Microsoft, Adobe. Ang mga startup at mga batang proyekto ay mas hilig sa Kanban, ngunit ginagamit din ito ng Toyota at, halimbawa, mga manlalaro mula sa Wargaming. Ang mas katamtamang mga kumpanya ng CIS na Prom.ua, Bigl.ua, Kabanchik.ua ay gumagamit ng mga pamamaraan ng Scrum at Kanban nang sabay-sabay, ngunit para sa iba't ibang mga gawain. Scrum - bilang isang tool sa pagpaplano, Kanban - para sa pagsubaybay sa pag-unlad ng trabaho. Tulad ng para sa RUP, ito ay kadalasang ginagawa ng mga kumpanya sa Kanluran na may 50-200 empleyado at kita na 1-10 milyong dolyar. Ngunit kasabay nito, binago ng IBM ang RUP upang lumapit sa mga prinsipyo ng Agile sa pamamagitan ng paglabas ng pamamaraan ng OpenUP - "RUP, agile lamang." Ang parehong ipinagmamalaki na Agile agility ay namumuno na ngayon sa IT landscape . Ito ay hindi lamang isang uso ngayon - ito ay makabago pa rin, at ito ay talagang gumagana sa maraming malalaking kumpanya. Ang Agile ay ginagamit sa Silicon Valley at ginagamit ng Facebook at Uber.

Bottom line

Ang bawat proyekto ay may sariling pamamaraan ng pagbuo ng software, depende sa koponan, pagpopondo, timing at mga kinakailangan ng customer. Walang unibersal na teknolohiya sa pamamahala: kahit na ang sikat na sikat na Agile ay hindi makapagbibigay ng pinakamahusay na diskarte sa proseso ng pag-unlad. Samakatuwid, ang pamamaraan ay pinili nang maingat, at kung minsan kahit na sa panimula. Kaya't maaari mong gamitin ito upang makagawa ng mga konklusyon tungkol sa kumpanya mismo o sa mga customer nito. Ang mga pamamaraan ay halo-halong, dinagdagan ng mga modelo at iniangkop upang umangkop sa kanilang sarili. Kaya magkano na sila ay nagbibigay ng mga bagong diskarte. Bagama't sa huli ang pamamahala ay nananatili sa mga kamay ng Scrum at Kanban, na may hindi inaasahang pagsasama ng Waterfall model o iterative RUP.
Kung anu-ano pang babasahin
Mga website: Mga Aklat:
  • Andrew Stelman, Jennifer Greene: "Pag-aaral Maliksi";
  • Ayon kay Kroll, Bruce MacIsaac: “Madali ang Liksi at Disiplina: Mga Kasanayan mula sa OpenUP at RUP”;
  • Mike Cohn: Scrum. Maliksi na pag-unlad";
  • Robert K. Martin: “Mabilis na pagbuo ng software. Mga prinsipyo, halimbawa, kasanayan";
  • Markus Hammarberg, Joakim Sundén: “Kanban in Action”;
  • Isang Jacobson, G. Booch, J. Rumbaugh: "Isang Pinag-isang Proseso ng Pag-develop ng Software."
Mga komento
TO VIEW ALL COMMENTS OR TO MAKE A COMMENT,
GO TO FULL VERSION