CodeGym /Blog Jawa /Acak /Temokake tenggat wektu sampeyan: cara sing digunakake pan...
John Squirrels
tingkat
San Francisco

Temokake tenggat wektu sampeyan: cara sing digunakake pangembang kanggo ngira gaweyan

Diterbitake ing grup
Hello, kabeh! Ana akeh teori sing sampeyan kudu ngerti kanggo miwiti pangembangan piranti lunak. Sawetara spesialis (contone, pangembang backend sing nggunakake basa Jawa lan basa liyane) luwih ngerti babagan iki, dene liyane (contone, pangembang frontend sing nggunakake JavaScript lan React Native) bisa uga kurang ngerti. Sing jarene, loro klompok kasebut kudu duwe awak sing ora mung teknis, nanging uga "organisasi". Kawruh "organisasi" iki minangka salah sawijining area tumpang tindih kanggo pangembang frontend lan backend. Temokake tenggat wektu sampeyan: cara sing digunakake pangembang kanggo ngira-ngira gaweyan - 1Dina iki aku pengin ngomong babagan aspek saka kawruh organisasi non-teknis iki. Dina iki kita bakal ngomong babagan estimasi gaweyan . Amarga aku mung duwe pengalaman nggunakake metodologi Agile(sing dianggep paling populer), luwih khusus framework Scrum, Aku bakal nimbang taksiran gaweyan ing konteks Scrum . Ing wiwitan, aku kudu ujar manawa estimasi gaweyan iku angel. Kanggo kula, iku salah siji sing paling tantangan / aspèk ora nyenengake saka proyek minangka pangembang. Ana macem-macem faktor sing kudu dipikirake sing bisa mengaruhi perkiraan sampeyan babagan usaha sing dibutuhake kanggo tugas. Kajaba iku, rencana pangembangan mbesuk bakal adhedhasar perkiraan sampeyan.

Apa yen sampeyan menehi perkiraan sing ala?

Yen pangembang ngira luwih akeh jam kanggo tugas tinimbang sing pungkasane ditindakake kanggo tugas kasebut, keahliane bisa diragukan amarga perkiraan kasebut ora akurat. Ing tembung liyane, iku guess alam bébas. Ing wektu sing padha, yen pangembang ora ngrampungake karya ing wektu sing diramalake, dheweke bakal mbebayani rencana pelanggan kanggo ngeculake produk utawa fitur anyar. Iki bisnis, lan bisnis iku dhuwit. Sawetara pelanggan bakal seneng karo slip kasebut. Nyatane, mulane aku ora seneng ngira - amarga kadhangkala angel banget kanggo nemtokake wektu sing dibutuhake kanggo ngrampungake tugas.

Carane nggawe prakiraan wektu

Minangka aturan, prakiraan digawe ing jam utawa titik crita. Preferensi pribadiku yaiku nindakake proses estimasi nggunakake titik crita . Pancen angel disalahake babagan obyek fisik konkrit, nanging titik-titik crita rada abstrak. Tim pangembang piranti lunak biasane menehi perkiraan minangka jumlah wektu: jam, dina, minggu, sasi. Perkiraan wektu iki adhedhasar pengalaman pribadi, guesswork, lan / utawa intuisi. Ing kasus iki, pangembang mung ndeleng tugas kasebut lan nyatakake asumsi babagan wektu sing bakal ditindakake. Akibaté, prakiraan iki arang banget akurat, amarga ana akeh banget faktor sing bisa mengaruhi durasi karya. Mulane akeh tim sing nggunakake metodologi Agile uga nggunakake titik crita. Ayo nyilem!

Apa titik crita?

