Enhance Team Dynamics Through Fundamental Collaboration Tools

Rizky Juniastiar
14 min readApr 12, 2023

--

Technology is a powerful tool that can bring people together and make teamwork seamless. Embracing the right tools can simplify our lives and help us achieve more as a team.

(source)

Proses perkembangan perangkat lunak (software) adalah proses kompleks yang membutuhkan kolaborasi yang baik dari semua anggota tim yang terlibat di dalamnya. Proses komunikasi dan kolaborasi tim yang baik sangat memengaruhi kualitas produk yang dihasilkan. Kolaborasi yang baik dari tiap anggota tim menyebabkan produk dapat di-deliver dengan baik dan tepat waktu kepada client. Selain itu, dinamika tim yang baik juga dapat menghasilkan solusi produk yang dapat menjawab permasalahan client. Seiring dengan berkembangnya teknologi, terdapat beberapa tools yang dapat digunakan untuk membantu meningkatkan dinamika tim. Berikut adalah tools yang dapat digunakan untuk dapat membantu kolaborasi tim dalam proses perkembangan software.

Let’s dig in! ✨

Project Management Tools

Tim pengembangan software terdiri atas beragam role. Tiap role dan bahkan tiap individu memiliki tanggung jawab dan tugas tersendiri dalam proses perkembangan software. Project management tools adalah tools yang dapat digunakan untuk melakukan management dan tracking issues, tugas, serta tanggung jawab tiap anggota sehingga proses perkembangan software dapat lebih efektif dan efisien. Beberapa project management tools yang cukup populer digunakan saat ini adalah Gitlab Boards, Jira, Trello, dan Mavenlink.

Project management tools yang akan dibahas lebih dalam pada artikel ini adalah Gitlab Boards. Let’s dive deeper!

Gitlab Issue Boards atau yang biasa lebih dikenal dengan Gitlab Boards adalah suatu project management tools yang terdapat pada platform Gitlab yang dapat digunakan untuk melakukan perencanaan, pengorganisasian, dan visualisasi workflow dan issue dari suatu project atau product yang sedang dikembangkan.

Gitlab Issue Boards dapat diakses pada Issues > Boards yang ada pada sidebar project

Navigate to Issues Boards
  • Gitlab Boards
Gitlab Boards To Do, Doing, Done

Selaras dengan namanya, Issue Boards, tools ini terdiri atas beberapa kolom (boards) yang berisi list issues atau to-do-list pekerjaan dan tanggung jawab yang harus dikerjakan oleh tiap anggota tim selama proses perkembangan software. Gitlab Boards memungkinkan list pekerjaan dan issue dari suatu project untuk dikelompokkan berdasarkan kegunaan dan kriteria atau scope-nya. Kriteria dasar yang biasa digunakan pada tiap board dalam projek perkembangan software adalah board yang berisi list pekerjaan yang sifatnya To Do, Doing, dan Done.

Selain tiga kriteria tersebut, Gitlab Boards juga memungkinkan tim untuk dapat membuat board baru yang dibuat berdasarkan beberapa kriteria, yaitu berdasarkan label, asignee, milestone, atau bahkan iteration. Hal ini memungkinkan tim untuk dapat membuat berbagai board sesuai dengan kebutuhannya masing-masing.

Gitlab Boards for each sprint in scrum

Board dengan jumlah banyak mungkin dapat membingungkan beberapa anggota tim. Dalam proses pengimplementasian mungkin beberapa anggota tim hanya ingin melihat board yang spesifik berdasarkan suatu kriteria. Gitlab boards memfasilitasi hal tersebut dengan menyediakan fitur filtering pada bagian atas tampilan issue boardsnya. Filtering dapat dilakukan dengan menggunakan banyak kriteria spesifik secara langsung. Hal ini memudahkan tiap anggota untuk dapat men-track pekerjaan mereka dengan lebih fokus tanpa terdistraksi pekerjaan anggota tim lainnya.

Board filter to show only to-do list and issues of Rizky Juniastiar on Sprint 2

