
Dari judulnya aja udah agak bikin males bacanya.. 🤣 . Maaf siang-siang bikin catatan yang berat genks. Jadi begini, ini adalah hal yang paling sering banget ditemukan dalam memulai sebuah produk/project. Gw lagi ngomongin pengembangan produk aplikasi digital.
Di dunia pengembangan aplikasi, sering banget kita dihadapkan pada situasi di mana semakin banyak pilihan teknologi, framework, dan tools yang tersedia, semakin sulit untuk memutuskan mana yang terbaik untuk produk tersebut. Ini bisa menciptakan rasa kebingungan dan keragu-raguan, karena setiap opsi memiliki kelebihan dan kekurangan. Kendala ini mulai teridentifikasi saat kita mulai bertanya kepada user.
“Apakah ada requirement teknologi yang ingin digunakan?”
Nah user pun bingung. Akhirnya kita sebagai pengembang, mulai bikin deskripsi-deskripsi yang dapat dimengerti. Dengan harapan setiap deskripsi dapat memberikan jawaban dengan pilihan yang final. Namun sayangnya, di level pengembang pun terkadang juga bingung. Semua teknologi itu bagus. Namun setiap teknologi juga ada kekurangan-kekurangan. Tidak ada teknologi/framework yang sempurna. Jadi kalo mau dibuat sesuai dengan project/produk yang dikembangkan, belum tentu 100% sesuai.
Ok Begini Contohnya:
- Mau Menggunakan MongoDB atau PostgreSQL untuk database?
- Mau Memilih React Native atau Flutter untuk aplikasi mobile?
- Mau menggunakan Monolith atau Mikroservice ?
Di bawah ini case-case jawaban dari user, apabila ditanya mau menggunakan teknologi apa, jawabannya bisa jadi antara pilihan dibawah,
- User : Kami sudah memiliki sistem dan kalo boleh teknologi yang dipilih bisa berintegrasi dengan sistem yang ada.
- Dalam pikiran developer biasanya : semua teknologi bisa berintegrasi dengan sistem apapun, tinggal lihat bagaimana kesulitannya. Disini tantangannya adalah Mempelajari sistem existing dan mencoba untuk membaca-baca dokumentasi dari sistem yang ada. Bingung dan Pasti Mual.., tentu.. apalagi sistem existing Jadul Parah. Pilihan-pilihan solusi teknologi yang ditawarkan akan banyak sekali dan ketika harus difinalkan untuk dipilih malah memilih yang tidak sesuai sama sekali.
- User : Kami memutuskan menggunakan Teknologi A dan Teknologi B. Kalo boleh pengembang menggunakan itu saja.
- Dalam pikiran developer biasanya : Mulai berpikir mencari resources yang bisa mengerjakan project dengan teknologi yang diminta. Karena pengembang tidak memiliki resource yang diminta, Ini justru lebih pusing. Kadang mencari resource yang sesuai itu susahnya minta ampun. Kadang mau cari yang biasa aja, atau yang pemula, tapi butuh percepatan. Atau butuh yang expert, tapi kemahalan.
- User : Kami menyerahkan kepada pengembang untuk memilih teknologinya, karena kami tidak ada orang yang memahami teknologi
- Dalam pikiran developer biasanya : Kalo nanti kita pilih teknologi yang dipakai sesuai pilihan pengembang, ternyata proses share knowledge nya nanti usernya pada gk sanggup. Atau bahkan kita menawarkan teknologi yang keren, padahal usernya gk paham apa-apa dengan frameworknya. Bisa jadi akan ada kesulitan untuk melepas aplikasi ke user.
Meskipun kita bisa memilih yang paling sesuai dengan kebutuhan, pilihan yang terlalu banyak bisa membuat kita merasa terjebak dalam analisis berlebihan, atau bahkan akhirnya memilih yang tidak optimal karena ketakutan membuat keputusan yang salah. Ironisnya, semakin banyak pilihan yang ada, semakin sulit untuk merasa puas dengan pilihan yang sudah dibuat.
Mana dari pilihan yang dipilih harus dianalisa dengan baik. Dan kalo perlu pengembang membuat sebuah matrix pilihan berdasarkan poin-poin seperti
- kemudahannya,
- kesulitannya,
- berapa lama pengerjaan,
- berapa jumlah resource, dan lain-lain.
Sehingga pengembang tidak salah dalam melakukan keputusan. Dan mudah memutuskan hal yang resikonya paling sedikit
Oke pemirsah, maaf kalo catatannya bikin mual, tulisan ini adalah contoh dari paradoks dalam dunia development, di mana lebih banyak pilihan justru bisa menghambat kemajuan daripada mempercepatnya. Seandainya pengembang hanya memiliki 1 pilihan saja dan tidak bisa beradaptasi dengan permintaan user itupun tidak baik untuk kemajuan pengembang itu sendiri.
Happy Coding !
Leave a Reply