Titik crita minangka unit pangukuran kanggo nyatakake perkiraan total gaweyan sing dibutuhake kanggo ngetrapake fungsi tartamtu kanthi lengkap. Sing, kita ngomong babagan relatifkerumitan. Tim menehi taksiran ing titik crita adhedhasar kerumitan karya, volume karya, lan risiko utawa kahanan sing durung mesthi. Nilai-nilai kasebut biasane ditugasake supaya luwih efisien mbagi karya dadi potongan-potongan sing luwih cilik, saéngga ngilangi ambiguitas. Suwe-suwe, iki mbantu tim ngerti apa sing bisa ditindakake sajrone wektu tartamtu lan mbantu dheweke ngrancang potongan-potongan kerja sing luwih akurat. Iki bisa uga ora cocog karo sampeyan, nanging abstraksi iki pancen praktis: nyurung tim nggawe keputusan sing angel babagan kerumitan karya. Ayo goleki sawetara alasan kanggo nggunakake titik crita nalika ngrancang:
  • Sampeyan bisa ngindhari perkiraan wektu sing ora akurat.
  • Ora kaya perkiraan sing digawe ing unit wektu, titik crita ngidini sampeyan ngitung biaya overhead: komunikasi antarane anggota tim lan pelanggan, macem-macem diskusi tim lan kegiatan perencanaan, uga kahanan sing ora dikarepake.
  • Saben tim bakal ngira-ngira karyane nggunakake skala sing beda-beda, tegese kapasitase (diukur kanthi poin) bakal beda.
  • Kanthi nemtokake skala kanggo nemtokake saben titik crita, sampeyan bisa kanthi cepet nemtokake titik tanpa akeh kontroversi.

Carane ora nggunakake titik crita

Sayange, titik crita asring disalahake. TCTerms crita bisa mblusukake nalika digunakake kanggo netepke wong, netepake tenggat wektu rinci lan sumber daya, lan nalika lagi mistaken kanggo ukuran kinerja. Nanging, tim kudu digunakake kanggo ngerti ruang lingkup / kerumitan saben tugas lan nyetel prioritas. Mbok menawa bagean sing dianggep luwih angel kudu ditangani dhisik, supaya bisa rampung sadurunge pungkasan sprint , bisa uga nggeser tugas sing luwih gampang menyang mengko. Ayo kula ngelingake sampeyan apa sprint ing konteks metodologi Scrum :
Sprint minangka interval wektu tetep sing bisa diulang sajrone sawetara fungsi sing direncanakake ditindakake.
Suwene wektu iki ditemtokake nalika pangembangan diwiwiti lan disepakati antarane tim lan pelanggan. Iki bisa dadi periode rong minggu utawa sasi, utawa periode liyane. Minangka aturan, prakiraan gaweyan digawe ing awal saben sprint supaya bisa ngrancang karya sing bisa rampung ing pungkasan sprint, nalika karya rampung dikirim menyang customer.
Nalika karya rampung sak sprint presented kanggo customer, kita nelpon sing demo.
Tur kasebut mbantu sampeyan ndeleng kemajuan ing ngembangake produk, nampa umpan balik saka pelanggan, lan nyetel lintasan proyek miturut visi pelanggan. Nanging kita digress sethitik. Ayo bali menyang taksiran. Bakal subyektif banget yen mung siji pangembang nyedhiyakake prakiraan kanggo kabeh tugas. Dadi proses iki biasane gaweyan tim. Ana sawetara teknik sing bisa digunakake tim kanggo ngasilake perkiraan. Dina iki kita bakal katon ing technique paling populer: scrum poker . Teknik iki mbutuhake manajer sing bakal dadi moderator kanggo scrum poker . Iki bisa dadi wong sing dadi master scrum utawa bisa uga PM .

Apa Scrum poker?

