Over-engineer adalah istilah ketika kita menyelesaikan suatu masalah Tetapi dengan solusi yang berlebihan. Yuk kita bahas seputar apa itu overengineering di sini
Daftar Isi:
Engkau sedang Ingin keluar rumah, tapi di luar hujan. Bagaimana ya biar Kagak basah kuyup? Saya Eksis ide! bagunlah kanopi.. Tamat tujuan Engkau. Masalahnya selesai, Engkau Kagak basah Kembali. Tapi.. apakah bikin kanopi adalah solusi yang Betul Kepada menghindari hujan?
Yang kita lakukan di atas adalah over-engineering suatu masalah. Overengineer Dapat kita artikan “Menggunakan solusi berlebihan dari yang dibutuhkan”. Berlebihan di sini Dapat banyak: Dapat lebih mahal atau lebih kompleks.
Misalnya over-engineer pada dev
Sebagai seorang developer Eksis banyak kasus kita berlebihan menggunakan sesuatu. Misalnya:
- Demi Ingin toggle sebuah modal (open/close) kita langsung menggunakan aplikasi state management.
- Butuh Membangun 1 halaman website sederhana, kita langsung mencari framework javascript.
- Demi butuh sebuah data, kita memilih menyiapkan abstraksi, API, authentikasi dan lainnya.
Tentu setiap kasus di atas akan sangat bergantung dengan konteksnya masing-masing.
Penyebab over-engineering
Hal ini Dapat dikarenakan oleh pengetahuan yang terbatas Demi itu. Eksis istilah “kalau orang sudah belajar memalu, semuanya terlihat seperti paku”. Kita berusaha mengimplementasikan ilmu yang kita punya tanpa Paham konteks sebenarnya.
Kagak mengetahui konteks
Masing-masing alat (tool/library/framework) punya tujuan kenapa ia dibuat. Kagak Eksis satu tool Kepada mengatasi Seluruh masalah.
Kepada mengatasinya, tentu perlu mempelajari tool atau ilmu yang kita punya sekarang. Apa sih konteks ia digunakan, Bilaman sebenarnya solusi ini menjadi Betul.
Kagak mencari alternatif
Yang kedua, kita perlu mencari alternatif. Eksis banyak hal yang kita Kagak Paham. Karena itu perlu Menyaksikan pilihan-pilihan lain. Mungkin Eksis solusi yang lebih Betul.
Kita perlu terbuka dengan alat atau ide yang Kagak familiar sebelumnya. Dapat jadi ini Dapat jauh Membangun pekerjaan kita jadi lebih mudah.
Berlebihan memikirkan masa depan
Kita senang Membangun sebuah abstraksi, karena takut program ini akan diimplementasikan di banyak hal, lebih Berkualitas kita abstraksikan sekarang agar nanti menjadi lebih Elastis.
Argumen ini tentu valid. Kita Kagak boleh melupakan rencana dari aplikasi ini, bukan hanya Demi ini saja. Kita harus Paham, apa yang akan ditambahkan nanti, dalam jangka waktu berapa Pelan, dan informasi lainnya. Karena itu kita perlu mempelajari kebutuhan dari aplikasi ini sedetail mungkin dari berbagai orang yang terlibat dengan proyek ini seperti klien atau bos kita.
Toleransi over-engineer
Bagaimana dengan jaman sekarang? ketika banyak bahasa program baru, framework bahkan aplikasi yang memudahkan pekerjaan kita. Dapat jadi framework tersebut tergolong ‘berat’ atau aplikasinya ‘mahal’. Apakah menggunakan solusi tersebut tergolong over-engineer?
Trade-off
Mungkin sebagai seorang developer kita Dapat Membangun suatu aplikasi lebih Segera dengan mempelajari bahasa low-level. Dengan ini kita Membangun aplikasinya lebih Ekonomis resources, performanya lebih Berkualitas dan gratis (karena kita buat sendiri!).
Pertanyaannya: apakah Engkau rela menghabiskan banyak waktu Kepada itu? mempelajari, implementasi dan proses debugnya butuh waktu yang Pelan.
Demi solusi yang Eksis sudah cukup memuaskan. Maka Kagak perlu berlebihan mengejar lebih Segera 0.0005 detik tersebut, Kalau memang Kagak dibutuhkan.
Bahkan ‘over-engineer’ adalah ketika kita menggunakan resource kita sendiri (pikiran dan waktu) Kepada menyelesaikan masalahnya secara berlebihan.
Kita harus memikirkan “tradeoff”(apa yang ditukar) dan Menyaksikan mana yang lebih menguntungkan, meskipun Eksis sedikit yang dikorbankan.
Misalnya di atas: kita memikirkan tradeoff antara belajar bahasa low-level jaman dulu Kepada Membangun aplikasi lebih Segera 1/2 detik.
Apakah 1/2 detik ini Betul-Betul diperlukan di aplikasi Engkau? Kalau Kagak, maka Kagak perlu melakukan hal tersebut.
Terbatasnya waktu dan kondisi
Dapat juga penyebab over-engineer karena kita Kagak punya waktu Kepada mencari alternatif lain. Akhirnya kita hanya Membangun berdasarkan pengetahuan yang Eksis. Mungkin di kasus ini Dapat ‘dimaafkan’.
Overengineer pada fitur
Overengineer bukan hanya pada solusi, tapi juga pada fiturnya. Dapat jadi implementasi teknologinya sederhana, Tetapi fitur yang kita hadirkan Bahkan Membangun sesuatu lebih kompleks dari yang dibutuhkan. Kita juga perlu berhati-hati, jangan Tamat implementasi solusinya yang berlebihan.
Konklusi
Kita perlu Menyaksikan over-engineer dari perspektif seorang developer dengan berbagai konteksnya: berapa Pelan waktu yang disediakan, berapa budget yang tersedia dan konteks lainnya. Setelah itu kita Dapat memikirkan apakah Eksis Langkah yang lebih mudah Kepada “Membangun aplikasi” ini tanpa melupakan proses pengembangan ke depannya.
Hai saya Hilman, Membangun situs Sekolah Koding (Skodev) dan menulis Naskah Kepada programmer (Halo Koding), Halo Koding . Sudah mengetik-ngetik alias programming sejak 2015. Semoga artikel dan situs ini Dapat bantu karir Engkau ya!