13 poin oleh kciter1 2024-07-29 | 7 komentar | Bagikan ke WhatsApp
  • Debugging pada dasarnya adalah kemampuan wajib bagi developer
  • Dalam debugging, mindset tentang bagaimana mendekati masalah itu penting
  • Debugging adalah proses menemukan penyebab masalah berdasarkan situasi dan data yang diberikan
    • Penulis menyebut ini sebagai intuisi
    • Intuisi adalah menghubungkan pengetahuan yang kita miliki dengan masalah
    • Pengalaman berperan sebagai jalan pintas yang menghubungkan pengetahuan dengan intuisi
  • Untuk menemukan penyebab perilaku yang tidak terduga, developer secara naluriah akan mempersempit kemungkinan
  • Penulis berpendapat bahwa mempersempit satu per satu berdasarkan prinsip tertentu lebih efisien
  • Memperkenalkan empat tahap untuk menemukan masalah
    • Pertama, mencurigai
      • Kode, log, pesan error, data monitoring, requirement, hardware, dan lainnya semuanya digunakan untuk mengumpulkan informasi demi menyelesaikan masalah
      • Ada baiknya membuat checklist
    • Kedua, mengklasifikasikan
      • Dari informasi yang terkumpul, pisahkan antara yang sudah diketahui dan yang belum terlalu dipahami
      • Informasi yang langsung tersaring pada tahap pengumpulan informasi berasal dari intuisi kecil
      • Penulis mengklasifikasikannya menjadi empat: cacat logis, cacat pada teknologi dependensi, cacat pada teknologi dasar, dan cacat fisik
    • Ketiga, belajar
      • Berdasarkan informasi yang terkumpul, temukan celah pengetahuan dan pelajari
    • Keempat, menghubungkan
      • Berdasarkan informasi, buat hipotesis tentang masalah lalu lakukan eksperimen
      • Jika muncul wawasan baru dalam proses ini, gunakan feedback loop dengan kembali menjalani keempat tahap tersebut
  • Hal-hal yang diperkenalkan di atas merupakan cara yang berguna untuk melatih intuisi yang telah disebut sebelumnya
  • Jika belum punya prinsip debugging sendiri, tidak masalah membuatnya berdasarkan tulisan ini atau merancang yang baru. Akan lebih baik lagi jika membagikan tip yang bagus

7 komentar

 
cosine20 2024-07-30

Penulis berpandangan bahwa mempersempit ruang lingkup satu per satu dengan berpegang pada prinsip adalah cara yang efisien.

Saya sangat setuju. Dan saya rasa pendekatan umum terhadap debugging dirangkum dan diusulkan dengan sangat baik.

Dalam proses debugging yang sebenarnya, begitu banyak penyebab dan pengetahuan latar belakang yang saling terkait secara kompleks, sehingga menurut saya proses mempersempit fokus untuk menemukan petunjuk yang diperlukan di dalamnya benar-benar sangat penting.
Di artikel ini disebutkan bahwa dalam proses semacam itu kita perlu mengasah intuisi dan wawasan, dan tampaknya intuisi yang ditempa oleh pengalaman dan insting mengambil porsi besar dalam menentukan titik awal—secara naluriah menebak di mana penyebabnya dan area mana yang harus menjadi pusat penyelidikan.

 
kciter1 2024-07-30

Saya setuju. Saya ingin mengekspresikan intuisi yang Anda sebutkan itu dengan baik, tetapi saya jadi berpikir bahwa akan lebih baik jika seluruh tulisan secara konsisten menggunakan istilah wawasan alih-alih intuisi.

 
halfenif 2024-07-30

Ada anggapan bahwa orang yang bisa bernalar ya bisa, dan yang tidak bisa ya tidak bisa.

Mungkin sekitar 30 tahun yang lalu.

Para senior sering mengatakan bahwa kalau sudah berkecimpung di IT sekitar 3 tahun, kemampuan semua orang akan jadi sama saja.

Kalau dipikir-pikir sekarang ....

 
savvykang 2024-07-29

Bukankah lebih alami menganggap menghubungkan informasi sebagai ranah penalaran atau pembuktian logis, ketimbang intuisi? Jika seseorang berulang kali terlatih dalam pembuktian, proses di tengahnya bisa dilewati dan jawabannya langsung muncul seperti menghafal tabel perkalian, sehingga mungkin tampak seperti intuisi, tetapi menurut saya keduanya memang perlu dibedakan.

Untuk hal-hal lain seperti kecurigaan, klasifikasi, dan pembelajaran, saya setuju karena saya sendiri pernah merasakan bahwa semuanya meningkat seiring bertambahnya pengalaman dan pengetahuan latar belakang.

 
savvykang 2024-07-30

Saya menambahkan setelah membaca tulisan ini sekali lagi.

Definisi intuisi yang diajukan penulis tampaknya berbeda dari definisi intuisi yang lazim digunakan secara sosial. Saya memahami definisi intuisi yang umum sebagai memahami masalah tanpa melalui proses berpikir. Saat membaca tulisan ini, saya sempat bertanya-tanya apakah saya selama ini salah memahami arti intuisi, sehingga saya pun memastikannya kembali. Saya juga merasa ini tidak selaras dengan argumen keseluruhan bahwa debugging memerlukan prosedur berpikir. Jika debugging benar-benar merupakan pekerjaan yang bisa dilakukan sepenuhnya dengan intuisi, bukankah klaim bahwa saat debugging sama sekali tidak perlu memeriksa log atau data, maupun melakukan manajemen konfigurasi, juga harus benar?

 
kciter1 2024-07-30

Halo. Terima kasih atas perhatian Anda pada tulisan ini.

