Fenomena Preferensi Throwaway Code dibanding Dokumen Desain
(softwaredoug.com)-
Kita membayangkan pengembangan perangkat lunak mengikuti alur yang rapi dan teratur
- Menulis dokumen desain, lalu merilis perubahan kecil melalui PR untuk mengimplementasikan fitur
- Riwayat Git terlihat bersih dan tertata
- Namun kenyataannya berbeda
-
Perbedaan antara dokumen desain dan implementasi nyata
- Mengimplementasikan dokumen desain apa adanya adalah ilusi
- Saat mulai coding, isi dokumen desain akan ikut direvisi
- Rencana tidak akan bertahan setelah bersentuhan dengan musuh
-
Metodologi desain baru: tenggelam dalam coding
- Menggunakan draft PR untuk mengimplementasikan prototipe
- Mendapatkan umpan balik lebih awal lalu menyesuaikan pendekatan
- Mendokumentasikan draft PR sebagai ide desain historis
- Siap untuk membuang draft PR sepenuhnya
- Dari draft PR, melanjutkan PR secara bertahap
- Menguji setiap PR secara bertahap dan memperkuat ketahanannya
-
Pentingnya kedewasaan
- Kemampuan untuk membuang ide yang sudah dikodingkan itu penting
- Yang penting bukan jumlah baris kode, melainkan transfer pengetahuan organisasi
- Menyelaraskan hal-hal penting sejak awal agar pekerjaan prototipe tidak terbuang sia-sia
-
Cara menggunakan PR sebagai dokumentasi
- PR adalah salah satu bentuk dokumentasi terbaik bagi developer
- PR adalah artefak historis yang merefleksikan keadaan pada titik waktu tertentu
- Dokumen desain sering kali memberikan informasi yang berbeda dari kenyataan
-
Pentingnya prototipe
- Prototipe lebih berharga daripada 1000 dokumen desain
- Untuk mendorong perubahan, itu harus dilakukan dengan kode, bukan dokumen
- Organisasi perlu melihat prototipe bukan sebagai jawaban, melainkan sebagai pertanyaan
-
Kegunaan dokumen desain
- Berguna untuk mengorganisasi dan mengarsipkan umpan balik dari berbagai pemangku kepentingan
- Berguna ketika ide terlalu konseptual atau bersifat jangka panjang
- Berguna ketika mengekspresikan ide lewat tulisan lebih efisien daripada lewat coding
- Berguna ketika organisasi tidak memiliki disiplin untuk membuang solusi pertama
- Memberikan lingkungan yang aman agar staf junior dapat mempertanyakan ide developer senior
-
Penggunaan dokumen desain yang keliru
- Digunakan untuk memperlambat proses bagi developer yang kurang berpengalaman
- Dipakai sebagai dokumentasi tetapi cepat usang
- Berusaha menyelesaikan semua masalah desain, padahal masalah nyata ditemukan lewat coding
-
Jika tim bisa memiliki disiplin, hacking jauh lebih efisien daripada desain
- Disarankan untuk membangun disiplin semacam ini di dalam organisasi
- Pada akhirnya, kode punya daya yang lebih besar daripada kata-kata
1 komentar
Opini Hacker News
Prototyping adalah bagian penting dari proses desain, dan perlu mendefinisikan masalah serta memperjelas solusinya
Menulis bermanfaat untuk mengeksplorasi masalah, dan ada pengalaman merasa sudah memahami masalah tetapi saat menulis justru muncul pertanyaan baru
Ada pengalaman menggunakan solusi sementara untuk menyelesaikan proyek tepat waktu
Masalah terbesar dokumen desain adalah tidak ada yang membacanya
Ada perbedaan besar dalam umpan balik terhadap kode dan desain
Jika deskripsi pekerjaannya adalah menulis banyak kode untuk melihat apa yang efektif, GPT bisa menggantikannya dengan lebih cepat dan murah
Hampir tidak ada orang yang membayangkan pengembangan perangkat lunak mengikuti alur yang rapi dan teratur
Pernah melihat kode menumpuk seperti Jenga hingga tidak ada yang ingin menyentuhnya
Lebih menyukai proses mendokumentasikan keputusan desain menggunakan thread komentar yang berkelanjutan
Sedang memikirkan pendekatan ini, dan dalam skenario terburuk bisa membuang banyak waktu