2 poin oleh GN⁺ 6 jam lalu | 2 komentar | Bagikan ke WhatsApp
  • Saat mencoba menyesuaikan blog dengan bebas, prosesnya melebar hingga membuat penulisan HTML, sistem penulisan berbasis JSON, konversi Markdown, sampai alat kompilasi dan deployment, dan akhirnya berujung pada pengalaman membangun generator situs statis sendiri
  • yak shaving berarti situasi ketika rangkaian pekerjaan untuk mencapai satu tujuan justru makin menjauh dari tujuan awal; istilah ini diciptakan oleh Carlin Vieri dari MIT AI Lab
  • Insinyur dan manajer mudah terjebak dalam jebakan membangun dari nol ketika solusi yang sudah ada terasa tidak memuaskan atau tidak sesuai dengan kebutuhan
  • Dalam anggaran dan waktu yang terbatas, alih-alih menikmati kesenangan membuat sendiri, memilih alternatif yang memenuhi kebutuhan inti dan mengurangi beban kerja bisa menjadi hal yang lebih penting
  • Ada kasus yang menghasilkan pencapaian besar seperti TeX karya Donald Knuth, tetapi sebagian besar yak shaving bisa berakhir gagal, dan jika ada pelajaran yang didapat maka itu sendiri sudah bernilai

Blog buatan sendiri berkembang menjadi generator situs statis

  • Tidak menggunakan generator situs statis atau framework seperti Jekyll, Hugo, Gatsby
  • Awalnya sempat mencoba beberapa alat, tetapi merasa kebebasan kustomisasinya kurang sehingga memutuskan untuk membuat sendiri
  • Menulis artikel langsung dalam HTML terasa tidak nyaman, lalu dibuat sistem penulisan berbasis file JSON untuk mengatasinya, tetapi untuk tulisan panjang cara itu kembali terasa canggung
  • Setelah itu, prosesnya meluas hingga membuat layanan untuk mengubah file Markdown menjadi HTML serta alat untuk mengompilasi dan men-deploy file hasilnya, dan pada akhirnya sama saja dengan membuat generator situs statis dari nol

Makna dan asal-usul yak shaving

  • yak shaving berarti situasi ketika seseorang terus mengikuti pekerjaan-pekerjaan terkait demi satu tujuan, lalu kehilangan tujuan semula dan malah mengerjakan hal yang sama sekali berbeda
  • Contoh dari LangDev IRC adalah alur saat seseorang ingin menebang pohon dengan kapak, lalu mencari batu untuk mengasah kapak, perlu pergi ke desa yang punya batu bagus, harus mendapatkan yak untuk ke sana, bulu yak-nya ternyata sudah panjang, dan akhirnya malah mencukur bulunya
  • Contoh dari Seth Godin dimulai dari mencuci mobil, lalu merembet ke selang, Home Depot, E-ZPass, E-ZPass milik tetangga, masalah bantal pinjaman, hingga berakhir pada cerita mencukur bulu yak di kebun binatang
  • Ungkapan ini diciptakan oleh Carlin Vieri di MIT AI Lab
    • Vieri bermain hoki hingga larut malam pada hari Selasa, lalu makan malam tengah malam sambil menonton episode Yak Shaving Day dari The Ren & Stimpy Show
    • Beberapa hari kemudian, saat mengurus pekerjaan administratif seperti izin, pengaturan akun DHL, dan mencari kantor pos, ia berkata kepada rekannya bahwa dirinya sedang melakukan yak shaving
    • Dalam beberapa bulan berikutnya, ia terus memakai ungkapan itu di laboratorium hingga menyebar

Risiko membangun dari nol

  • Salah satu kesalahan yang sering dilakukan insinyur atau manajer yang memimpin tim engineering adalah membangun dari nol
  • Insinyur bisa merasa solusi yang sudah ada tidak memuaskan atau ingin membuktikan kemampuannya sendiri
  • Pelanggan atau manajer bisa saja salah memahami apa yang dilakukan solusi yang ada, atau menilai bahwa solusi tersebut tidak memenuhi kebutuhan secara tepat
  • Sebagian besar proyek, baik pengembangan produk maupun proyek main-main, memiliki anggaran dan waktu yang terbatas
  • Begitu mulai membuat sendiri, sangat mudah merembet menjadi yak shaving; setelah masuk ke dalamnya, sulit menebak akan berakhir di mana dan bahkan tujuan awal bisa ditinggalkan
  • Dalam situasi seperti ini, lebih tepat mencari alternatif yang memenuhi inti kebutuhan dan sebisa mungkin mengurangi pekerjaan

Mengapa yak shaving tetap menyenangkan

  • Yak shaving sulit dihentikan karena ada kesenangan tersendiri dalam membuat sesuatu secara langsung
  • Proses menciptakan sesuatu yang sebelumnya belum ada, menemukan dan menyelesaikan masalah, serta menelusuri rantai pengetahuan untuk memahami cara kerja sesuatu sangat menarik bagi insinyur
  • Bahkan bagi yang bukan insinyur, gagasan membuat sendiri apa yang diinginkan tetap terasa menarik
  • Frederick P. Brooks Jr. merangkum alasan pemrograman itu menyenangkan dalam The Mythical Man-Month sebagai berikut
    • Kesenangan murni dalam menciptakan sesuatu
    • Kesenangan membuat sesuatu yang berguna bagi orang lain
    • Daya tarik membuat sesuatu yang seperti teka-teki kompleks yang saling terkait dan melihat aturannya bekerja dalam putaran yang halus
    • Kesenangan untuk terus belajar
    • Kesenangan bekerja dengan medium ekspresi yang lentur dan mudah ditangani

