Organisasi alur kerja ing tim ing proyek IT

Halo kanca-kanca. Cukup asring, utamane ing outsourcing, aku ndeleng gambar sing padha. Kurang alur kerja sing jelas ing tim ing macem-macem proyek.

Sing paling penting yaiku programer ora ngerti carane komunikasi karo pelanggan lan siji liyane. Carane mbangun proses terus-terusan ngembangaken produk kualitas. Cara ngrancang dina kerja lan sprint.

Lan kabeh iki pungkasane nyebabake tenggat wektu sing rusak, lembur, pertengkaran terus-terusan babagan sapa sing kudu disalahake, lan rasa ora puas pelanggan - ing endi lan kepiye kabeh obah. Cukup asring, kabeh iki nyebabake owah-owahan programer, lan malah kabeh tim. Mundhut pelanggan, rusake reputasi lan liya-liyane.

Ing sawijining wektu, aku mung entuk proyek kasebut, sing ana kabeh kesenengan kasebut.

Ora ana sing pengin tanggung jawab kanggo proyek kasebut (pasar layanan gedhe), omset kasebut elek, pelanggan mung nyuwek lan mbuwang. CEO piye wae nyedhaki kula lan ngandika sing duwe pengalaman perlu, supaya sampeyan duwe kertu ing tangan. Njupuk proyek kanggo dhewe. Yen sampeyan meneng, kita bakal nutup proyek lan kick everyone metu. Iku bakal dadi, bakal kelangan, banjur mimpin lan berkembang minangka sampeyan ndeleng pas. Akibaté, aku dadi pimpinan tim ing proyek kasebut lan kabeh ana ing pundhakku.

Wangsulan: Bab ingkang pisanan aku nindakake iku ngrancang alur kerja saka awal sing cocog sesanti ing wektu lan nulis gambaran proyek kanggo tim. Ngleksanakake iku ora gampang. Nanging ing endi wae ing sasi kabeh wis rampung, pangembang lan klien wis biasa, lan kabeh dadi tenang lan nyaman. Kanggo nuduhake tim yen iki ora mung badai ing kaca, nanging cara nyata metu saka kahanan, aku njupuk tanggung jawab maksimum, mbusak tumindake ora nyenengake saka tim.

Setaun setengah wis liwati, lan proyek kasebut berkembang tanpa lembur, tanpa "balapan tikus" lan kabeh jinis stres. Sapa wae ing tim lawas ora pengin kerja kaya ngono lan kiwa, sebaliknya, ana sing nemoni manawa aturan sing transparan katon. Nanging minangka asil, kabeh wong ing tim motivasi banget lan ngerti proyek gedhe kanthi lengkap, kanthi ngarep lan mburi. Kalebu basis kode lan kabeh logika bisnis. Malah wis teka ing titik sing kita ora mung "dayung", nanging kita dhewe teka munggah karo akeh proses bisnis lan fitur anyar sing bisnis seneng.

Thanks kanggo pendekatan iki ing pihak kita, pelanggan mutusake supaya pasar liyane saka perusahaan kita, yaiku kabar apik.

Awit iki bisa digunakake ing proyekku, bisa uga bisa mbantu wong liya. Dadi, proses kasebut dhewe, sing mbantu kita nyimpen proyek kasebut:

Proses kerja tim ing proyek "Proyek favoritku"

