Reverse Development

Dua belas tahun saya menjadi programmer komputer, tujuh tahun di profesional, saya menyadari ada dua pendekatan besar dalam membuat sebuah paket perangkat lunak, yaitu cara normal dan cara terbalik yang saya sebut “reverse development”. Ini bukan tentang metodologi pembuatan perangkat lunak ya, seperti model waterfall atau agile development itu, tapi lebih tentang pendekatannya.

Cara normal adalah seperti membangun rumah. Alurnya maju. Dimulai dari proses desain, mengumpulkan bahan bangunan, dan membangun rumah sampai selesai. Pembuatan perangkat lunak beralur maju juga begitu. Mulai dari proses analisis kebutuhan, mendesain perangkat lunak, membuat purwarupa (prototype), penulisan program, pengetesan, dan akhirnya proses produksi ketika perangkat lunak itu digunakan. Lebih menyentuh ke hal teknis, programmer harus membuat struktur basis data, memilih teknologi dan tumpukan pustaka program, menulis baris demi baris logika bisnis menjadi rutin perintah komputer, dan seterusnya.

Contoh teknologi yang digunakan misalnya di lingkungan PHP adalah framework Code Igniter, di lingkungan Java ada rangkaian Struts/Spring/Hibernate. Pendekatan ini lebih kurang membuat dari yang sebelumnya tidak ada menjadi ada. Fleksibilitas tak terbatas. Apapun yang dibutuhkan bisa dibuat.

Cara terbalik adalah kebalikannya. Saat ini sudah banyak sekali paket-paket perangkat lunak jadi siap pakai. Pengembangan di sisi ini adalah menyesuaikan produk jadi supaya sesuai dengan kebutuhan. Istilahnya customization (apa ya padanan bahasa Indonesianya). Diperlukan kemampuan khusus untuk bisa melakukan ini, karena masing-masing produk memiliki arsitektur dan bahasa yang berbeda-beda. Dari sini muncul para programmer spesialis seperti SAP, Oracle, Maximo, Sharepoint, dll. Para spesialis ini selain harus mempunyai pengetahuan di bahasa umum (PHP, Java, C#, Python), juga harus mengetahui bagaimana produk-produk itu bisa di-custom.

Jika dibawa ke pembuatan web, cara pertama adalah membuat desain HTML, CSS, membuat dinamisasi sistem manajemen konten (CMS), dan membawanya ke web. Sementara cara kedua adalah mengambil produk yang sudah jadi seperti WordPress, Joomla, atau Drupal.

Fleksibilitas tentu saja menjadi terbatas, tetapi cara ini adalah seperti merakit rak knock-down. Semua materi dasar sudah jadi. Tinggal menyesuaikannya dengan kebutuhan. Tentu saja penyesuaian ini tidak efektif jika kebutuhannya berkembang dari yang awalnya rak buku menjadi lemari pakaian.

Cara pertama adalah waktu saya kuliah hingga tahun kedua karir saya menjadi programmer profesional. Cara kedua adalah waktu saya ditarik jadi spesialis untuk mendalami Maximo.

Cara pertama saya lakukan waktu membuat invest.galihsatria.com. Menggunakan PHP tanpa framework. Cara kedua saya lakukan waktu meng-custom Drupal di www.galihsatria.com. Motif keduanya sama, iseng belaka. Coding for fun. Saya memang sedang tertarik dengan Drupal setelah melihat fleksibilitasnya yang mirip Sharepoint. Saya seperti melihat saya bisa membuat apa saja (dengan batasan tertentu) dengan Drupal dan menghemat waktu untuk menulis baris-baris program dasar seperti membuat koneksi ke database, membuat form untuk create-update-delete, membuat halaman untuk menampilkannya.

Author: Galih Satriaji

Bookaholic, Workaholic. Chubby. That's me!

Leave a Reply

Your email address will not be published. Required fields are marked *