TeX sebagai yak shaving yang sukses

  • TeX juga merupakan contoh yang lahir dari yak shaving
  • TeX adalah sistem typesetting buatan profesor Stanford Donald Knuth, dan mengacu pada keseluruhan sistem tempat program itu berjalan, termasuk bahasa typesetting dan kompiler yang memprosesnya
  • Karena memudahkan penulisan rumus, TeX digunakan luas di bidang ilmu sosial, sains, dan teknik, dan sebagian besar pengguna memakai LaTeX, yaitu kumpulan makro agar TeX lebih mudah digunakan
  • Pada 1976, ketika Donald Knuth menyiapkan edisi kedua volume 2 dari The Art of Computer Programming, ia menginginkan typesetting huruf logam yang dipakai pada edisi pertama, tetapi itu sudah tidak bisa digunakan lagi
  • Karena tidak puas dengan alternatif yang ada, Knuth melihat buku tentang digital typesetting karya Patrick Winston lalu memutuskan untuk membuat sendiri sistem digital typesetting
  • Knuth membuat versi pertama TeX dengan bahasa SAIL, lalu kemudian menyelesaikannya menggunakan bahasa WEB yang ia ciptakan sendiri
    • Sumber WEB mencampurkan dokumentasi dan kode dalam satu pendekatan
    • Dengan program Weave dan Tangle, file WEB dapat diekstrak masing-masing menjadi file TeX dan file Pascal
    • Knuth menyebut paradigma pemrograman ini sebagai literate programming
  • Bersama Michael Plass, Knuth juga merancang algoritme line breaking Knuth-Plass untuk menentukan titik pemenggalan baris dalam paragraf
  • Ia juga merancang Computer Modern, font untuk TeX, membuat METAFONT, bahasa untuk mendefinisikan grafik vektor, serta mengembangkan format DVI untuk menampilkan keluaran TeX tanpa bergantung pada perangkat tertentu
  • Bisa dibilang, demi menulis sebuah buku, ia menciptakan bahasa pemrograman, paradigma, algoritme, alat, dan font; pembuatan TeX memakan waktu hampir 10 tahun dan bukunya pun terbit terlambat selama itu, tetapi usahanya tidak sia-sia

Di antara kegagalan dan pembelajaran

  • TeX adalah contoh sukses yang ekstrem, dan sebagian besar yak shaving berakhir gagal
  • Seseorang perlu berhenti pada titik yang tepat, tetapi sering sulit berhenti karena merasa sayang dengan waktu yang sudah dihabiskan atau karena yak shaving itu sendiri menyenangkan
  • Bahkan ketika harus terus dilanjutkan sampai akhir, minat bisa meredup dengan pikiran seperti “sebenarnya saya sedang mengerjakan apa?”, atau proyek bisa dihentikan karena sumber daya yang dialokasikan habis
  • Bagi orang yang ingin belajar, yak shaving bisa sangat efektif
  • Banyak kelas ilmu komputer, terlepas dari niat pengajarnya, menuntut tingkat tertentu dari yak shaving, dan kadang seseorang justru mendapat lebih banyak dengan menggali pengetahuan di sekeliling tugas daripada dari isi tugas itu sendiri
  • Untuk membangun sistem komputasi dengan cara yak shaving, seseorang perlu mempelajari Boolean logic, sirkuit logika, arsitektur komputer, bahasa pemrograman, hingga sistem operasi
  • The Elements of Computing Systems karya Noam Nisan dan Shimon Schocken mengikuti tepat proses seperti ini
  • Meski tidak berhasil mencapai akhir, jika seseorang mempelajari sesuatu selama mencukur yak, itu saja sudah bernilai

2 komentar

 
unsure4000 4 jam lalu

Sepertinya versi postingan berbahasa Korea adalah versi aslinya.

https://parksb.github.io/article/32.html

 
GN⁺ 6 jam lalu
Pendapat Lobste.rs
  • Mencukur bulu yak itu menyenangkan, tetapi kita tetap harus menetapkan batas kedalaman rekursi atau upaya, lalu berhenti saat sudah mencapainya

  • Sangat mengganggu ketika seseorang menciptakan ungkapan yang hampir tak pernah dipakai lalu menggunakannya seolah-olah itu istilah yang semua orang tahu. Pengguna Reddit terutama sering melakukan hal seperti ini, sambil terus mengutip hukum ini-itu
    Saya sudah menemukan sumber MIT untuk istilah ini: https://projects.csail.mit.edu/gsb/old-archive/…

    • Memang akan selalu ada orang yang baru pertama kali mendengarnya, tetapi yak shaving adalah ungkapan yang cukup umum di bidang kita. Kalau dicari, contoh pemakaiannya sangat banyak
    • Tulisan itu mendefinisikan istilah tersebut sejak awal, dan menurut saya penjelasannya juga cukup baik
    • Mempelajari idiom yang sebelumnya tidak kita kenal justru menyenangkan, bukan? Ini juga bukan percakapan tatap muka yang merugikan kalau kita tidak bisa langsung mengikuti secara real time
      Kalau tidak bersentuhan dengan hal-hal di luar cakrawala kita, bagaimana cakrawala itu bisa meluas?
    • Sulit dipercaya belum ada yang mengatakan ini, tetapi yak shaving adalah ungkapan yang sepenuhnya cromulent