a) Ing proses tim (antarane pangembang)

  • Kabeh tugas digawe ing sistem Jira
  • Saben tugas kudu diterangake okehe, lan nindakake strictly siji tumindak.
  • Fitur apa wae, yen cukup rumit, dipecah dadi akeh tugas cilik
  • Tim nggarap fitur minangka tugas siji. Pisanan, kita nindakake siji fitur bebarengan, menehi kanggo testing, banjur njupuk sabanjuré.
  • Saben tugas diwenehi label kanggo backend utawa frontend
  • Ana jinis tugas lan kewan omo. Sampeyan kudu nemtokake kanthi bener.
  • Sawise tugas rampung, ditransfer menyang status review kode (panyuwunan narik digawe kanggo kolega)
  • Sing ngrampungake tugas kasebut langsung nglacak wektu kanggo tugas iki
  • Sawise mriksa kode kasebut, PR disetujoni lan sawise iku, sing nindakake tugas iki kanthi mandiri nggabungake menyang cabang master, lan banjur ngganti status dadi siap kanggo penyebaran menyang server dev.
  • Kabeh tugas sing siap dikirim menyang server dev disebarake dening pimpinan tim (bidang tanggung jawabe), kadhangkala anggota tim, yen ana sing penting. Sawise panyebaran, kabeh tugas saka siap kanggo panyebaran menyang dev ditransfer menyang status - siap kanggo testing ing dev
  • Kabeh tugas dites dening pelanggan
  • Nalika customer wis dites tugas ing dev, pindhah menyang status siap kanggo penyebaran prajurit kanggo produksi.
  • Kanggo penyebaran menyang produksi, kita duwe cabang kapisah ing ngendi kita nggabungake master sadurunge penyebaran
  • Yen sajrone nyoba, pelanggan nemokake bug, banjur bali tugas kanggo revisi, nyetel status bali kanggo revisi. Iki carane kita misahake tugas anyar saka sing durung dites.
  • Akibaté, kabeh tugas pindhah saka nggawe nganti rampung: Kanggo Nindakake → Ing Pangembangan → Review Kode → Siap pasang menyang dev → QA ing dev → (Bali menyang dev) → Siap nyebarake menyang prod → QA ing prod → Rampung
  • Saben pangembang nguji kode kasebut kanthi mandiri, kalebu minangka pangguna situs kasebut. Ora diijini kanggo nggabungake cabang karo sing utama, kajaba iku dikenal kanggo tartamtu sing kode bisa.
  • Saben tugas duwe prioritas. Prioritas disetel dening pelanggan utawa pimpinan tim.
  • Pangembang nindakake tugas prioritas dhisik.
  • Pangembang bisa nemtokake tugas kanggo saben liyane yen macem-macem kewan omo ditemokake ing sistem utawa siji tugas kasusun saka karya sawetara spesialis.
  • Kabeh tugas sing digawe pelanggan dikirim menyang pimpinan tim, sing ngevaluasi lan njaluk pelanggan kanggo ngrampungake utawa menehi salah sawijining anggota tim.
  • Kabeh tugas sing wis siyap disebarake menyang dev utawa prod uga menyang pimpinan tim, sing kanthi mandiri nemtokake kapan lan kepiye cara nyebarake. Sawise saben penyebaran, pimpinan tim (utawa anggota tim) kudu menehi kabar marang pelanggan babagan iki. Lan uga ngganti status kanggo tugas siap kanggo testing ing dev / prod.
  • Saben dina ing wektu sing padha (kita duwe ing 12.00) kita nganakake rapat umum antarane kabeh anggota tim
  • Kabeh wong ing rapat umum laporan, kalebu pimpinan tim, apa sing ditindakake wingi, apa sing direncanakake dina iki. Apa ora bisa lan ngapa. Mangkono, kabeh tim ngerti sapa sing nindakake apa lan ing tahap apa proyek kasebut. Iki menehi kesempatan kanggo prédhiksi lan nyetel, yen perlu, perkiraan lan tenggat wektu.
  • Ing rapat kasebut, pimpinan tim uga ngumumake kabeh owah-owahan ing proyek kasebut lan tingkat bug saiki sing ora ditemokake dening pelanggan. Kabeh kewan omo diurutake lan ditugasake kanggo saben anggota tim kanggo ngatasi.
  • Ing rapat umum, pimpinan tim menehi tugas kanggo saben, kanthi nganggep beban kerja pangembang saiki, tingkat latihan profesional, lan uga nganggep jarak tugas tartamtu karo apa sing saiki ditindakake pangembang.
  • Ing rapat kasebut, pimpinan tim ngembangake strategi umum kanggo arsitektur lan logika bisnis. Sawise iku, kabeh tim ngrembug babagan iki lan mutusake apa bakal nggawe pangaturan utawa nggunakake strategi iki.
  • Saben pangembang nulis kode lan mbangun algoritma kanthi mandiri ing arsitektur tunggal lan logika bisnis. Saben uwong bisa nyatakake visi implementasine, nanging ora ana sing meksa sapa wae supaya nindakake kanthi cara iki lan ora liya. Saben keputusane dibenerake. Yen ana solusi sing luwih apik, nanging saiki ora ana wektu, banjur tugas digawe ing lemak, kanggo refactoring mangsa saka bagean tartamtu saka kode.
  • Nalika pangembang njupuk tugas, dheweke pindhah menyang status pangembangan. Kabeh komunikasi babagan klarifikasi tugas karo pelanggan ana ing pundhak pangembang. Pitakonan teknis bisa dijaluk menyang pimpinan tim utawa kolega.
  • Yen pangembang ora ngerti inti saka tugas, lan customer ora bisa nerangake sensibly, banjur nerusake kanggo tugas sabanjuré. Lan pimpinan tim njupuk sing saiki lan ngrembug karo pelanggan.
  • Saben dina, pangembang kudu nulis ing obrolan klien babagan tugas apa sing digarap wingi lan tugas apa sing bakal ditindakake dina iki.
  • Alur kerja adhedhasar Scrum. Kabeh dipérang dadi sprint. Saben sprint suwene rong minggu.
  • Sprint digawe, diisi lan ditutup dening pimpinan tim.
  • Yen proyek kasebut duwe tenggat wektu sing ketat, mula kita nyoba ngira kabeh tugas. Lan kita ngumpulake saka wong-wong mau sprint. Yen pelanggan nyoba nambah tugas liyane menyang sprint, banjur kita nyetel prioritas, lan nransfer sawetara tugas liyane menyang sprint sabanjure.