Proses assignment issue pada gitlab board biasanya dilakukan oleh seseorang, misalnya pada scrum dilakukan oleh scrum master. Tiap anggota tim dapat memberikan komentar terkait tiap issue, terutama issue yang di-assign kepada dirinya melalui suatu fitur comment and review issue pada gitlab boards. Fitur ini dapat diakses dengan mengeklik nama issue pada salah satu board. Berikut contoh tampilan dari fitur tersebut.

Comment and review issue feature on Gitlab Boards

Fitur tersebut dapat membantu memfasilitasi komunikasi dan kolaborasi dari tiap anggota tim sehingga dinamika tim yang baik dapat dicapai.

Fitur lain yang powerful yang dimiliki oleh Gitlab Boards adalah fitur detail issue. Fitur ini dapat digunakan untuk memberikan informasi yang lebih detail terkait suatu issue. Informasi tersebut yaitu nama issue, anggota yang bertanggung jawab terhadap issue (assignee), epic, milestone dari issue tersebut, iteration, estimasi waktu penyelesaian issue, due date issue tersebut, weight (story point) issue tersebut, health status, dan confidentiality (status kerahasiaan issue tersebut). Fitur ini adalah fitur yang sangat berguna untuk melakukan tracking pekerjaan dari tiap anggota. Dengan melakukan penambahan detail issue, tiap anggota dapat melihat status urgensi dari fitur atau issue yang mereka kerjakan sehingga issue tersebut dapat diselesaikan dengan tepat waktu dan maksimal.

Detail Issue on Gitlab Boards

Version Control System

Dalam pengembangan perangkat lunak, Version Control System (VCS) memerankan peran penting dalam mengelola perubahan kode sumber, kolaborasi, dan tracking riwayat proyek. Dengan memanfaatkan Version Control System, tim dapat lebih mudah untuk berkolaborasi karena tiap anggota tim dapat melakukan pekerjaannya secara paralel kemudian menggabungkannya menjadi satu kesatuan dengan lebih mudah.

Lantas, apa itu Version Control System?

Version Control System (VCS) atau juga dikenal dengan source code management adalah suatu tools atau sistem yang dapat digunakan untuk mengelola perubahan pada source code dari suatu proyek pengembangan perangkat lunak. Dengan menggunakan VCS, tim pengembang dapat lebih mudah dalam mengelola, melacak, dan memonitor setiap perubahan yang dilakukan pada source code secara sistematis dan terstruktur.

VCS memungkinkan tim pengembang untuk dapat bekerja secara paralel dan bersama-sama tanpa harus menunggu anggota tim lainnya selesai terlebih dahulu. Tools ini juga memungkinkan pengembang untuk dapat mengembalikan code ke versi sebelumnya apabila terjadi suatu kesalahan atau masalah. Selain itu, VCS juga memungkinkan pengembang untuk dapat membandingkan, memeriksa, dan me-review hasil pekerjaan anggota tim lainnya secara langsung. VCS juga mendukung proses concurrency dengan cara menyediakan fitur branch sehingga tiap product backlog atau bahkan tiap anggota tim dapat bekerja secara bersamaan tanpa khawatir mengganggu pekerjaan anggota tim lainnya sehingga proses pengembangan menjadi lebih efisien.

Salah satu Version Control System yang massif dan umum digunakan pada proses pengembangan software saat ini adalah Git. Sebagai Version Control System, Git memiliki berbagai fitur yang dapat memudahkan pekerjaan tim, misalnya branch, commit, commit message, merge, dan conflict resolution.

Berikut adalah repository proyek SI-Event:

SI-Event’s Gitlab Repository

Commit

Commit adalah suatu tindakan untuk menyimpan perubahan terbaru dari suatu code ke dalam repository Git. Setiap commit yang dilakukan akan menyimpan snapshot dari kondisi kode saat itu, termasuk perubahan yang telah dilakukan sejak commit terakhir. Commit pada Git berguna untuk melacak setiap perubahan kode sumber yang dilakukan sehingga memudahkan pengembang untuk melacak riwayat perubahan dan mengembalikan kode sumber ke versi sebelumnya jika menemukan masalah atau kesalahan.

Commit adalah salah satu fitur yang membantu meningkatkan kolaborasi antar anggota tim. Commit juga membuat sifat keterbukaan dan transparansi antar anggota tim menjadi lebih tinggi karena semua perubahan dari suatu anggota dapat dilihat dan dipantau oleh seluruh anggota tim lainnya.

