Apa Itu Developer Experience (DX)?

Bayu Hendra Winata
Javan Cipta Solusi
Published in
5 min readMay 25, 2020
Photo by Priscilla Du Preez on Unsplash

Rasakan

Developer Experience, biasa disingkat DX, adalah istilah baru bagi sebagian besar developer, termasuk saya. Hasil penelusuran di mesin pencari, saya menemukan artikel tentang DX baru mulai bermunculan di tahun 2011. Salah satunya adalah https://uxmag.com/articles/effective-developer-experience.

Kita lebih dulu mengenal istilah User Experience (UX), sebagai sebuah istilah tentang kemudahan penggunaan sebuah benda (aplikasi) bagi pemakainya. Dalam UX, terjadi interaksi antara aplikasi dengan pengguna (end user).

Dalam DX, interaksi yang terjadi adalah antara kode (library, SDK, API, platform) dengan developer yang menggunakannya.

DX adalah apa yang kita rasakan ketika mencoba mengintegrasikan sebuah library dalam suatu proyek.

DX adalah seberapa cepat kita bisa mengkonsumsi API dari pihak ketika untuk membuat suatu fitur.

DX adalah seberapa betah kita memakai sebuah layanan (misalnya AWS) sehingga tidak berpindah ke lain hati.

DX adalah apa yang orang lain (atau kita sendiri) rasakan ketika membaca sebuah kode yang ditulis 3 bulan yang lalu. Apakah kita akan bilang “oo begini to” atau “WTF x10”.

Bedakan

Hari ini, kita hampir tidak bisa membedakan merek ponsel hanya dengan melihat. Semua terlihat sama bentuknya.

Coba sebutkan merek-merek ponsel di atas!

Bukan hanya bentuk, fitur pun boleh dibilang 80% sama:

  1. Layar tanpa bezel
  2. Kamera resolusi tinggi
  3. RAM besar
  4. Amodel Display
  5. Tahan air dan debu
  6. Fingerprint

Semisal Anda ingin membeli ponsel untuk bermain game, bagaimana Anda menentukan membeli ponsel yang mana ketika hampir semua pabrikan menyediakannya?

Mari kita bandingkan dengan kondisi beberapa tahun yang lalu.

Beruntunglah anak 80-an.

Setiap ponsel memiliki fungsi spesifik masing-masing selain untuk menelepon. Orang membeli ponsel sesuai kebutuhannya. Ada yang ingin bermain game, ada yang ingin mendengarkan musik, ada yang ingin merekam video, dan ada yang ingin lancar berkomunikasi dengan koleganya.

Meskipun tidak semua ponsel di atas memiliki experience yang bagus ketika digunakan sehari-hari, tapi masing-masing memiliki pangsa pasarnya sendiri. Tidak ada satu ponsel yang mendominasi dan menjadi trend setter.

Tapi, semua berubah sejak peluncuran iPhone generasi pertama oleh Apple.

iPhone generasi pertama

Sukses besar di pasaran, pabrikan ponsel lain dengan cepat mengadopsi (menyontek) desain iPhone untuk diterapkan di produknya masing-masing. Jadilah kondisi sekarang ini dimana ponsel terlihat “uniform”.

Ketika fungsional sudah tidak lagi menjadi penghalang dan pembeda, maka experience menjadi faktor penting. Bagi pabrikan ponsel, faktor pembeda tersebut adalah brand, harga, customer service dan layanan purna jual.

Terapkan

Mari kita bawa cerita di atas ke ranah software development. Dulu, developer masih langka. Ketika kita membutuhkan sesuatu, tidak banyak pilihan yang tersedia. Sebagai seorang programmer PHP, saya masih ingat CakePHP pernah sangat fenomenal karena merupakan framework PHP berbasis MVC pertama. Saat itu, tidak ada pilihan lain. Ketika berbicara MVC, maka cuma ada CakePHP.

Sukses besar, banyak developer lain membuat framework sejenis, dengan berbagai penyempurnaan.