Scrum poker , utawa poker planning, iku sawijining technique taksiran sing adhedhasar tekan persetujuan. Utamane digunakake kanggo ngira kerumitan karya ing ngarep utawa ukuran relatif tugas pangembangan piranti lunak. Aku bakal ngomong langsung sing scrum pokerpunika laku pembangunan lunak umum, lan sampeyan kudu ngerti apa iku kabeh babagan. Biasane kalebu app utawa situs web kanggo nggampangake nggawe kolaborasi tim kanggo ngira-ngira tugas tartamtu. Kepiye kedadeyan iki? Tim njupuk soko saka backlog (tugas anyar, sawetara fungsi) lan sedhela rembugan bisa pitfalls lan nuansa liyane gadhah. Banjur saben peserta milih kertu kanthi nomer sing nuduhake perkiraan kerumitan. Oh, siji liyane, nalika nggawe prakiraan iki, kita nggunakake nomer ing urutan Fibonacci tinimbang nomer biasa. nomer Fibonacci populer ing scrum poker, amarga ana longkangan saya gedhe antarane wong-wong mau (memper tingkat piramida). Sawetara tugas bakal rumit banget, lan kita ora bakal bisa lolos karo sawetara titik crita. Temokake tenggat wektu sampeyan: cara sing digunakake pangembang kanggo ngira-ngira gaweyan - 2Ana sawetara kertu sing ora biasa sing nduweni makna ing ngisor iki: Temokake tenggat wektu sampeyan: cara sing digunakake pangembang kanggo ngira-ngira gaweyan - 3

Nomer endpoint sing ora dingerteni

Temokake tenggat wektu sampeyan: cara sing digunakake pangembang kanggo ngira-ngira gaweyan - 4

Tugas dawa tanpa wates

Temokake tenggat wektu sampeyan: cara sing digunakake pangembang kanggo ngira-ngira gaweyan - 5

Butuh istirahat

Cara estimasi sing kurang umum digunakake:
  • Ukuran Kaos - S, M, L, XL
  • Anjing jenis - chihuahua, pug, dachshund, bulldog, lan liya-liyane (wong, aku iki unit ukuran paling aneh kanggo ngira gaweyan =D)
Tim kasebut banjur mbandhingake perkiraan sing diwenehake dening pangembang sing beda kanggo tugas sing padha. Yen padha setuju, banjur apik! Yen ora, mula alesan (argumen) kanggo taksiran sing beda-beda kudu dirembug. Sawisé iku, tim kerja sama kanggo nggawe perkiraan siji sing ditampa saben wong, luwih utawa kurang. Dadi apa poker malah digunakake kanggo rencana proyek lunak serius? Sampeyan kudu ngakoni yen iki aneh. Kasunyatane yaiku gamifikasi jinis iki nyengkuyung anggota tim supaya bisa mikir kanthi mandiri, ngajak dheweke mbukak perkiraan bebarengan karo kanca-kancane. Iki, kanthi mangkono, ngindhari kahanan ing ngendi sawetara anggota tim gumantung marang panemu wong liya. Yen ora ditindakake kanthi cara iki, pangembang sing kurang berpengalaman bakal ndeleng lan fokus marang perkiraan sing diwenehake dening anggota tim sing luwih berpengalaman, lan sing bakal nggawe taksiran dhewe kurang migunani. Nanging bebarengan nuduhake prakiraan ndadekake iki ateges mokal. Atlassian nawakakescrum poker app kanggo nggunakake ing proses planning.

Tuladha estimasi gaweyan

Upamane tim sampeyan nggawe skala ing ngisor iki kanggo menehi titik crita menyang perkiraan:
1. Apa sampeyan duwe pengalaman babagan tugas kaya iki? +1 — Aku wis nindakake tugas iki sadurunge +2 - Aku ora nindakake tugas iki, nanging nggarap tugas sing padha +3 - Aku durung nindakake tugas iki lan ora duwe pengalaman karo tindakan sing padha
2. Volume karya dibutuhake kanggo fungsi +1 - Volume cilik +2 - Volume rata-rata +3 - Volume gedhe
3. Kompleksitas ngleksanakake fungsi +1 - Gampang +2 - Rata-rata +3 - angel
4. Kompleksitas testing fungsi +1 - Gampang +2 - Rata-rata +3 - angel
Scrum poker diputer kanggo saben tugas, lan menehi prakiraan minangka nderek:
  • Sampeyan durung nate ngetrapake fungsi sing padha sadurunge: +3
  • Fungsionalitas rata-rata ukuran: +2
  • Implementasine bakal dadi rumit banget: +3
  • Tes nulis kanggo fungsi kasebut bakal rumit banget: +3