Setiap commit dilengkapi dengan pesan (commit message) yang memberikan penjelasan terkait perubahan yang terjadi pada kode sumber. Commit message yang baik haruslah memberikan informasi yang cukup untuk anggota tim lainnya untuk dapat mengerti perubahan apa saja yang dilakukan dan kenapa perubahan tersebut dilakukan.

Example of commit and its messages

Berikut adalah rules yang dapat diperhatikan untuk membuat commit message yang baik.

The seven rules of a great Git commit message:

  1. Separate subject from body with a blank line
    Commit message tidaklah harus terdiri dari beberapa line, subject dan body. Message bisa hanya terdiri dari satu baris. Akan tetapi, apabila message yang diberikan terdiri atas subject dan body, pemisahan tiap aspek tersebut dengan suatu blank line adalah suatu best practice yang dapat dimanfaatkan. Hal ini dapat membuat commit message menjadi lebih mudah dibaca dan dimengerti.
  2. Limit the subject line to 50 characters
    Limit ini bukanlah batasan yang strict, hanya rule of thumb yang dapat dimanfaatkan. Menjaga agar subject line hanya terdiri dari 50 karakter memastikan bahwa commit message menjadi lebih mudah dibaca dan dimengerti oleh orang lain.
  3. Capitalize the subject line
    Mulai semua baris subject pada commit message dengan huruf kapital.
    Misalnya kita melakukan pembuatan Authentication app dan ingin melakukan commit, maka commit messsage dapat dibuat seperti berikut:
    “Add authentication app”
  4. Do not end the subject line with a period
    Tanda baca tambahan pada subject line commit message tidaklah diperlukan. Oleh karena itu, jangan gunakan tanda baca tambahan pada akhir subject line. Selain tidak perlu, hal ini juga dapat menjaga agar subject line hanya terdiri dari kurang dari 50 karakter.
  5. Use the imperative mood in the subject line
    Gunakan kata kerja perintah aktif untuk mengawali subject line commit message. Misalnya Add, Remove, dan Create.
  6. Wrap the body at 72 characters
    Best practice dari body pada commit message adalah kurang dari 72 karakter. Hal ini membuat Git masih memiliki banyak ruang untuk membuat indentasi teks sambil tetap mempertahankan semuanya di bawah 80 karakter secara keseluruhan. Selain itu, body yang terdiri dari kurang dari 72 karakter juga membuat message menjadi lebih sistematis sehingga lebih mudah untuk dipahami dan dibaca oleh orang lain.
  7. Use the body to explain what and why vs. how
    Body pada commit message bukanlah suatu hal yang wajib untuk dituliskan. Akan tetapi, best practice dari penulisan message adalah dengan memberikan penjelasan terkait perubahan apa saja yang dilakukan, kenapa melakukan perubahan tersebut, dan bagaimana implementasinya secara singkat dapat dituliskan pada bagian body commit message. Hal yang perlu diperhatikan dalam memberikan penjelasan tersebut adalah body harus dituliskan secara ringkas tetapi menggambarkan keseluruhan perubahan yang terjadi sehingga body tetap terdiri atas kurang dari 72 karakter dan penjelasan terkait commit juga dapat tersampaikan dengan baik.

Merge

Merge adalah proses menggabungkan dua atau lebih cabang (branch) yang berbeda di dalam suatu repository menjadi satu kesatuan. Merge adalah hal common yang biasa dilakukan saat proses pengembangan software. Merge memungkinkan semua pekerjaan dari anggota tim yang dikerjakan secara paralel pada branch-nya masing-masing digabungkan menjadi satu kesatuan code/produk. Apabila terdapat conflict pada perubahan dari branch-branch yang akan di-merge, VCS memiliki fitur untuk dapat menyelesaikan conflict tersebut.

Untuk dapat melakukan merge atau penggabungan branch, pada Gitlab terdapat fitur Merge Request. Merge request adalah fitur yang dapat digunakan oleh suatu developer untuk mengajukan permintaan penggabungan kode dari branch yang mereka kerjakan menuju ke branch lainnya, atau biasanya ke cabang utama (master branch).

Merge Request in Gitlab

