Tag Archives: business process

Efek Kopi

Tahun lalu saya menulis artikel dengan judul serupa di sini. Ketika itu saya nggak bisa tidur setelah untuk pertama kalinya mencoba kopi Indo****.

Setelah momen itu sebetulnya saya sudah nggak pernah mengalami lagi susah tidur gara-gara mengonsumsi kopi. Nah, kemarin malam kejadian tersebut ternyata terulang lagi. Hahaha.

Jadi ceritanya kemarin itu untuk pertama kalinya saya membuat akun di aplikasi milik sebuah coffee chain yang tengah naik daun di Indonesia setelah mendengarkan cerita seorang teman yang sudah sering memesan di sana. Katanya, proses pemesanannya sungguh praktis.

Sebagai seorang yang juga sering terlibat untuk merancang atau implementasi business process dalam sebuah sistem IT, saya suka meng-observe dan mencoba suatu pengalaman menggunakan aplikasi tertentu untuk menambah referensi saya ketika mengerjakan sebuah projek di kemudian hari.

Setelah mendengar ceritanya, tentu saja saya jadi penasaran untuk mencoba. Apalagi kata teman saya, ada banyak benefit yang bisa didapatkan jika memesan langsung via aplikasi coffee chain tersebut dibandingkan via aplikasi pihak ketiga.

Nah, setelah membuat akun, ternyata saya mendapatkan beberapa voucher sebagai reward pengguna baru. Karena masa berlaku voucher-nya terbatas, ya sudah langsung saja saya memesan kopi menggunakan voucher tersebut. Dengan voucher tersebut saya akan mendapatkan gratis 1 kopi susu gula aren untuk pembelian 1 kopi yang sama. Wah, lumayan banget kata saya. Alhamdulillah.

Dua kopi susu gula aren (merek dirahasiakan 😆)

Jadilah kemarin saya mengonsumsi 2 kopi susu gula aren sekaligus. Tidak saya sangka-sangka. Malamnya saya nggak ngantuk sama sekali. Bahkan dada agak berdebar-debar.

Saya mungkin baru bisa tertidur sekitar jam 1-an pagi. Itu pun Jam 3.15 sudah terbangun lagi karena mengigau. Setelah itu tidak tidur lagi karena tanggung sudah dekat subuh juga jam 4.10. Habis subuh pun tidak bisa tidur lagi karena memang sudah planning untuk sepedaan.

Bisa jadi karena itu kopi pertama saya setelah sebulan absen minum kopi di bulan Ramadan, badan saya ibaratnya mulai dari nol lagi dalam memproses kafein. Padahal biasanya saya kebal-kebal saja minum kopi hitam apalagi kopi susu. Masih bisa tidur normal. Bisa jadi kaget juga sih langsung minum 2 gelas. Hahaha.

Implementasi Proses Bisnis dengan Camunda (Bag. 1)

Dalam pengembangan suatu sistem informasi biasanya diawali dengan aktivitas requirement gathering. Di dalam aktivitas tersebut biasanya seorang analis, selain mengumpulkan informasi dari klien terkait kebutuhan sistem informasi, ia juga akan menggambar diagram alir (flowchart) proses bisnis yang akan diimplementasi nantinya.

Adanya flowchart ini dapat membantu menyamakan pemahaman antara pihak analis dan subject matter expert (SME) terkait. SME bisa memeriksa dan memastikan bahwa proses bisnis yang tergambar pada flowchart tersebut sudah sesuai.

Setelah diagram proses bisnis tersebut disetujui (sign-off) oleh pihak SME, biasanya developer bisa memulai membangun aplikasi — entah itu web, desktop, atau mobile based — dengan mengacu pada diagram tersebut.

Katakanlah aplikasi telah selesai dibuat. Pertanyaan berikutnya biasanya muncul. Bagaimanakah para stakeholder tahu bahwa aplikasi yang dibuat memang konsisten dengan proses bisnis yang sudah dirancang?

