Jika ada hal yang selalu melekat pada seorang programmer professional, yang selalu menghantuinya siang malam, maka itu adalah ticket. Ticket merepresentasikan unit terkecil dari pekerjaan besar sebuah tim IT. Di dalam sebuah ticket, seorang programmer dapat mengetahui apa yang harus dia lakukan, apakah itu penting, dan kapan batas waktu untuk menyelesaikannya. Saya sendiri selalu menekankan betapa pentingnya ticket sebagai basis kerja seorang programmer. Saya selalu mengingatkan jangan sampai seorang programmer bekerja tanpa ticket.

Bekerja tanpa ticket sama seperti seorang kurir yang pergi meninggalkan pos tanpa catatan apapun. Manajemen tidak tahu kurir tersebut pergi kemana, mengantar apa, dan kapan dia akan kembali. Pun, kurir tersebut tidak dapat mengklaim komisi yang harusnya dia dapat setelah mengirim barang tersebut, karena pihak manajemen tidak tahu menahu apa yang telah dilakukannya.

Setidaknya ada beberapa komponen penting dalam sebuah ticket, yaitu

  1. Title
  2. Description
  3. Assignee. Siapa yang ditugaskan menyelesaikan ticket tersebut
  4. Status. Bagaimana status ticket tersebut sekarang, apakah belum terkerjakan, sedang dikerjakan, atau sudah selesai
  5. Due Date. Batas waktu untuk menyelesaikan ticket
  6. Labels/Tags. Berguna untuk menandai sebuah ticket, misal bug, tweak, atau priority (jika ticket tersebut penting)

Beruntungnya, hampir semua project management tools saat ini, baik yang free maupun berbayar mempunyai kemampuan untuk membuat ticket dengan komponen-komponen diatas. Di internal Refactory sendiri, kami memanfaatkan issue tracker dari Gitlab untuk mengatur ticket. Selain itu kami juga menggunakan Jira atau Asana untuk project dengan klien dari US.

Saya rasa semua project management sama bagusnya dan mempunyai fitur yang hampir sama, baik itu Jira, Asana, Trello, maupun issue tracker bawaan dari Gitlab ataupun Github. Kita dapat membuat ticket dengan komponen-komponen yang telah saya sebutkan diatas, mempunyai fitur notifikasi via email, ada versi app nya untuk mempermudah akses, dsb. Tidak penting tools apa yang kita pakai, yang terpenting adalah bagaimana kita me-manage dan me-maintain ticket yang ada.

Ticket yang baik adalah ticket yang di-manage dan di-maintain dengan disiplin. Dalam artian, ticket tersebut haruslah

  1. Transparan. Seluruh orang dalam perusahaan dapat melihat ticket dan segala keterangan di dalamnya. Ini penting, karena pekerjaan programmer pasti berhubungan dengan pihak lain
  2. Up to date. Ticket harus selalu terupdate dengan kondisi riil di lapangan. Idealnya, dengan melihat keterangan di dalam ticket, kita bisa tahu bagaimana state ticket tersebut saat ini. Apakah sudah selesai? atau sedang dikerjakan?
  3. Dapat dibuat oleh siapapun. Di Refactory, siapapun dapat membuat ticket, ya siapapun!
  4. Setidaknya ada 1 orang ticket manager. Idealnya, semua orang di dalam perusahaan, ikut berpartisipasi dalam me-manage ticket. Namun, karena hal tersebut sangat sulit dilakukan, setidaknya ada 1 orang yang bertugas untuk mengatur ticket. Orang ini akan membuat ticket jika ada laporan bugs, memastikan ticket terus terupdate, mengkonfirmasi sebuah ticket yang terbengkalai, dsb.

Kumpulan ticket menggambarkan apa yang akan dicapai sebuah tim IT, semakin banyak ticket terselesaikan berarti semakin dekat dengan target yang diinginkan. Oleh karena itu, me-manage dan me-maintain ticket adalah hal krusial yang bisa memastikan bahwa sebuah tim IT masih berada di track yang benar untuk mencapai tujuannya. Pihak manajemen pun tahu, sedekat apakah mereka dengan target yang ingin dicapai.