Fitur ini biasanya digunakan oleh tim developer untuk melakukan review dan diskusi terkait perubahan kode yang telah dilakukan oleh developer lainnya sebelum perubahan tersebut digabungkan ke cabang utama. Dalam Merge Request, seorang pengembang dapat meminta pengembang lain untuk melakukan review atas perubahan kode yang telah mereka lakukan. Pengembang lain dapat memberikan saran atau masukan terkait perubahan kode tersebut. Selain itu, fitur ini juga memungkinkan pengembang untuk melihat hasil tes yang dilakukan pada perubahan kode tersebut dan memastikan bahwa tidak ada bug atau masalah lainnya.

Setelah perubahan kode telah diterima dan semua masalah telah diperbaiki, Merge Request dapat digunakan untuk menggabungkan perubahan kode ke cabang utama. Hal ini memastikan bahwa setiap perubahan kode telah melalui proses review dan pengujian yang memadai sebelum diintegrasikan ke dalam cabang utama, sehingga dapat mencegah terjadinya bug atau masalah lainnya.

Terdapat beberapa bagian pada merge request, di antaranya

  • Overview and Description

Berisi deskripsi yang detail dan lengkap terkait perubahan pada branch yang akan di-merge.

Description of Merge Request

Selain itu, juga terdapat fitur yang memungkinkan untuk menambahkan anggota tim yang bertanggung jawab mengerjakan fitur pada branch yang akan di-merge, fitur tersebut adalah assignee. Fitur ini memungkinkan developer yang bertanggung jawab atas branch tersebut untuk mendapatkan update notifikasi saat pembuatan dan peng-update-an merge request.

Assignee fitur on Merge Request
  • Comment

Fitur ini memungkinkan anggota tim lain untuk melakukan review terkait perubahan-perubahan yang dilakukan oleh anggota tim lainnya yang bertanggung jawab atas branch yang akan di-merge. Developer lainnya dapat memberikan saran atau komentar terkait perubahan-perubahan tersebut. Selain itu, dapat juga untuk mengingatkan apabila masih terdapat bug atau conflict pada branch yang akan di-merge.

Comment on Merge Request
  • Approval

Setelah semua perubahan pada branch yang akan di-merge dirasa sudah oke dan sudah tidak mengandung bug atau conflict, maka anggota tim lainnya dapat melakukan approval terhadap merge request yang dibuat. Pada proyek PPL, sebelum melakukan merge, merge request haruslah disetujui (di-approve) oleh setidaknya dua anggota tim lainnya. Hal ini merupakan best practice yang dapat diimplementasikan pada projek-projek pengembangan software lainnya agar semua anggota tim mengetahui dan menyetujui semua perubahan yang ada pada branch yanga akan di-merge.

Approve on merge request

Gamification in Team Collaboration Tools

(src)

Secara umum gamifikasi dapat diartikan sebagai suatu metode yang memanfaatkan dinamika dan mekanika games yang digunakan untuk memotivasi dan melibatkan pengguna demi mencapai perilaku yang diinginkan. Dalam konteks kolaborasi tim, gamifikasi merupakan suatu konsep yang menggunakan elemen-elemen permainan dalam alat-alat dan proses kolaborasi untuk dapat meningkatkan keterlibatan, motivasi, dan produktivitas anggota tim. Konsep ini dapat meningkatkan pengalaman yang lebih menyenangkan dan menarik untuk tiap anggota tim, mirip dengan pengalaman saat bermain game, yang bertujuan untuk meningkatkan motivasi tiap anggota tim untuk mencapai hasil yang lebih baik dalam kerja tim.

Berikut ini adalah beberapa gamifikasi dalam team collaboration tools yang dapat diimplementasikan.

Points and levels

Salah satu bentuk gamifikasi yang dapat diimplementasikan dalam collaboration tools adalah poin dan level. Poin dapat diberikan kepada anggota tim ketika mereka telah berhasil menyelesaikan suatu tugas, berkontribusi dalam diskusi, atau mencapai tujuan tertentu. Poin-poin tersebut juga terintegrasi dengan suatu level yang berkaitan, di mana poin tersebut dapat digunakan untuk meningkatkan level atau status dari suatu anggota tim. Bentuk gamifikasi ini dapat membuat anggota tim lebih terpacu dan termotivasi untuk mencapai lebih banyak pencapaian karena memiliki level yang lebih tinggi dapat membuat anggota tim memiliki prestasi yang membuatnya merasa lebih unggul. Dengan demikian, bentuk gamifikasi ini dapat membuat produktivitas tiap anggota tim dan dinamika tim meningkat.