Seperti yang Anda sampaikan, secara umum intuisi berarti memahami suatu objek tanpa aktivitas berpikir yang langsung dan sadar. Namun, saya tidak berpikir seseorang benar-benar bisa sampai pada jawaban yang benar dalam keadaan tanpa pengetahuan sama sekali.

Kalau saya tuliskan dulu pandangan saya tentang kata intuisi, saat membicarakan debugging saya sering mendengar dari rekan kerja, atau pernah mengatakannya sendiri, hal-hal seperti “tiba-tiba terpikir” atau “entah kenapa rasanya bagian itu yang bermasalah”. Saya menganggap bagian itulah yang disebut intuisi. Ketika hal yang tiba-tiba terlintas itu tidak begitu saja dilewatkan dan diperiksa satu per satu, pada akhirnya saya menyadari bahwa sebenarnya ada pengalaman terkait bagian tersebut, atau pemahaman yang baik tentang pengetahuan yang relevan. Karena itulah saya menggunakan kata intuisi, dan karena bisa menimbulkan salah paham, saya menambahkan kalimat “menghubungkan pengetahuan yang saya miliki dengan masalah adalah intuisi”.

Jadi, untuk beberapa pertanyaan yang Anda sampaikan, pendapat saya adalah sebagai berikut.
Mengenai “bertentangan dengan argumen keseluruhan bahwa debugging memerlukan prosedur berpikir”, intuisi yang saya maksud dalam tulisan digambarkan sebagai menyingkat sesuatu berdasarkan hal yang sudah pernah dialami atau fakta yang sudah diketahui, tanpa perlu banyak berpikir lagi. Jadi maksudnya bukan bahwa prosedur berpikir tidak diperlukan, melainkan bahwa saya ingin menggambarkannya sebagai alat untuk berpikir lebih cepat.

Berikutnya, terkait “jika debugging benar-benar bisa dilakukan sepenuhnya dengan intuisi, bukankah berarti klaim bahwa saat debugging tidak perlu sama sekali memeriksa log, data, atau version control juga harus benar?”, saya tidak pernah menyatakan bahwa hal itu bisa dilakukan sepenuhnya dengan intuisi. Justru saya menambahkan kalimat, “debugging adalah proses menemukan penyebab masalah berdasarkan situasi dan data yang diberikan”. Hanya saja, saya rasa hampir tidak ada developer yang setiap kali debugging benar-benar melalui proses penalaran empat tahap seperti yang dikemukakan dalam tulisan. Jika sudah punya pengalaman dan pengetahuan sampai tingkat tertentu, ada kalanya sebagian langkah dilewati berdasarkan penilaiannya sendiri. Hal-hal seperti log dan data yang Anda sebutkan, menurut saya, memiliki dua peran: jika seseorang sudah punya pengalaman atau pengetahuan, itu membantu memunculkannya kembali; jika belum punya, itu membantu proses penalaran. Karena itu, bahkan untuk intuisi yang disebutkan dalam tulisan ini pun, hal-hal tersebut adalah informasi penting yang tidak boleh tidak ada.

Saya juga berpikir bahwa kata intuisi yang digunakan dalam tulisan ini sendiri bisa terasa samar. Bisa jadi susunan atau build-up tulisan saya kurang baik untuk menyampaikan maksud saya. Untuk sementara, bagian-bagian yang belum cukup konkret akan saya revisi. Namun, saya masih belum yakin apakah sebaiknya kata intuisi itu diganti. Sejak awal menulis, saya menganggap kata intuisi sebagai inti, jadi saya belum terpikir kata lain yang bisa menggantikannya. Jika Anda punya saran yang baik, saya akan sangat berterima kasih. :)

 
savvykang 2024-07-31

Saya menilai kelengkapan tulisan dapat ditingkatkan dengan menambahkan pada pendahuluan penjelasan latar belakang bahwa debugging memerlukan baik intuisi maupun penalaran, dan pada pembahasan utama metode menemukan masalah serta keterkaitan intuisi/penalaran.

Sebelum perubahan

  1. Debugging adalah proses menemukan penyebab masalah berdasarkan situasi dan data yang diberikan
  2. Pemecahan masalah melalui debugging biasanya berasal dari intuisi developer
  3. Ada empat tahap untuk menemukan masalah

Setelah perubahan

Pendahuluan

  1. Debugging adalah proses menemukan penyebab masalah berdasarkan situasi dan data yang diberikan
  2. Dalam debugging, dua subpekerjaan diperlukan secara berurutan: mengenali masalah dan menyelesaikan masalah
  3. Dalam pengenalan masalah, intuisi berperan; dalam penyelesaian masalah, penalaran berperan. Teori yang mendukung hal ini adalah dual process theory
  4. Jika dalam proses pengenalan masalah hanya digunakan penalaran, detail teknis seperti konfigurasi sistem harus diperiksa dan diverifikasi satu per satu, sehingga ada keterbatasan dalam meningkatkan produktivitas. Sebaliknya, menggunakan intuisi secara pendukung dalam proses pengenalan masalah lebih menguntungkan bagi strategi debugging
  5. Untuk meningkatkan efektivitas intuisi, penting untuk secara konsisten mengakumulasi pengalaman dan wawasan, yaitu heuristik
  6. Selalu ada kemungkinan bahwa intuisi keliru atau tidak sesuai dengan situasi, sehingga latihan untuk melepaskan diri dari bias kognitif juga penting

Pembahasan utama (prosedur debugging)

  1. Pengumpulan informasi
  2. Klasifikasi - intuisi dan heuristik berperan
  3. Pembelajaran
  4. Penyusunan dan verifikasi hipotesis - penalaran berperan