Sekarang, ada Laravel, Yii, Symfony, atau CodeIgniter. Sama-sama MVC, bagaimana Anda menentukan memilih framework yang mana?

Salah satu teori yang paling sering dijadikan acuan terkait bagaimana seseorang menentukan pilihannya ketika ingin memenuhi sebuah kebutuhan adalah Maslow’s hierarchy of needs.

Credit: https://medium.com/@Ma_Rim_G/what-is-ux-and-how-it-started-c2f67ddf1b5

Konsep yang sama juga berlaku ketika seorang developer menentukan pilihan terkait framework mana yang ingin dipakai.

Fungsional

Berfungsi dengan baik. Jelas, ini merupakan faktor utama. Kita tidak akan memakai framework yang masih dalam masa pengembangan dan berpotensi menimbulkan bug.

Reliable

Setelah fungsi utama terpenuhi, selanjutnya framework tersebut harus dapat diandalkan di berbagai macam kondisi. Berfungsi dengan baik ketika di localhost, belum tentu berfungsi dengan baik di production, belum tentu juga berfungsi dengan baik ketika diakses 10, 100, atau 1000 orang secara konkuren.

Usable

Ketika 2 faktor di atas sama-sama dipenuhi, maka faktor pembeda berikutnya adalah seberapa mudah framework tersebut digunakan. Hal ini erat kaitannya dengan kode.

Meskipun sama-sama mengusung konsep MVC, tapi hampir dipastikan tidak ada 2 buah framework yang sama persis penamaan fungsi, struktur folder, ataupun arsitektur class yang diterapkan. Hal ini membuat experience pemakaian juga ikut berbeda.

Contoh, Laravel merupakan framework PHP paling populer saat ini. Mau dilihat dari data pencarian di Google Trends, jumlah star di github, ataupun hasil survey dari banyak website, tidak ada framework lain yang mengalahkan Laravel. Mengapa bisa demikian?

Framework for Web Artisans

Dari awal, Laravel mem-branding dirinya sebagai sebuah framework yang “beautiful”. Penamaan fungsinya indah, desain situsnya indah, dokumentasinya indah, dan berbagai macam keindahan lainnya. Apa yang membutuhkan 3–4 baris kode di framework lain, cukup dilakukan dalam 1 baris kode di Laravel.

Konsep “beautiful” Laravel seakan mencoba memisahkan diri dari kerumunan framework PHP saat itu yang lebih banyak mengusung jargon rapid application development, dan it works.

Pleasurable

Momen dimana kita berkata dalam hati, “wow, ternyata bisa gini to”.

Momen dimana kita membagikan potongan kode yang kita tulis di media sosial atau ke grup pemrograman lainnya.

Momen dimana kita sangat menikmati berinteraksi dengan kode, jatuh hati, dan membagikannya ke orang lain, tanpa diminta.

Inilah tahapan tertinggi dari sebuah kode yang kita tulis dan dipakai orang lain (atau diri kita sendiri tiga bulan kemudian). Momen dimana orang lain bisa berinteraksi dengan kode kita tanpa rintangan berarti: penamaan variablenya singkat dan jelas, cara memanggil fungsinya manusiawi, cara instalasinya jelas dan actionable.

Momen dimana developer lain mengikuti cara koding, cara dokumentasi, cara packaging, dan cara membangun komunitas. Mereka dengan sukarela menjadi ambassador mempromosikan library/platform/tools/stack yang kita buat ke orang lain.

Inilah tahapan tertinggi dari sebuah Developer Experience. Boleh sama-sama PHP, boleh sama-sama MVC, tapi low level interaction dengan kode pasti berbeda-beda.

Seiring berjalannya waktu, semakin banyak orang yang bisa koding dan menyebut dirinya software developer. Ketika semua bisa koding, maka experience akan menjadi pembeda.

Apakah Anda siap meningkatkan DX dari kode yang Anda tulis?

Apakah Anda siap meningkatkan DX dari library yang Anda rilis?

--

--