Team Work with Tools

Erick Ezrandy
4 min readMar 7, 2023

--

Sumber https://blog.privy.id/wp-content/uploads/2017/03/Selalu-Ingatkan-Visi-yang-Ingin-Dicapai-Bersama-Tim.jpg

Pernahkah kamu mendapatkan tugas kelompok dari kampus? Atau jika kamu sudah bekerja, pernahkah kamu mengerjakan proyek bersama rekan kerjamu? Jika pernah, bagaimana caramu dalam me-manage kerja sama dengan orang lain?

Dalam PPL Genap 2022/2023 ini, kelompok kami mendapatkan proyek untuk menciptakan sebuah website terkait sistem informasi penjaminan mutu. Sebelum mengerjakan proyek tersebut, kelompok kami menggunakan software Jira untuk menentukan backlog apa saja yang ada di setiap sprint-nya. Ketika sebuah sprint telah dimulai, kita bisa mengatur status dari backlog tersebut dengan cara memindahkannya ke list lain. Dalam Jira kelompok kami, list memiliki tiga kategori seperti pada gambar di bawah, yaitu To Do (akan dikerjakan), In Progress (sedang dikerjakan), atau Done (selesai). Nah, hal tersebut wajib dilakukan agar Scrum master dapat mengetahui apakah developer sedang mengalami blocker atau tidak ketika sedang mengerjakan fitur tersebut.

Jira Board

Dalam kelompok saya, backlog-backlog yang ada di setiap sprint akan dipilih oleh para developer sesuai dengan kemampuannya sehingga backlog tersebut dapat ter-develop dengan cepat. Selain menggunakan software Jira, kelompok kami juga menggunakan GitLab sebagai version control system tools. Selanjutnya, setiap developer harus mengerjakan fitur tersebut di branch masing-masing sehingga branch utama atau branch untuk production akan terbebas dari berbagai macam konflik. Nah, ketika para developer sudah yakin dengan kode yang mereka tulis, mereka bisa melakukan commit. Namun, commit yang dibuat haruslah mengikuti aturan TDD, yaitu:

  • [RED] <commit_message> dimana kita membuat unit test terlebih dahulu sehingga status pipeline akan gagal atau failed
  • [GREEN] <commit_message> dimana kita mengimplementasikan unit test yang telah dibuat sebelumnya sehingga pipeline akan sukses atau passed
  • [REFACTOR] <commit_message> dimana kita melakukan perbaikan pada kode yang sudah dibuat sebelumnya. Commit ini tidak membuat hasil test berubah menjadi failed (Red)
  • [CHORES] <commit_message> digunakan untuk implementasi yang tidak berhubungan dengan fungsionalitas (seperti penambahan asset berupa image tanpa mengubah implementasi kode)
Sedikit contoh hasil disiplin TDD

Nah, isi dari <commit_message> haruslah menggambarkan apa yang telah kita lakukan pada file tersebut. Misal, pada contoh commit di atas, saya menulis [CHORES] set path aliases in jsconfig dimana saya membuat path aliases pada file jsconfig sehingga tidak perlu meng-import file dengan menggunakan absolute path atau relative path. Selain itu, kita juga bisa menggunakan aturan ini.

Setelah para developer telah menyelesaikan pekerjaannya, mereka bisa melakukan merge request (fitur yang berada GitLab atau pull request jika menggunakan GitHub). Mengapa perlu melakukan merge request padahal kita bisa saja langsung menjalankan command git push origin <nama_branch_utama>? Hal tersebut tentunya bukanlah hal yang bagus! Dengan melakukan merge request, developer lain bisa me-review kode yang telah kita buat sehingga kita bisa mengetahui kode-kode mana saja yang masih perlu di-clean kan. Berikut cara melakukan merge request pada GitLab.

Setelah mengklik tombol Create merge request, tampilan akan berubah menjadi berikut:

Kita bisa mengatur siapa yang ingin mereview kode kita pada bagian Reviewers seperti yang dikotakin merah pada gambar di atas.

Tampilan paling bawah dari proses pembuatan Merge Request

Selanjutnya, kita klik tombol Create merge request dan terbentuklah merge request. Setelah berhasil membuat merge request, kita perlu menunggu dari developer lain untuk memberikan review. Setelah mendapatkan review, kita bisa memperbaiki bagian kode tersebut dan melakukan push lagi ke remote repository. Selanjutnya, kita bisa mengklik tombol Merge ketika semua kode sudah clean dan hasil pipeline juga passed.

Ketika mengerjakan suatu fitur, pasti ada saat dimana kita bingung dan stuck bagaimana men-develop suatu fitur. Mungkin masalah tersebut bisa diselesaikan dengan tools yang telah digunakan sebelumnya, yaitu dengan GitLab Board. Namun, pembahasan masalah tidak bisa dilakukan secara real time, bukan? Oleh karena itu, kelompok kami menggunakan Discord sebagai media komunikasi lebih lanjut.

Tampilan media komunikasi kelompok kami

Berdasarkan gambar di atas, terlihat bahwa ada section important-link yang digunakan untuk mengirim sumber-sumber yang dirasa berguna dalam pengembangan produk kelompok kami. Selain itu, terdapat section bernama General yang digunakan untuk membahas detail suatu fitur secara real time jika developer yang bertanggung jawab atas fitur tersebut mengalami stuck. Atau dengan kata lain, developer tersebut masih kurang mengerti atas penjelasan yang telah diberikan oleh developer lain di section berwarna kuning. Terakhir, section berwarna kuning digunakan untuk membahas detail suatu fitur secara tertulis. Berikut adalah salah satu contoh isi thread create-user:

Hasil diskusi tentang fitur create user

Sekian penjelasan dari saya terkait penggunaan tools pada kelompok saya. Terima kasih 😁!

--

--