Teamwork : Kunci Utama Kerja Sama yang Efektif dengan Menggunakan Alat Bantu
Kerja sama tim sering sekali dijumpai ketika membangun sebuah aplikasi dalam dunia teknologi. Dengan demikian, setiap orang sebaiknya memiliki kemampunan untuk dapat bekerja sama dengan balik dalam sebuah tim. Kerja sama bukan hanya tentang menyelesaikan suata pekerjaan dengan bersama-sama, tetapi banyak hal yang perlu dipikirkan selama kerja sama tim berlangsung, misalnya komunikasi, koordinasi, dan kemampuan masing-masing individu dalam mengemban tugasnya dengan baik. Khususnya, pada dunia IT, kerja sama merupakan salah satu faktor kunci dalam keberhasilan sebuah proyek. Dalam mengembangkan sebuah aplikasi, diperlukan kerja sama tim yang kuat dan terorganisir dengan baik untuk memastikan bahwa setiap anggota tim berkontribusi secara maksimal dalam mencapai tujuan yang telah ditetapkan.
Kerja Sama Tim
Kerja sama tim dalam pengembangan aplikasi sangat penting karena melibatkan banyak aspek teknis dan keterampilan yang berbeda. Dalam sebuah tim pengembangan aplikasi, biasanya setiap anggota peran dan tanggung jawab masing-masing. Setiap peran dan tanggung jawab ini harus dijalankan dengan baik dan saling terintegrasi untuk mencapai tujuan pengembangan aplikasi yang telah ditetapkan. Oleh karena itu, kerja sama tim yang kuat dan terorganisir dengan baik sangat penting untuk memastikan bahwa setiap anggota tim dapat bekerja secara efektif dan produktif. Ada beberapa hal yang perlu diperhatikan dalam kerja sama tim, di antaranya adalah :
- Memiliki pemahaman yang jelas mengenai visi, misi, dan tujuan pengembangan aplikasi
- Membangun komunikasi yang baik antara anggota tim
- Membangun lingkungan kerja yang positif dan inspiratif
Alat Bantu dalam Kerja Sama Tim
Selain hal-hal yang bersifat non-teknikal, untuk membuat kerja sama tim yang efektif dan efisien alangkah baiknya Anda memanfaatkan berbagai alat bantu untuk memudahkan pekerjaan Anda. Alat bantu ini sangat berguna untuk memudahkan komunikasi dan koordinasi antar anggota tim yang Anda miliki. Apabila Anda memanfaatkan alat bantu dengan baik, pekerjaan yang diemban oleh antar anggota tim Anda pun jadi lebih mudah. Beberapa hal yang dapat Anda gunakan sebagai alat bantu di antaranya adalah :
- Scrum Board
Scrum board adalah alat visualisasi yang digunakan dalam metodologi Agile dan Scrum untuk mengelola tugas dan pekerjaan dalam proyek pengembangan perangkat lunak. Scrum board terdiri dari papan dengan kolom-kolom yang merepresentasikan tahapan pekerjaan dalam siklus pengembangan, seperti “To Do” (tugas yang harus dilakukan), “In Progress” (tugas yang sedang dikerjakan), “Code Review” (tugas yang butuh direview oleh anggota lain), dan “Done” (tugas yang telah selesai).
Setiap tugas dalam proyek pengembangan direpresentasikan oleh kartu atau sticky note yang ditempel pada Scrum board. Kartu tersebut berisi informasi tentang tugas yang harus dilakukan, siapa yang bertanggung jawab atas tugas tersebut, dan kapan tugas tersebut harus selesai. Dengan menggunakan Scrum board, tim pengembang dapat melihat dengan jelas kemajuan proyek dan mengetahui tugas-tugas mana yang harus diselesaikan berikutnya.
Sebagai contoh, visualisasi di atas merupakan scrum board yang dimiliki oleh kelompok kitasabi dalam membangun aplikasi berdonasi. Kami menggunakan JIRA untuk menyusun scrum board tersebut. Dari visualisasi di atas dapat diketahui berbagai informasi seperti tugas yang masih bbelum dikerjakan “To Do”, tugas yang sedang dikerjakan “In Development”, tugas yang sedang dalah tahap review “Code Review”, dan tugas yang telah usai “Done”. Dengan memanfaatkan Scrum board, tim Anda dapat bekerja secara terorganisir, efisien, dan terstruktur dalam mengelola tugas-tugas dalam proyek pengembangan perangkat lunak.
Selain itu, terdapat beberapa fitur lain yang dapat dimanfaatkan melalui jira. Beberapa hal di antaranya adalah :
- Backlog
Sebelum semua issue masuk pada ke scrum board, Anda perlu menambahkan issue-issue tersebut melalui backlog. Setelah issue dimasukkan melalui backlog, maka issu tersebut akan muncul melalui board
Gambar di atas merupakan issue-issue yang telah disusun oleh kelompok kita sabi
- Cummulative Flow Diagram
Diagram ini menampilkan perkembangan setiap issue yang ada pada backlog Anda. Melalui diagram tersebut, Anda dapat mengetahui bagaimana progress suatu isu beserta waktunya. Hal ini sangat memudahkan Anda dalam mengevaluasi dan menyusun waktu dari issue-issue yang telah Anda buat
Berikut merupakann CFD dari setiap issue-issue yang ada pada kelompok kami. Pada diagram tersebut Anda pun dibebaskan untuk memilih kondisi apa yang perlu ditampilan
Pada penerapannya di kelompok kitasabi, melalui grafik tersebut dapat dilihat bahwa proses lajunya setiap stage yang ada mengalami nilai konstan yang cukup memakan waktu. Hal tersebut disebabkan tidak ada nya progress dari setiap tiket yang ada. Dengan demikian, perubahan yang muncul pada grafik pun tidak berkembang secara linear. Alangkah baiknya, perkembangan dalam tiket-tiket yang ada pada scrum tersebut dapat berkembang secara pelan namun konstan dibandingkan statis dalam posisi yang lama. Pada grafik tersebut juga, dapat diketahui perkembangan tiket paling banyak ketika sprint ingin berakhir. Hal ini menandakan bahwa kebanyakan tiket dikerjakan pada akhir waktu. Selain itu, masih ditemukan beberpa bottleneck yang terjadi pada CFD kami, sebagai contoh pada sprint 1 yang berlangsung di antara awal Maret hingga 22 Maret 2023, banyak terjadi kenaikan di minggu ke 4 sprint 1 tersebut, tetapi untuk yang lainnya tidak mengalami progress apapun. Hal ini disebabkan karena anggota kami memiliki kesibukan lain selain tugas PPL ini, sehingga kami harus memecah fokus dengan tugas-tugas lainnya
Untuk mencegah hal tersebut, kita dapat melakukan beberapa hal, misalnya :
- Memberi deadline pada setiap tiket dengan waktu yang berbeda-beda
- Melakukan daily standup untuk mengetahui progress langsung dari setiap tiket (walaupun hal ini kurang relevan dengan perkembangan grafik, setidaknya kita mengetahui perkembangan dari setiap tiket yang ada)
- Issue card
Issue card berisikan informasi dari setiap issue yang ada. Beberapa informasi yang dapat ditambahkan pada issue card adalah deskripsi dan beberapa detail lainnya
2. Commits
Alat bantu lainnya yang dapat Anda manfaatkan adalah commits. Commits adalah istilah dalam pengembangan perangkat lunak yang merujuk pada perubahan atau pengembangan kode yang disimpan dalam sistem kontrol, seperti Git. Ketika Anda melakukan perubahan pada sebuah kode, Anda dapat melakukan commit untuk menyimpan perubahan tersebut ke dalam repositori yang Anda miliki. Selain itu, commits menyediakan cara untuk mengelola perubahan pada kode dalam sebuah repositori. Setiap commit diidentifikasi oleh sebuah id yang menggambarkan setiap perubahan kode. Informasi tambahan, seperti pesan commit yang dijelaskan oleh pengembang, juga dapat disertakan dalam setiap commit. Hal yang penting inilah yang Anda harus lakukan pada anda melakukan commits kode Anda, yaitu memberi pesan pada setiap commit yang Anda lakukan. Pesan yang Anda buat harus informatif dan jelas, hal ini untuk mencegahkesalahpahaman dari anggota Anda ketika memahami kode yang Anda buat. Dengan demikia, anggota tim Anda dapat dengan mudah memahami maksud kode yang Anda push ke repositori.
Sebagai contoh, gambar di atas merupakan beberapa pesan commit yang saya kumpulkan pada repository milik kelompok kami. Dengan memberi label RED, GREEN, dan REFACTOR, anggota kelompok saya dapat memahami secara umum kode yang saya push. Setiap label pun memiliki arti, seperti “RED” (Membuat test), “GREEN” (Membuat implementasi), dan “REFACTOR” (Melakukan refactoring code). Setelah label pun, saya menjelasakan secara singkat apa maksud kode yang saya buat
3. Merge Request
Alat bantu terakhir yang dapat Anda manfaatkan adalah merge request.Merge request adalah fitur pada sistem kontrol versi, contohnya Git. Merge request memungkinkan seorang pengembang untuk menggabungkan perubahan kode dari cabang (branch) yang berbeda ke dalam cabang utama (main branch) dalam proyek. Dalam pengembangan perangkat lunak, merge request sering digunakan sebagai alat kolaborasi yang berguna untuk meninjau, menguji, dan menyetujui perubahan pada kode sumber sebelum digabungkan ke dalam cabang utama. Dengan demikian, hal tersebut dapat meminimalisir risiko bug atau gagalnya fungsionalitas program yang telah ada. Anggota tim Anda dapat memastikan terlebih dahuli sebuah permintaan penggabungan dari cabang yang Anda buat.
Dalam melakukan merge request, hal yang dapat pertama Anda lakukan adalah memilih branch yang ingin Anda gabungkan. Sebagai contoh saya ingin menggabungkan branch transaction cart yang telah saya buat ke branch staging, maka pada new merge request anda dapat memilih sumber dan tujuan branch yang dimaksud. Setelah Anda memilih branch-branch yang Anda inginkan, Anda bisa melanjutkan dengan menekan “Compare branches and continue”
Setelah itu, Anda dapat memasukan beberapa informasi terkait perubahan yang Anda lakukan pada kolom judul dan description
Lalu, Anda pun dapat memilih siapa saja reviewer dari merge request yang Anda buat dan juga approval rules yang telah disetujui kelompok Anda, misalnya setiap merge request membutuhkan 2 orang yang memberi persetujuan terhadap kode yang Anda buat. Selain itu, beberapa informasi yang dapat Anda isi adalah milestone dan labels. Terakhir, terdapat beberapa pilihan seperti menghapus source code dan menggabungkan commit. Hal-hal tersebut dapat Anda pilih sesuai persetujuan kelompok Anda di awal waktu.
Setelah Anda menyetting semua kebutuhan di atas, nantinya merge requiest Anda dapat dilihat dan juga ditinjau oleh anggota lainnya. Dengan demikian, anggota Anda pun dapat memberikan kritik atau pun saran perbaikan dari kode yang Anda buat
4. Social Media
Social media disini merupakan alat tambahan untuk berkomunikasi antar anggota tim. Anda dapat memanfaatkannya sebagai wadah komunikasi untuk koordinasi dan berdiskusi secara informal dengan anggota kelompok Anda. Selain itu, alat tersebut dapat Annda manfaatkan untuk mengenal anggota yang nantinya dapat Anda manfaatkan untuk bekerja sama dalam tim. Beberapa social media yang biasanya saya gunakan dalam berkerja sama dalam tim adalah Line dan Discord
Kesimpulan
Kemapuan bekerja sama pastinya harus dimiliki oleh setiap orang, khususnya orang yang terbiasa mendapatkan tugas ataupun proyek yang bersifat kelompok. Selain Anda perlu memahami bagaimana cara bekerja sama yang baik, Anda pun perlu memahami alat-alat bantu yang dapat memudahakan komunikasi anggota kelompok Anda sehingga komunikasi dan koordinasi lebih efisien.