Saya dan Adin selalu berada dalam diskusi yang hangat mengenai bagaimana cara mengembangkan sebuah sistem. Proses pengembangan di bagian kami sungguh menarik karena melibatkan dua kubu: koboi dan konservatif. Kami bisa sampai berdebat cukup hangat mengenai hal tersebut. Tentunya, kami bukan debat kusir dan selalu ada hasil yang optimal mengenai jalan tengah.

Kubu konservatif adalah kubu yang berusaha memenuhi kaidah-kaidah praktik standar dalam pengembangan dan aktivitas perangkat lunak. Kubu ini, biasanya saya, adalah kubu yang menyenangi dokumentasi, perencanaan di awal, dan pengeksekusian proses-proses yang telah direncanakan tersebut. Kubu konservatif selalu berupaya agar proses-proses yang dilakukan sesuai dengan cara-cara yang telah terbukti.

Di lain pihak, pihak koboi senang menggambarkan diri mereka dengan “slonong boy”. Mereka suka memotong prosedur-prosedur yang ada. Mereka suka melakukan “coding on the spot”. Mereka melakukan berbagai perubahan yang terkadang fundamental dan berpengaruh kepada pengguna langsung.

Sebelum Anda menuduh pihak koboi sebagai penjahat, maka saya katakan mereka bukan penjahat kendati saya sangat berlawanan dengan mereka. Kalau saya boleh bilang, mereka adalah orang-orang yang progresif dan menghasilkan banyak sekali deployment. Pihak konservatif justru membuat proses pengembangan menjadi lama.

Sebelum Anda menuduh saya sebagai penjahat, perlu diketahui bahwa pengembangan yang terlalu progresif menyebabkan banyak artifak yang hilang dalam proses pengembangan. Hal ini mengakibatkan sulitnya proses penjaminan kualitas dan penyelidikan (debugging). Sehingga, sering kali sistem harus dibuat kembali untuk memperbaiki data tersebut. Saya dapat katakan dengan bangga bahwa setiap sistem yang saya telah buat berjalan stabil dan well-maintained.

Saya simpulkan, koboi adalah sebuah pendekatan proses pemecahan masalah yang memenuhi kriteria tujuan tercapai dan waktu sesingkat mungkin. Konservatif berusaha memecahkan masalah dengan prosedur yang benar dan dapat dipertanggungjawabkan. Kata dipertanggungjawabkan dapat diterjemahkan sebagai verbose/cerewet, Kata tujuan tercapai dapat diartikan sebagai objective-driven atau bahasa kerennya agile development.

Apologetika mengenai koboi dan konservatif di atas sengaja saya paparkan agar Anda mengerti tulisan saya berikutnya. Untuk tidak menuduh pihak mana pun, tetapi boleh melihat kedua sisi dan mengambil hikmah (atau istilah kami, solusi yang terbaik).

Intinya, setiap pendekatan memiliki trait masing-masing. Setiap pendekatan memiliki kelemahan dan kelebihan masing-masing. Sesuaikan dengan budaya yang positif yang dapat diterima di organisasi Anda masing-masing. (Tentunya dengan justifikasi yang benar….)