Ang pamamaraan ng software ay isang balangkas na ginagamit upang buuin, planuhin, at kontrolin ang proseso ng pagbuo ng isang sistema ng impormasyon. Kabilang dito ang pre-definition ng mga partikular na deliverable at artifact na ginawa at kinumpleto ng isang team ng proyekto upang bumuo o magpanatili ng isang application.
Ang pagbuo ng software ay tumutukoy sa isang hanay ng mga aktibidad sa computer science na nakatuon sa proseso ng paglikha, pagdidisenyo, pag-deploy, at pagsuporta sa software. Ang software mismo ay ang hanay ng mga tagubilin o program na nagsasabi sa isang computer kung ano ang gagawin. Ito ay independyente sa hardware at ginagawang programmable ang mga computer.
Mayroong ilang mga pangunahing bahagi na ibinabahagi ng bawat pamamaraan ng pagbuo ng software. Ang pag-unawa sa mga bahaging ito ay maaaring magbigay ng pangkalahatang balangkas para sa pagsusuri at pagpili ng mga pamamaraan.
Dalawa sa pinakakaraniwang pamamaraan ay Traditional (kilala rin bilang Waterfall) at Agile, bawat isa ay may iba't ibang diskarte sa pagbuo ng software.
Ang Waterfall model ay isang sunud-sunod na proseso ng disenyo, na ginagamit sa mga proseso ng pag-develop ng software, kung saan ang pag-unlad ay nakikita na patuloy na dumadaloy pababa (tulad ng isang talon) sa mga yugto ng Conception, Initiation, Analysis, Design, Construction, Testing, Production/Implementation, at Pagpapanatili.
Ang maliksi na pamamaraan ay isang alternatibo sa tradisyonal na pamamahala ng proyekto, na karaniwang ginagamit sa pagbuo ng software. Tinutulungan nito ang mga team na tumugon sa hindi mahuhulaan sa pamamagitan ng incremental, iterative work cadences, na kilala bilang sprints. Ang maliksi na pamamaraan ay bukas sa pagbabago ng mga kinakailangan sa paglipas ng panahon at hinihikayat ang patuloy na feedback mula sa mga end user.
Ang pagpili sa pagitan ng Agile at Tradisyunal na pamamaraan ay nakasalalay sa ilang mga kadahilanan kabilang ang saklaw ng proyekto, mga pangangailangan ng kliyente, laki ng koponan, at pamamahala ng panganib. Walang solong pamamaraan ang nakahihigit; ang pinakamahusay na diskarte ay ang isa na umaangkop sa mga partikular na pangangailangan ng proyekto.
Sa konklusyon, ang pag-unawa sa iba't ibang mga pamamaraan ng software at ang kanilang mga bahagi ay mahalaga para sa matagumpay na pagbuo ng mga proyekto ng software. Ang bawat proyekto ay maaaring mangailangan ng ibang diskarte batay sa mga partikular na pangangailangan nito. Responsibilidad ng project manager o ng development team na piliin ang pinaka-naaangkop na pamamaraan upang idirekta ang proyekto patungo sa tagumpay.