Nambahake saben komponen, sampeyan entuk total 11 crita, nanging ora ana kertu kasebut, mula sampeyan menehi saran 13. Rekan kerja menehi perkiraan ing ngisor iki kanggo tugas kasebut:
  • Dheweke wis nggarap tugas sing padha sadurunge: +1
  • Fungsionalitas rata-rata ukuran: +2
  • Implementasine bakal dadi kerumitan rata-rata: +2
  • Tes nulis kanggo fungsi kasebut bakal dadi kompleksitas rata-rata: +2
Asil penengah 7 TCTerms crita, nanging nomer sing ora ana ing seri Fibonacci, supaya ngirim kertu karo nomer paling kira-kira - 8. Anggota tim liyane uga nggawe prakiraan adhedhasar subyektif views. Banjur saben wong nuduhake kertu lan sampeyan nemokake meh kabeh rekan kerja menehi perkiraan 13, kajaba pangembang sing ngusulake 8. Ing kasus iki, dheweke diijini ngomong kanggo menehi alasan kanggo ngira sing luwih murah. Upaminipun nawakake sabdhoning iki: sadurunge makarya ing tugas padha, lan iku ora minangka angel kaya koyone. Pungkasane, dheweke ngyakinake tim liyane kanggo ngganti pikirane saka 13 dadi 8 poin crita, ujar manawa dheweke bakal nulungi sapa wae sing bakal nindakake tugas iki. Utawa mbok menawa dheweke bakal nindakake dhewe. Ing acara apa wae, ora Ora masalah apa wong liya nampa argumentasi utawa ora, amarga salah siji cara utawa liyane perkiraan bakal ditugasake kanggo tugas kasebut, lan tim bakal nerusake nimbang sing sabanjure. Kaping pisanan, prakiraan bakal ora akurat, uga perkiraan jumlah karya sing bakal ditindakake ing wektu sabanjure (sprint). Sawise kabeh, taksiran iki digawe nggunakake taksiran. Sawise sawetara wektu, bisa uga telung sasi mengko, tim bakal miwiti ngira wektu sing dibutuhake kanggo tugas kanthi luwih akurat, lan jumlah rata-rata karya sing bisa ditindakake tim ing sprint bakal katon. Nanging iki minangka proses kanggo nggawe rencana umum kanggo ruang lingkup kerja. Fokus utamane ing wektu, nanging ing kasus iki bisa uga ana akeh faktor sing cocog. Contone, umpamane pangembang lunga preian rong minggu. Sampeyan kudu ngethok sawetara karya sing direncanakake (fungsi sing direncanakake). Utawa umpamane pangembang anyar wis gabung karo tim kasebut, nanging durung rampung kanthi cepet, mula sampeyan kudu menehi wektu kanggo kenal karo proyek kasebut liwatproses onboarding . Iki bisa dadi rong minggu, menehi utawa njupuk minggu, gumantung ing kerumitan proyek. Iku kabeh kanggo dina iki! Muga-muga aku rada nambah kawruh babagan estimasi gaweyan, aspek non-teknis sing dibutuhake kanggo pangembangan piranti lunak. Yen sampeyan pengin luwih jero babagan topik iki, lan rincian scrum, aku nyaranake sampeyan maca buku "SCRUM" dening Jeff Sutherland. Aku ora bisa janji babagan akibat, amarga sawise maca sampeyan bakal duwe kepinginan sing ngganggu dadi master scrum =D
Komentar
TO VIEW ALL COMMENTS OR TO MAKE A COMMENT,
GO TO FULL VERSION