Challenges and missions

Bentuk gamifikasi selanjutnya adalah misi dan tantangan. Collaboration tools dapat mengimplementasi bentuk gamifikasi ini dengan menyediakan tantangan dan misi yang menantang tiap anggota tim untuk dapat menyelesaikan tugas atau mencapai tujuan tertentu. Selain dapat membantu anggota tim memaksimalkan kemampuan dan potensi yang dimilikinya, gamifikasi ini juga bermanfaat untuk meningkatkan keterlibatan tiap anggota tim sekaligus men-track tanggung jawabnya dalam pekerjaan tim. Selain itu, gamifikasi ini juga bermanfaat untuk dapat memberikan tujuan yang jelas bagi tiap anggota tim.

Awards and recognition

Bentuk gamifikasi selanjutnya yang dapat dimanfaatkan dalam collaboration tools adalah pemberian penghargaan atau pengakuan kepada anggota tim yang mencapai prestasi tertentu. Salah satu contohnya misalnya dengan pemberian penghargaan “kolaborator terbaik” kepada anggota tim yang paling sering melakukan review pekerjaan anggota tim lainnya atau penghargaan “Efficiency Master” bagi anggota tim yang paling awal menyelesaikan tanggung jawab/tugasnya. Bentuk gamifikasi ini dapat bermanfaat untuk meningkatkan motivasi kepada anggota tim untuk bekerja dengan efisien dan menyelesaikan tugas mereka dalam waktu yang ditetapkan. Selain itu, gamifikasi ini juga dapat membuat anggota tim merasa hal yang telah dilakukan atau dikerjakannya dihargai oleh seluruh tim.

Ranking and leaderboard

Bentuk gamifikasi lainnya adalah penerapan ranking dan leaderboard. Collaboration tools dapat mengimplementasikan gamifikasi ini dengan menampilkan papan peringkat atau papan yang memperlihatkan kontribusi dan pencapaian anggota tim dalam pekerjaan tim. Hal ini dapat menciptakan elemen kompetisi yang sehat dan mendorong anggota tim untuk berkinerja lebih baik. Bentuk gamifikasi ini dapat menjadi motivasi bagi anggota tim untuk dapat mengerahkan kemampuannya dalam berkontribusi untuk pekerjaan tim.

Secara keseluruhan, gamifikasi dalam kolaborasi tim bertujuan untuk menciptakan lingkungan kerja yang lebih menyenangkan, meningkatkan keterlibatan anggota tim, meningkatkan motivasi, dan secara keseluruhan meningkatkan produktivitas tim. Dengan mengadopsi elemen-elemen permainan dalam collaboration tools dan aktivitas kolaboratif, gamifikasi memungkinkan tim untuk bekerja dengan lebih efektif, fokus, dan bersenang-senang dalam mencapai tujuan bersama.

Implementation of high end technology in team collaboration

Salah satu elemen kunci dalam suksesnya kolaborasi tim adalah efektivitas komunikasi dalam tim tersebut. Berikut ini adalah beberapa teknologi modern yang dapat dimanfaatkan untuk dapat meningkatkan interaksi dan kolaborasi tim secara lebih efektif.

Virtual Reality (VR)

Virtual Reality (VR) menyediakan pengalaman interaktif dan imersif di dunia maya yang dapat membantu tim dalam berkomunikasi dan berkolaborasi tanpa terkendala jarak. Teknologi ini memungkinkan tim dapat melakukan kolaborasi secara efektif dan efisien dengan memanfaatkan berbagai teknologi mutakhir untuk mencapai tujuan bersama. Beberapa contoh penggunaan VR dalam kolaborasi tim meliputi:

  • Rapat virtual: Tim dapat mengadakan rapat di ruang virtual yang realistis, memungkinkan interaksi visual dan suara yang lebih mendalam.
  • Pelatihan dan simulasi: Tim dapat menggunakan VR untuk pelatihan keterampilan, simulasi situasi kerja, atau eksplorasi proyek secara virtual.
  • Penyajian data 3D: Tim dapat memvisualisasikan dan berbagi data dalam format 3D yang lebih interaktif dan mudah dimengerti.

