3 poin oleh GN⁺ 2024-05-06 | 1 komentar | Bagikan ke WhatsApp

Kesederhanaan itu unggul, tetapi sayangnya kenyataannya kompleksitas lebih laku

Mengapa kompleksitas lebih laku?

  • Kompleksitas berarti usaha
    • Makalah dengan ide yang sulit dan detail teknis yang menantang mengingatkan pada keringat dan air mata.
    • Sistem dengan lebih banyak komponen dan fitur terlihat membutuhkan usaha lebih banyak dibandingkan sistem yang lebih sedikit.
    • Hasil yang kompleks dianggap membutuhkan usaha lebih besar, sehingga dianggap lebih sulit dibuat dan lebih bernilai.
    • Karena usaha yang menyertai kompleksitas, seringkali dipandang memiliki kualitas yang lebih tinggi.
  • Kompleksitas berarti keterampilan
    • Sistem kompleks dengan banyak komponen yang bergerak menunjukkan bahwa perancangnya memiliki keahlian pada tiap komponen serta kemampuan untuk mengintegrasikannya.
    • Makalah yang sulit dipahami, penuh istilah teknis dan bukti, menunjukkan keahlian dalam bidang tersebut.
    • Jika orang awam sulit memahami ide atau sistem yang kompleks, maka kreatornya dianggap seorang ahli.
  • Kompleksitas berarti inovasi
    • Makalah yang menemukan arsitektur model yang benar-benar baru diakui sebagai lebih baru dibandingkan makalah yang menerapkan jaringan yang sudah ada.
    • Sistem dengan komponen yang dibangun dari nol dipandang lebih kreatif daripada sistem yang memanfaatkan kembali komponen yang ada.
    • Karya yang didasarkan pada pekerjaan sebelumnya atau menggunakannya kembali tidak begitu inovatif.
  • Kompleksitas berarti lebih banyak fitur
    • Sistem yang memungkinkan komponen untuk digabungkan dan disejajarkan menawarkan fleksibilitas untuk menangani berbagai kebutuhan dasar.
    • Sistem kompleks dipandang lebih adaptif dan lebih mampu merespons perubahan karena memiliki lebih banyak blok dibandingkan sistem sederhana.

Keunggulan kesederhanaan

  • Ide dan fitur sederhana mudah dipahami dan digunakan
    • Ini meningkatkan kemungkinan adopsi dan menciptakan dampak.
    • Komunikasi dan menerima umpan balik juga lebih mudah.
    • Sebaliknya, sistem kompleks sulit untuk dijelaskan dan dikelola, sehingga pengguna kesulitan memahami apa yang harus dan bagaimana harus dilakukan.
  • Sistem sederhana mudah dibangun dan diperluas
    • Semakin sedikit komponen, semakin mudah diimplementasikan.
    • Dengan menggunakan teknologi standar siap pakai, lebih mudah menemukan orang yang memenuhi syarat untuk mengimplementasikan dan memelihara sistem.
    • Sistem sederhana lebih mudah dipahami dan diuji karena memiliki lebih sedikit kompleksitas, kode, dan interaksi dalam sistem.
    • Sebaliknya, sistem yang tidak perlu kompleks memerlukan lebih banyak waktu dan sumber daya, sehingga berujung pada ketidakefisienan dan pemborosan.
  • Sistem sederhana memiliki biaya operasional yang lebih rendah
    • Deployment sistem bukanlah garis finis, melainkan garis start.
    • Sebagian besar usaha terjadi saat sistem sudah ada di lingkungan produksi, dan dengan menjaga sistem tetap sederhana, biaya pemeliharaan dapat ditekan dan umur pakai meningkat.
  • Dalam machine learning, teknik sederhana sering tidak kalah dari teknik yang lebih canggih
    • Model berbasis pohon lebih unggul daripada deep neural network pada data tabel berukuran menengah.
    • Algoritme greedy unggul daripada graph neural network pada masalah kombinasi graf.
    • Rata-rata sederhana menunjukkan performa yang sama atau lebih baik dibandingkan optimizer kompleks pada masalah pembelajaran multitugas.
    • Pada 32 makalah, metode sederhana unggul dari metode kompleks dalam hal akurasi prediksi.
    • Dalam rekomendasi dan pencarian, inner product lebih baik daripada neural collaborative filtering.