b) Proses nggarap pelanggan

  • Saben pangembang bisa lan kudu komunikasi karo pelanggan
  • Sampeyan ora bisa ngidini customer kanggo nemtokke aturan dhewe saka game. Sampeyan perlu kanthi sopan lan grapyak kanggo nerangake marang pelanggan yen kita spesialis ing lapangan, lan mung kita kudu mbangun proses kerja lan melu pelanggan.
  • Perlu, saenipun, sadurunge nerusake implementasine fungsi apa wae, nggawe diagram alur kabeh proses logis kanggo fitur (alur kerja). Lan ngirim menyang customer kanggo konfirmasi. Iki mung ditrapake kanggo fungsi sing rumit lan ora jelas, contone, sistem pembayaran, sistem kabar, lsp. Iki bakal ngidini sampeyan ngerti kanthi luwih akurat apa sing dibutuhake pelanggan, nyimpen dokumentasi kanggo fitur kasebut, lan uga ngasuransiake dhewe marang kasunyatan manawa pelanggan bisa ujar manawa kita ora nindakake apa sing dijaluk.
  • Kabeh diagram / flowchart / logika lsp. kita nyimpen ing Confluence / Lemak, ngendi kita takon customer ing komentar kanggo konfirmasi bener saka implementasine mangsa.
  • Kita nyoba ora ngebotake pelanggan kanthi rincian teknis. Yen kita butuh pangerten babagan apa sing dikarepake pelanggan, mula kita nggambar algoritma primitif ing bentuk diagram alur sing bisa dingerteni pelanggan lan ndandani / ngowahi kabeh dhewe.
  • Yen pelanggan nemokake bug ing proyek kasebut, mula kita njaluk sampeyan njlèntrèhaké kanthi rinci ing Lemak. Ing kahanan apa kedadeyan kasebut, nalika, apa urutan tumindak sing ditindakake dening pelanggan sajrone tes. Mangga lampirake gambar.
  • Kita nyoba saben dina, maksimal saben dina liyane, kanggo nyebarke menyang server dev. Pelanggan banjur miwiti nguji fungsi kasebut lan proyek kasebut ora nganggur. Ing wektu sing padha, iki minangka tandha kanggo pelanggan manawa proyek kasebut wis rampung lan ora ana sing ngandhani dongeng.
  • Asring kedadeyan yen pelanggan ora ngerti apa sing dibutuhake. Wiwit dheweke nggawe bisnis anyar kanggo awake dhewe, kanthi proses sing durung didebug. Mulane, kahanan sing umum banget yaiku nalika kita mbuwang kabeh potongan kode menyang tong sampah lan mbentuk maneh logika aplikasi. Saka iki ora perlu kanggo nutupi kabeh kanthi tes. Iku ndadekake pangertèn kanggo nutupi mung fungsi kritis karo tes, lan banjur karo leladen.
  • Ana kahanan nalika tim nyadari yen kita ora cocog karo tenggat wektu. Banjur kita nganakake audit cepet babagan tugas kasebut, lan langsung ngandhani pelanggan babagan iki. Minangka cara metu saka kahanan, kita saranake kanggo mbukak fungsi penting lan kritis ing wektu, lan ninggalake liyane kanggo post-release.
  • Yen customer wiwit teka munggah karo tugas beda saka sirahe, wiwit fantasize lan nerangake ing driji, banjur takon marang kanggo nyedhiyani kita karo tata letak kaca lan aliran logika sing kudu njlèntrèhaké kanthi lengkap prilaku tata letak lan sawijining. unsur.
  • Sadurunge nindakake tugas apa wae, kita kudu nggawe manawa fitur iki kalebu ing syarat persetujuan / kontrak. Yen iki minangka fitur anyar sing ngluwihi persetujuan awal, mula kita kudu ngira-ngira fitur iki ((kira-kira wektu timbal + 30%) x 2) lan nuduhake menyang pelanggan manawa bakal entuk wektu akeh, ditambah deadline wis pindah kanggo wektu taksiran pingan dening loro. Ayo nggawe tugas luwih cepet - apik, kabeh wong mung bakal entuk manfaat saka iki. Yen ora, banjur kita diasuransiake.

