Halo. Ing rong wawancara pungkasan, aku ditakoni babagan metodologi. Iki dudu pitakonan sing paling penting utawa angel, nanging luwih becik yen ana lembar ngapusi kanggo jawaban kasebut. Ing artikel iki, aku bakal nyoba menehi ide babagan metodologi pangembangan lan mbandhingake sing wis daktemu utawa ditakoni. Metodologi pangembangan piranti lunak minangka proses njlentrehake kepiye produk tartamtu bakal dikembangake, yaiku, salah sawijining cara kanggo ngatur pangembangan tim. Ana macem-macem model saka proses kuwi, saben kang njlèntrèhaké pendekatan dhewe, lan ora bisa ngandika sing ing antarane wong-wong mau ana siji sing kudu digunakake ing saben project, kabeh iku sejatine sifate kahanan. Aku propose kanggo nimbang telu mau ing liyane rinci.
grojogan
Grojogan (cascade, grojogan) minangka salah sawijining metodologi sing paling tuwa lan nuduhake implementasi sekuensial sing ketat ing kabeh tahapan, sing saben kudu rampung sadurunge sing sabanjure diwiwiti. Yaiku, transisi menyang tahap sabanjure tegese ngrampungake karya sing sadurunge. Gambar kasebut nuduhake yen pisanan kita nganalisa tugas (tugas dokumentasi, ngrembug kesulitan), banjur desain (ing tahap iki struktur proyek dibentuk), banjur coding lan testing. Ora ana mbalekaken kanggo tahap sabanjure. Disaranake nggunakake sistem kasebut ing proyek-proyek cilik sing syarat-syarat kasebut wis dingerteni sadurunge lan ora ana kemungkinan bakal diganti. Kaluwihan:- Dokumentasi lengkap lan konsisten ing saben tahap;
- Gampang nggunakake;
- syarat stabil.
- Anggaran lan tenggat wektu wis ditemtokake
- A jumlah gedhe saka dokumentasi;
- Ora sistem banget fleksibel;
- Klien ora bisa ndeleng versi demo produk;
- Ora ana cara kanggo mundur selangkah.
Scrum
Scrum minangka sistem pangembangan piranti lunak adhedhasar mbagi kabeh proses dadi iterasi, ing pungkasane saben tim siap nyedhiyakake versi demo produk kasebut. Gambar kasebut nuduhake manawa tim kasebut ngliwati kabeh tahapan pembangunan kanthi paralel, sing ngidini kita duwe bagean rampung saka proyek kasebut ing pungkasan saben pengulangan. Aku bakal nyoba kanggo njlèntrèhaké sedhela ing tembung prasaja inti saka metodologi, nanging ana akeh istilah ing kene. Aku sing paling penting yaiku ngerti inti, lan istilah kasebut bakal dielingi kanthi pengalaman. Kabeh pembangunan dipérang dadi sprint (asring 2-3 minggu). Ana backlog (dhaptar tugas) kanggo kabeh periode pangembangan lan kanggo saben sprint kanthi kapisah. Saben tugas duwe titik crita dhewe (rating kesulitan). Saben peserta ing proses kasebut nduweni peran:- Tim Scrum minangka tim sing nggarap proyek (pangembang, penguji, perancang).
- Master Scrum minangka wong sing njamin supaya prinsip Scrum ditindakake.
- Pemilik produk - pelanggan.
- Stand-up minangka rapat singkat, dianakake saben dina, kabeh anggota tim melu lan saben peserta njawab 3 pitakonan: apa sing sampeyan tindakake? Apa sing bakal ditindakake? Lan apa blockers?
- Perencanaan - dianakake ing wiwitan sprint lan ing rapat iki ditemtokake tugas apa sing kudu dirampungake ing sprint sabanjure.
- Retrospektif ditindakake ing pungkasan sprint lan intine yaiku kanggo ngerteni apa sing ditindakake kanthi apik lan apa sing bisa ditambah.
- Pelanggan bisa mirsani asil sajrone proses pangembangan.
- Kontrol saben dina babagan proses pangembangan.
- Kemampuan kanggo nggawe pangaturan sajrone pangembangan.
- Komunikasi sing mapan karo kabeh anggota tim.
- Jumlah cilik saka dokumentasi.
- Sulit kanggo ngira tenaga kerja lan biaya sing dibutuhake kanggo pembangunan
- Iku angel kanggo nemtokake bottlenecks paling gedhe sadurunge pembangunan diwiwiti.
- Keperluan kanggo melu kabeh wong ing pangembangan anggota tim liyane.
Kanban
Kanban minangka sistem sing dibangun kanggo nggambarake proses ngrampungake tugas tim. Gagasan utama ing sistem iki yaiku nyuda jumlah tugas sing saiki ditindakake (ing kolom "in progress"). Ing Scrum, tim fokus kanggo ngrampungake sprint kanthi sukses; ing Kanban, tugas luwih dhisik. Apik kanggo proyek sing ana ing tahap dhukungan, ing ngendi fungsi utama wis dikembangake lan perbaikan minimal lan perbaikan bug tetep. Ing Kanban, tugas dikirim kanthi individu. Tugas kasebut, preduli saka tugas liyane, ngliwati kabeh tahapan ing papan lan yen wis rampung, bisa ditampilake menyang pelanggan. Papan Kanban kasusun saka kolom, sing saben makili proses pangembangan sing kapisah. Sawetara kolom (contone, ing proses) nemtokke watesan ing jumlah tugas sing bisa ana. Iki mbantu kanthi gampang lan cepet nemokake wilayah masalah ing distribusi tugas. Gambar kasebut nuduhake conto papan sing prasaja. Jumlah kolom lan jeneng bisa beda-beda, nanging aku bakal menehi jeneng sing paling umum:- Kanggo nindakake - dhaptar tugas sing kudu ditindakake
- Ing proses - tugas sing saiki lagi digarap
- Review kode - tugas sing wis rampung lan dikirim kanggo review
- Ing testing - tugas siap kanggo testing
- Rampung - tugas rampung.
- Ease saka nggunakake.
- Visualisasi (mbantu nemokake bottlenecks, nyederhanakake pangerten)
- Keterlibatan tim sing dhuwur ing proses kasebut dhewe.
- Fleksibilitas dhuwur ing pembangunan.
- Dhaptar tugas sing ora stabil.
- Iku angel digunakake ing proyek jangka panjang.
- Ora ana deadline sing angel.
GO TO FULL VERSION