Masalah dengan imbalan terhadap kompleksitas

  • Mendorong orang untuk membuat sesuatu secara tidak perlu kompleks
    • Menggunakan metode sederhana atau membangun sistem sederhana terlihat lebih mudah, sehingga nilainya dianggap lebih rendah.
    • Akibatnya, orang memanipulasi sistem agar mendapatkan imbalan lebih tinggi, dan solusi paling sederhana tidak lagi menjadi solusi yang paling jelas.
  • Mendorong pola pikir "not invented here"
    • Orang enggan menggunakan kembali komponen yang sudah ada dan lebih memilih membangun dari awal, meski itu dapat menghemat waktu dan tenaga.
    • Ini memboroskan waktu dan sumber daya dan sering menyebabkan hasil yang lebih buruk.

Bagaimana harus memikirkan kompleksitas?

  • Tujuan harusnya menyelesaikan masalah yang kompleks dengan solusi se-sederhana mungkin
    • Daripada fokus pada kompleksitas solusi, fokus harus diarahkan ke kompleksitas masalahnya.
    • Solusi sederhana menunjukkan wawasan mendalam terhadap masalah dan kemampuan untuk menghindari solusi yang lebih rumit dan mahal.
  • Daripada satu solusi kompleks yang mengklaim menyelesaikan semuanya, pertimbangkan banyak solusi yang terfokus
    • Solusi all-in-one umumnya tidak sefleksibel dan se-reusable sebagaimana diharapkan.
    • Karena ada untuk banyak kasus penggunaan dan pemangku kepentingan, mereka cenderung menjadi "terikat erat" dan memerlukan lebih banyak penyesuaian saat perencanaan dan migrasi.
    • Sebaliknya, mengoperasikan dan mematikan sistem dengan tujuan tunggal lebih mudah.

Opini GN⁺

  • Artikel ini menjelaskan dengan meyakinkan mengapa kompleksitas disukai dan apa keunggulan kesederhanaan. Menarik bahwa kompleksitas disukai karena dianggap menyiratkan keterampilan, inovasi, dan fitur.
  • Namun, sulit mengklaim bahwa solusi sederhana selalu lebih baik dalam semua kasus. Tergantung karakter masalah, diperlukan tingkat kompleksitas tertentu. Menemukan keseimbangan antara kesederhanaan dan kompleksitas akan sangat penting.
  • Di bidang machine learning, kasus-kasus di mana model sederhana memiliki performa lebih baik sangat menarik. Saat mengembangkan model baru, baiknya membandingkannya dengan metode sederhana yang sudah ada.
  • Dalam evaluasi kinerja organisasi, sebaiknya tidak terlalu menekankan kompleksitas. Sebaliknya, fokus pada tingkat kesulitan masalah dan efektivitas solusi tampaknya lebih tepat.
  • Dalam perancangan arsitektur, mempertimbangkan beberapa sistem sederhana untuk satu tujuan tunggal dibandingkan satu sistem kompleks yang serba guna juga tampaknya menjadi pendekatan yang baik.

1 komentar

 
GN⁺ 2024-05-06
Opini Hacker News

Ringkasan:

  • Cara membangun produk MVP (produk minimum yang layak) secara berulang juga dapat menjadi penyebab timbulnya kompleksitas.
  • Sistem yang memberikan imbalan lebih besar untuk menyelesaikan masalah yang kompleks justru bisa menimbulkan kompleksitas yang tidak perlu.
  • Karena perbedaan kebutuhan antara konsumen tingkat lanjut dan konsumen yang bercita-cita, perusahaan kadang memilih untuk memenuhi kebutuhan konsumen bercita-cita sebagai pilihan yang rasional.
  • Perangkat lunak yang kompleks dan banyak bug justru dianggap lebih disukai karena orang bisa bersembunyi di baliknya.
  • Kita dibesarkan sejak kecil dengan pola pikir bahwa “semakin banyak, semakin baik”.
  • Sebagai seorang insinyur, kita cenderung lebih tertarik pada tantangan daripada solusi yang sederhana.
  • Ada paradoks psikologis di mana kita menyukai yang sederhana, tapi justru menghindari hal yang terlihat sederhana.
  • Mudah mengkritik solusi rumit secara retrospektif, namun kritik itu terasa hampa jika tidak memahami kendala dan kebutuhan saat itu.
  • Prinsip “se-sederhana mungkin, tetapi tidak terlalu sederhana” selalu benar, tetapi sulit untuk diterapkan.
  • Banyak pula kondisi di mana hal yang sederhana di awal proyek pun tidak terelakkan menjadi kompleks saat kebutuhan membesar.