Dalam pemrograman biasa, kita biasanya akan membuat field status untuk menyatakan suatu proses bisnis sedang berada di task mana. Field status tersebut akan diperbaharui setiap kali suatu aksi — misalkan input data atau approval — dilakukan.

Dengan kata lain, status tersebut berperan dalam merepresentasikan suatu proses bisnis sedang berada di task mana. Pergantian status itu juga bisa kita gunakan dalam pengujian untuk memastikan ia telah sesuai dengan alur proses bisnis yang didefinisikan.

Pada kasus yang sederhana, field status tersebut cukup. Pada kasus yang sedikit lebih kompleks, misalkan ada beberapa parallel task yang harus dikerjakan sebelum aktor bisa melangkah ke task berikutnya, field status itu mungkin cukup tapi agak tricky untuk men-tracking status tiap parallel task tersebut. Kita perlu membuat field yang lain untuk menyimpan parallel task mana yang sudah dikerjakan.

Belum lagi kita perlu menyiapkan field untuk menyimpan waktu kapan tiap aksi dilakukan. Dengan kondisi yang demikian, tentunya akan terdapat banyak boilerplate code yang kita perlu implementasi.

Untungnya hal-hal tersebut dapat direduksi dengan memanfaatkan workflow engine yang sudah banyak bertebaran di sana. Untuk dapat menggunakannya kita perlu menggambarkan proses bisnis yang ingin kita implementasi dengan mengikuti standar BPMN (Business Process Model and Notation).

BPMN ini sepintas agak mirip dengan flowchart. BPMN memiliki lebih banyak notasi yang lebih detail dari segi kegunaannya. Untuk simbol gateway misalnya. Ada beberapa macam gateway di BPMN yang bisa digunakan seperti parallel gateway, inclusive gateway, dan exclusive gateway. Lalu ada simbol timer untuk menyatakan kapan suatu event akan dimulai atau selesai.

Contoh BPMN dengan melibatkan 3 aktor

Dari sisi programming, penggunaan workflow engine tentunya akan memudahkan, terutama untuk implementasi suatu proses bisnis yang kompleks dan panjang. Programmer bisa lebih fokus pada aliran data dalam proses bisni. Proses bisnis juga menjadi lebih auditable. Pihak analis dan SME juga dapat melihat sistem informasi yang diimplementasi memang konsisten dengan proses bisnis yang sudah dirancang dan disepakati di awal.

Ada banyak workflow engine yang bertebaran di luar sana. Salah satunya adalah Camunda, sesuai dengan judul tulisan ini. Camunda adalah Java-based workflow engine. Kita bisa menjalankan Camunda ini sebagai service yang terpisah atau embedded di dalam aplikasi Java kita. Namun sebetulnya sistem informasi yang kita bangun tidak harus menggunakan bahasa Java untuk dapat menggunakan Camunda ini karena Camunda menyediakan opsi REST API untuk integrasi.

Kenapa Camunda? Keputusan menggunakan Camunda ini sendiri sebetulnya karena rekomendasi dari partner kami. Kebetulan saya pribadi lebih banyak spend waktu sebagai Java developer jadi learning curve-nya tidak begitu curam untuk mempelajari bagaimana implementasi dengan menggunakan Camunda ini. Apalagi dibantu juga dengan dokumentasinya yang lengkap.

Selain itu Camunda juga memiliki fitur lain seperti menyediakan modeler untuk merancang proses BPMN. Lalu juga memiliki dashboard (cockpit) untuk visualisasi status process instanceprocess instance yang berjalan di dalam BPMN.

Saya sendiri sejujurnya agak telat mengetahui pasal BPMN ini. Mungkin baru sekitar 3 tahun yang lalu. Namun baru benar-benar memanfaatkannya untuk sebuah projek baru-baru ini.

Dahulu ketika kuliah Sistem Informasi sepertinya belum pernah disinggung pasal ini. Mungkin karena ketika itu belum terlalu populer. BPMN 2.0 sendiri baru diluncurkan pada Desember 2013.

Dalam tulisan berikutnya, saya akan mencoba membuat contoh sederhana bagaimana Camunda dapat diimplementasikan.