c) Apa sing ora ditampa ing tim:

  • Inconsistency, incoherence, lali
  • "Pakan Sarapan". Yen sampeyan ora bisa ngrampungake tugas, sampeyan ora ngerti carane, sampeyan kudu langsung ngandhani pimpinan tim babagan iki, lan ora ngenteni nganti pungkasan.
  • Brovadas lan gumunggung saka wong sing durung mbuktekake kemampuan lan profesionalisme kanthi tumindak. Yen dibuktekake, mula bisa, ing wates kesopanan 🙂
  • Penipuan ing kabeh manifestasi. Yen tugas durung rampung, sampeyan ora kudu ngganti status dadi rampung lan nulis ing obrolan klien yen wis siyap. Komputer tabrakan, sistem nabrak, asu ngunyah laptop - kabeh iki ora bisa ditampa. Yen force majeure nyata, pimpinan tim kudu langsung dilaporake.
  • Nalika spesialis offline kabeh wektu lan angel tekan dheweke sajrone jam kerja.
  • Keracunan ing tim ora diidini! Yen ana sing ora setuju, mula kabeh padha nglumpuk kanggo rapat umum lan ngrembug lan mutusake.

Lan sawetara pitakonan / tesis sing kadhangkala takon pelanggan kanggo mbusak kabeh misunderstandings:

  1. Apa kritéria kualitas sampeyan?
  2. Kepiye carane nemtokake manawa proyek duwe masalah utawa ora?
  3. Nglanggar kabeh rekomendasi lan saran babagan ngganti / nambah sistem, kabeh risiko mung ditanggung sampeyan
  4. Sembarang owah-owahan proyek utama (umpamane, kabeh jinis aliran ekstra) bakal nyebabake munculna kewan omo (sing mesthi bakal kita ndandani)
  5. Ora bisa dingerteni sajrone sawetara menit apa masalah sing kedadeyan ing proyek kasebut, lan luwih-luwih kanggo ndandani ing kana.
  6. Kita nggarap aliran produk tartamtu (Tugas ing Zhira - Pangembangan - Pengujian - Deploy). Iki tegese kita ora bisa nanggapi kabeh aliran panjalukan lan keluhan ing obrolan.
  7. Programer mung programer, dudu penguji profesional, lan ora bisa njamin kualitas tes proyek sing tepat
  8. Tanggung jawab kanggo testing pungkasan lan nrima tugas ing Advertisement dumunung kabeh karo sampeyan
  9. Yen kita wis nindakake tugas, mula kita ora bisa langsung ngalih menyang wong liya nganti ngrampungake tugas saiki (yen ora, iki bakal nyebabake luwih akeh kewan omo lan nambah wektu pangembangan)
  10. Ana luwih sithik wong ing tim (amarga preian utawa lara), lan luwih akeh pakaryan lan kita ora bakal duwe wektu kanggo nanggapi kabeh sing dikarepake.
  11. Njaluk sampeyan nyebarake menyang produksi tanpa tugas sing diuji ing dev mung dadi risiko sampeyan, dudu tanggungan pangembang
  12. Yen sampeyan nyetel tugas sing kabur, tanpa aliran sing bener, tanpa tata letak desain, iki mbutuhake luwih akeh gaweyan lan wektu implementasine saka kita, amarga kita kudu nindakake karya tambahan tinimbang sampeyan.
  13. Sembarang tugas ing kewan omo, tanpa katrangan rinci babagan kedadeyan lan gambar, ora menehi kesempatan kanggo ngerti apa sing salah lan kepiye carane bisa ngetokake bug iki
  14. Proyèk kasebut mbutuhake perbaikan lan dandan sing terus-terusan kanggo nambah kinerja lan safety. Mulane, tim mbuwang sawetara wektu kanggo perbaikan kasebut.
  15. Amarga kita duwe jam lembur (mbenakake cepet), kita kudu menehi ganti rugi ing dina liyane

Minangka aturan, customer langsung mangertos sing kabeh iku ora supaya prasaja ing pembangunan piranti lunak, lan kepinginan piyambak cetha ora cukup.

Umumé, iki kabeh. Ing mburi layar, aku ninggalake akeh rembugan lan debugging awal kabeh proses, nanging minangka asil, kabeh bisa ditindakake. Aku bisa ngomong sing proses iki wis dadi jenis "Silver Bullet" kanggo kita. Wong anyar sing teka ing proyek kasebut bisa langsung ngupayakake kerja wiwit dina pisanan, amarga kabeh proses diterangake, lan dokumentasi lan arsitektur ing bentuk diagram langsung menehi ide babagan apa sing kita lakoni. kene.

PS Aku pengin njlentrehake yen ora ana manajer proyek ing sisih kita. Iku ing sisih klien. Ora teknisi. proyek Eropah. Kabeh komunikasi mung ing basa Inggris.

Good luck kanggo kabeh wong ing proyek sampeyan. Aja ngobong lan nyoba nambah proses sampeyan.

sumber ing sandi blog.

Source: www.habr.com