Augmented Reality (AR)

Augmented Reality (AR) adalah tools yang teknologi yang menggabungkan elemen-elemen virtual dengan dunia nyata untuk menciptakan pengalaman yang lebih kaya. Dalam AR, objek digital, seperti gambar, video, atau grafis 3D, ditampilkan di atas tampilan nyata dunia sekitar kita melalui perangkat komputer seperti smartphone dan tablet. Berikut adalah contoh implementasi AR dalam kolaborasi tim:

  • Anotasi dan catatan virtual: Anggota tim dapat membuat anotasi atau catatan virtual pada objek fisik. Hal ini memungkinkan mereka untuk berbagi informasi dan pemikiran dengan lebih jelas.
  • Panduan visual: AR dapat digunakan untuk memberikan panduan visual dalam perakitan produk, perbaikan, atau tugas lainnya. Hal ini dapat mempercepat dan mempermudah proses kerja tim.
  • Permodelan 3D dan visualisasi: Tim dapat menggunakan AR untuk melihat dan berinteraksi dengan model 3D dari proyek atau produk. Hal ini dapat memfasilitasi pemahaman yang lebih baik karena visualisasi produk dilakukan secara lebih nyata.

Voice Assistant

Voice assistant seperti Google Asistant, Siri, atau Amazon Alexa dapat digunakan sebagai alat kolaborasi tim yang sangat baik dan efektif. Teknologi ini dapat meningkatkan efisiensi pekerjaan dan kolaborasi tiap anggota tim. Berikut adalah beberapa implementasi voice assistant yang dapat bermanfaat untuk kolaborasi tim.

  • Penjadwalan dan pengelolaan tugas: Tim dapat menggunakan voice assistant untuk mengatur jadwal, mengingatkan tenggat waktu, atau mengelola tugas dari tiap anggota tim. Hal ini dapat membuat proses penjadwalan dan pengelolaan tugas menjadi lebih efisien karena dapat diselesaikan dengan lebih cepat dan tidak perlu campur tangan dari anggota tim. Hal tersebut memungkinkan tiap anggota tim untuk mengerjakan hal lainnya sehingga produktivitas tim dapat meningkat.
  • Pencarian dan akses informasi: Voice assistant dapat membantu anggota tim dalam mencari informasi yang diperlukan secara cepat dan akurat, memungkinkan mereka mendapatkan pemahaman yang lebih baik tentang topik kolaborasi.
  • Pengiriman pesan dan kolaborasi real-time: Voice assistant dapat digunakan untuk mengirim pesan atau memfasilitasi kolaborasi real-time antara anggota tim. Hal ini dapat mempercepat aliran komunikasi dan pertukaran informasi sehingga dapat meningkatkan produktivitas tiap anggota tim.

Pemanfaatan high end technology, seperti VR, AR, dan voice assistant menawarkan cara-cara baru untuk meningkatkan kolaborasi tim. Pemanfaatan teknologi tersebut memungkinkan tim untuk bekerja lebih efisien, berbagi informasi dengan lebih baik, dan mencapai hasil yang lebih baik dalam kerja tim.

Conclusion

Proses pengembangan perangkat lunak adalah proses kompleks yang membutuhkan kerja sama yang baik di antara para stakeholders yang terlibat. Produk yang dihasilkan pada proses pengembangan perangkat lunak sangat dipengaruhi oleh dinamika tim dalam bekerja. Berbagai kendala dan halangan seperti jarak antara tiap anggota tim yang tidak berdekatan dapat menjadi masalah yang cukup serius apabila tidak ada tools yang dapat membantu memecahkan masalah tersebut. Seiring dengan berkembangnya teknologi, tools untuk kolaborasi antar anggota tim juga ikut mengalami perkembangan. Collaboration tools, seperti Gitlab Boards sebagai project management tools dan Gitlab sebagai Version Control System dapat dimanfaatkan agar dinamika tim menjadi lebih baik sehingga produk yang dihasilkan dapat di-deliver dengan tepat waktu dan menjawab permasalahan client.

--

--