- Seorang engineer mengurangi pengaturan idle 10 menit setelah kueri di Snowflake, sehingga perkiraan biaya database tahunan turun dari sekitar 1 juta dolar menjadi 500 ribu dolar
- Advanced Analytics Platform yang tertunda selama bertahun-tahun, bahkan setelah dirilis, masih bergantung pada rantai ETL yang kompleks yang melibatkan spreadsheet, S3, Lambda, MongoDB, Snowflake, dan stored procedure JavaScript
- Inti pemborosan biaya adalah struktur di mana compute tetap menyala lama setelah kueri rata-rata 2 detik, padahal data yang diproses kurang dari 1 TB per hari
- Perubahan awalnya diterapkan hanya ke sebagian compute, dan manajer mengakui efek penghematannya tetapi ingin menunda penerapan penuh; di PowerPoint hal itu dibungkus seolah-olah optimasi berdasarkan analisis pola penggunaan
- Bahkan setelah memangkas 500 ribu dolar, kompensasi tetap tidak pasti dan beban rapat serta pelaporan malah bertambah, menjadi contoh bagaimana inefisiensi organisasi menciptakan biaya politik yang lebih besar daripada eksekusi singkat oleh individu
Platform analitik yang tertunda bertahun-tahun
- Perusahaan memutuskan untuk membangun platform analitik sambil mengatakan ingin bekerja lebih berbasis data, lalu merekrut orang-orang terkait
- Engineer yang masuk sebagai data scientist tidak bisa benar-benar mengerjakan pekerjaan data science, dan untuk permintaan compute bagi machine learning maupun data pipeline ia hanya mendapat jawaban agar menunggu sampai Advanced Analytics Platform, yaitu AAP, dideploy
- AAP awalnya dijadwalkan rilis pada Januari, lalu mundur ke Maret, dan setelah itu ditunda dengan alasan Covid
- Tiga tahun setelah ia meninggalkan perusahaan, AAP akhirnya siap dirilis, tetapi fitur-fitur yang sebenarnya dibutuhkan ternyata sejak awal tidak pernah masuk rencana
- Pada minggu yang sama, empat engineer meninggalkan perusahaan, dan ia bergabung ke tim AAP setelah mengajukan syarat tertentu
Utang teknis yang terlihat segera setelah rilis
- AAP baru saja dirilis, tetapi sudah memiliki banyak utang teknis dan risiko operasional
- Rekan baru yang direkrut menemukan sejak hari pertama bahwa jika berpindah ke folder yang salah di repository proyek, ada file yang bisa menghapus production lewat pipeline CI/CD
- File ini juga berisi key dan password yang dibutuhkan untuk akun administrator
- Perubahan hak akses database, meski hanya berupa upload CSV sekitar 2 KB, tetap harus melewati jalur yang terlalu panjang
- Spreadsheet diparse oleh Python
- Hasilnya dimasukkan ke S3
- Lambda mengubahnya lagi ke S3
- MongoDB mengambil file dari S3
- Lambda lain mengirim record MongoDB ke S3
- Snowpipe membawa data dari S3 ke Snowflake
- Stored procedure JavaScript memutar data Snowflake ke format relasional
- Tim keamanan meminta format yang mudah dipindai untuk konten berbahaya sehingga semuanya diubah menjadi CSV, tetapi alat pemindai yang sebenarnya tidak pernah dideploy
- Fungsi Lambda dimulai dengan
counter = 1, jejak dari implementasi lama, dan baris itu terus disalin - Pengujian CI/CD tetap gagal selama berbulan-bulan karena saat debugging, penggunaan perintah
teemenimpa kode kegagalan - Pengambilan password API juga berbelit dalam dua tahap
- Jika mencari key seperti
service-passworddi layanan AWS, nilainya juga keluar sebagaiservice-password - Nilai itu lalu dipakai lagi di layanan lain untuk mencari password yang sebenarnya
- Jika mencari key seperti
- Skrip pembuat file konfigurasi pipeline diawali dengan 600 baris yang dikomentari, dengan alasan mungkin akan dibutuhkan nanti
Konfigurasi Snowflake yang menyebabkan pembengkakan biaya
- Platform ini beberapa kali lebih mahal dibanding model operasi sebelumnya, dan jauh melampaui anggaran biaya database
- Biaya operasi tahunan awalnya tampak dimaksudkan sekitar 200 ribu dolar, tetapi perkiraan biaya aktual naik mendekati 1 juta dolar
- Database yang digunakan adalah Snowflake, dan Snowflake menagih berdasarkan ukuran komputer yang menjalankan kueri
- Compute hanya menimbulkan biaya saat dalam keadaan menyala
- Tim menjalankan ribuan kueri per minggu, dan sebagian besar hanyalah kueri eksperimen developer untuk sedikit menyesuaikan laporan PowerBI yang bahkan tidak dibaca
- Waktu eksekusi kueri rata-rata sekitar 2 detik, tetapi compute dikonfigurasi tetap idle selama 10 menit setelah kueri selesai
- Sekitar sebulan setelah bergabung, ia menemukan pengaturan ini dan mengusulkan penyesuaian, tetapi yang terjadi hanya diskusi prosedural tentang perlunya discovery tanpa eksekusi
Perubahan lima menit dan verifikasi
- Beberapa bulan kemudian, setelah menerima kartu “Discovery: Optimise Costs”, ia butuh hasil untuk disampaikan di standup berikutnya dan memutuskan memverifikasi hipotesis lamanya sendiri
- Ia meminta agar engineer baru dari tim lain yang tampak kompeten diberi hak administrator, tetapi manajer tidak mengizinkannya
- Sebagai gantinya, dibagikan kredensial database tingkat lebih rendah, bukan hak admin, dan engineer tersebut melakukan pemeriksaan kewarasan atas kemungkinan penghematan biaya
- Pada pukul 4 sore di hari terakhir pekan kerja, ia mengubah pengaturan itu setelah memastikan di ruang chat engineer tanpa admin bahwa tidak ada masalah
- Demi keamanan, perubahan itu terlebih dahulu diterapkan hanya pada sebagian compute, bukan semuanya
Efek penghematan dan respons organisasi
- Senin berikutnya, tagihan yang diperkirakan turun dari sekitar 1 juta dolar menjadi 500 ribu dolar
- Tim membingkainya sebagai pencapaian besar penghematan biaya, tetapi dari sudut pandangnya hal itu lebih mirip menghentikan uang yang memang sudah terbuang
- Tim lain mempermasalahkan bahwa engineer baru bergabung pada saat yang sama dengan penghematan ini, lalu mempertanyakan mengapa penghematan seperti ini tidak diketahui sebelumnya
- Manajer senang, tetapi juga merasa jika perubahan langsung diterapkan ke semua compute, departemen akan mendapat perhatian berlebihan dan memunculkan pertanyaan yang tidak diinginkan
- Ada isyarat agar penerapannya dilakukan perlahan supaya terlihat seperti pekerjaan yang memakan waktu lama
- Ia harus membuat PowerPoint, dan redaksinya dirangkum seperti: “analisis statistik yang cermat terhadap pola penggunaan menunjukkan peluang alokasi sumber daya yang lebih efektif”
- Padahal perubahan sebenarnya hanyalah penyesuaian pengaturan agar compute mahal tidak dibiarkan idle sepanjang hari
Beban yang tersisa setelah pencapaian
- Ia menilai bahwa dengan menemukan beberapa engineer bagus dan bergerak secara informal, ia bisa menghasilkan dampak yang lebih besar dengan lebih mudah daripada keseluruhan departemen
- Ia menyimpulkan bahwa orang-orang yang kompeten ada di dalam organisasi, tetapi struktur organisasi membuat mereka tidak bisa benar-benar berdaya
- Setelah menghemat 500 ribu dolar, ia meminta kenaikan 30 ribu dolar, tetapi pesannya tidak dibaca, dan ia memperkirakan tidak akan mendapat apa-apa atau mungkin hanya sekitar 5 ribu dolar
- Rapat untuk membicarakan penghematan biaya justru bertambah, dan muncul pula beban membuat PowerPoint
- Ia menutup dengan mengatakan bahwa mungkin lebih baik baginya jika tidak melakukan apa-apa; dalam 5 menit ia menghasilkan pencapaian terbesar dalam kariernya, tetapi segera sesudah itu harus menanggung beban tambahan
1 komentar
Komentar Hacker News
Seluruh tulisan ini sangat terasa relevan
Catatan karier saya di US Navy untuk penghematan biaya mencapai lebih dari 50 juta dolar. Setiap kali melakukan sesuatu, saya harus membuat PowerPoint dan mempresentasikannya kepada para perwira tinggi, dan sekali waktu saya hampir dihukum berat karena dianggap tidak membiarkan atasan saya mengambil kredit. Padahal atasan itu sama sekali tidak tahu apa yang saya lakukan, jadi bahkan tidak terpikir olehnya untuk mengambil kredit
Sebagian di antaranya terjadi saat saya mengerjakan proyek lintas organisasi sebagai Lean Six-Sigma Black Belt, sampai-sampai saya membenci seluruh istilah itu. Secara harfiah tugas saya adalah memangkas biaya DOD semaksimal mungkin, dan itu adalah periode terburuk dalam karier saya. Itu adalah “hadiah” karena berhasil menyelesaikan masalah yang menghemat jutaan dolar secara mandiri
Saya setuju dengan bagian akhir tulisan itu. Berhati-hatilah saat melakukan hal baik di tempat kerja. Imbalannya hampir tidak pernah berupa uang, melainkan lebih banyak pekerjaan dengan gaji yang sama
Dulu saya pernah berada di tempat yang jauh lebih baik, dan kalau saya dengan sengaja mengambil inisiatif untuk menghemat jutaan dolar, saya benar-benar diberi selamat dan atasan saya juga mengakui kontribusi saya
Jangan pernah bertahan di tempat kerja dengan budaya beracun. Bahkan jika uangnya lebih baik. Tidak ada yang lebih menggerogoti jiwa daripada ditekan oleh orang-orang ambisius yang tidak kompeten dan picik serta para control freak
Intinya, “Hal bagus dari pemerintah AS adalah ukurannya begitu besar, sehingga kalau solusi optimal menghemat 30% tetapi pilihan kedua hanya menghemat 29%, tetap saja itu menghemat puluhan hingga ratusan juta dolar, jadi tidak ada yang menyadarinya”
Salah satu proyek besarnya adalah efisiensi energi di kamp militer terpencil. Jika bahan bakar dikirim sampai ke beberapa wilayah Afghanistan, biayanya sekitar 100 dolar per galon, sementara generator portabel banyak beroperasi hanya pada 20–40% kapasitasnya. Seingat saya, sekitar 70% adalah titik paling efisien, dan dengan membuat bangunan kecil atau menggabungkan beberapa tenda ke satu generator, penggunaan bahan bakar bisa dikurangi drastis sekaligus meningkatkan kualitas layanan
Sebagai engineer FAANG, saya pernah mengerjakan hal-hal yang terkait langsung dengan aliran uang, dan juga punya pengalaman di berbagai area yang mungkin berguna
Lalu saya sadar bahwa menemukan orang yang tepat dan area kerja yang tepat mungkin akan menjadi 95% dari pekerjaannya, jadi saya akhirnya menyerah
Namun kalau mengikuti prosesnya, strukturnya membuat mereka cepat didorong untuk promosi
Saya menginginkan pekerjaan kantoran bergaji stabil, tetapi saya tahu kalau saya bekerja dengan baik, para manajer akan melihatnya sebagai waktu luang dan menjejalkan lebih banyak pekerjaan sampai batas maksimal. Orang-orang serakah tidak akan pernah setuju pada pembagian pendapatan atau bagi hasil, mereka hanya akan berkata akan memberi kenaikan 5% per tahun jadi diam dan bekerjalah
Beberapa tempat kerja yang lalu, perusahaan meminta saya menuliskan nama proyek yang secara aktif saya pelihara, dan daftar itu memenuhi dua layar penuh di Excel dengan ukuran font default. Saya burnout sampai mengalami depresi berat
Yang lebih buruk lagi, saya juga membenci omong kosong ritual penyerahan diri bernama mencari kerja
Saya teringat tulisan-tulisan Dan Luu: https://danluu.com/nothing-works/
Alat software untuk chip juga mirip. Standarnya adalah mengalihdayakan tool ke vendor EDA besar, tetapi kami mendapat dampak besar dari tool kustom yang kami buat sendiri, dan biasanya dibuat atau dipelihara oleh satu orang
Selama saya di sana, sebagian besar siklus simulator berjalan di simulator kustom yang dipelihara oleh satu orang, dan berkat itu biaya simulator berkurang jutaan dolar setiap tahun. Saat itu harga standar satu lisensi simulator adalah beberapa ribu dolar per tahun, dan farm mesin simulasi berjumlah sekitar seribu mesin
Kalau satu orang bisa membuat atau memelihara tool yang bernilai jutaan dolar per tahun bagi perusahaan, orang akan mengira kompetitor tentu melakukan hal yang sama, tetapi kenyataannya sebagian besar tidak. Sama seperti kompetitor yang tidak mempekerjakan orang yang bisa membuka wafer untuk diperiksa, padahal itu bisa membuat mereka meluncurkan produk lebih cepat dan lebih murah
Dan Luu membahas “versi pesta koktail dari hipotesis pasar efisien”, tetapi versi ekonomi dari “tidak ada yang berfungsi” lebih dekat ke https://en.wikipedia.org/wiki/The_Market_for_Lemons. Itu adalah tulisan tentang peran informasi dan asimetri informasi di pasar
Hipotesis pasar efisien gagal karena pengetahuan sempurna mustahil dan adverse selection benar-benar ada
Ada juga perusahaan yang merupakan kebalikan total dari yang digambarkan tulisan asli. Begitu pernah bekerja di perusahaan seperti itu, mustahil untuk kembali merasa nyaman di tempat yang buruk
Seluruh tulisannya emas
Para manajer bertanya bagaimana dia bisa menghemat sebanyak itu tanpa bantuan mereka, meminta dia menyiapkan slide, berkali-kali bertanya bagaimana hal itu terjadi, dan dia harus merilisnya pelan-pelan agar terlihat seperti dilakukan secara bertahap seiring waktu, bukan hanya dengan satu toggle kecil. Dia meminta kenaikan gaji sebanding dengan dampaknya, tetapi tidak berhasil
Demi dirinya sendiri, sebaiknya dia melamar ke tempat seperti FAANG. Setidaknya ada peluang lebih besar untuk diperlakukan lebih baik
Dan kalau menambahkan metadata Twitter card ke blognya, sepertinya tampilannya akan lebih bagus di Twitter
“Halo, saya akan menjelaskan bagaimana penghematan 500 ribu dolar ini bisa terjadi. Pada dasarnya, selama satu hari saya melihat betapa berantakannya infrastruktur awalnya dideploy, lalu menghapus fitur pengujian kode yang menyebabkan masalah. Dari sisi pengembangan, manajemen, pengujian—semuanya—ini adalah oversight total. Secara keseluruhan, kode ini nyaris seburuk mungkin, tetapi tetap dirilis begitu saja. Dan saya diminta untuk tidak mengatakan hal seperti ini karena semua orang akan terlihat buruk, serta diminta melakukan rollout bertahap agar para manajer tampak seperti melakukan sesuatu.”
Lalu saya akan menjatuhkan mikrofon dan meninggalkan panggung
Sejujurnya, rasanya kepedulian saya akan hilang sangat banyak. Bahkan sebagai orang yang sudah hampir 20 tahun melakukan pekerjaan ini, dan tetap peduli pada pekerjaan karena harus membayar tagihan serta memberi makan anak-anak
Saya membuat spreadsheet model biaya, mendokumentasikannya, lalu memberikannya ke atasan. Dia bilang, “akan saya tinjau.” Dua minggu kemudian saya tanya apakah sudah dilihat, dan dia menjawab, “Kelihatannya benar. Kerja bagus.” Saat saya tanya apakah akan dicoba diterapkan, jawabannya luar biasa
“Tidak, kita digaji bukan untuk menghemat uang, tapi untuk membelanjakan uang”
Saat itulah saya benar-benar memahami kontrak Cost+Award Fee pemerintah
Kekurangannya, mungkin kita harus menulis dokumen itu sebelum melakukan perubahan, lalu mendapat review dari seluruh tim dan menyelaraskan “alignment”
Ini bukan tidak sengaja menghemat 500 ribu dolar, melainkan sengaja menghemat 500 ribu dolar lalu sekarang menyesalinya. Itu bukan hal yang sama
Organisasi besar begitu tidak efisien sampai mengherankan bagaimana mereka bisa bersaing, tetapi mereka punya banyak uang, skala ekonomi, dan hal-hal semacam itu. Dalam prosesnya, jutaan dolar bisa terbakar untuk pemborosan dan inefisiensi bodoh tanpa ada yang terlalu peduli
Meski begitu, mereka tetap menyediakan layanan atau produk yang bernilai. Betapapun tidak efisiennya, itu masih lebih efisien daripada sama sekali tidak ada. Karena itu, bahkan tanpa kompetisi pun organisasi seperti itu tetap ada
Anda bisa bertanya bagaimana dengan persaingan melawan organisasi kecil. Organisasi kecil punya efisiensi skala yang lebih rendah, tetapi jika efisien dalam aspek lain, kadang mereka bisa bersaing secara efektif dengan perusahaan besar. Namun ketika mereka tumbuh dan menjadi organisasi besar, pada akhirnya mereka juga mendapatkan inefisiensi organisasi besar
Begitulah cara kerjanya. Bukan berarti tidak ada yang peduli; justru para pemilik perusahaan sangat peduli. Masalahnya, secara harfiah tidak ada yang tahu cara menyelesaikannya
Perusahaan besar cenderung berakhir dengan pola kegagalan yang mirip perusahaan yang dikendalikan negara otoriter. Menarik juga melihat bagaimana Tiongkok selama ini meniti batas antara kontrol dan pertumbuhan dalam hal ini
Mereka mencekik pasar sambil sekaligus menjadi makin tidak efisien
Kompetisi adalah dongeng yang diceritakan untuk membuat para MBA memulai bisnis baru dan membuat seolah-olah ada persaingan. Sejak awal mereka memang tidak punya peluang
Jika semua pemborosan bisa dihilangkan lewat optimisasi, sepertinya kita justru akan mengalami deflasi sementara komputer dan proses bisnis terus menjadi makin efisien
Dulu saya pernah menemukan sebuah bug dan memulihkan pendapatan tahunan 4 juta dolar
Masalah itu dikubur untuk melindungi tim dan para eksekutif yang membiarkan kesalahan tersebut berlangsung selama itu. Saya tidak mendapat kenaikan gaji, tetapi memperoleh beberapa sekutu, dan untuk sementara bisa bekerja dengan santai
Dua server itu terkait dengan suatu data feed, dan saya menyadari kabelnya tersambung dengan aneh, tidak seperti penjelasan fungsi yang saya dengar
Estimasi biaya downtime sistem ini sekitar 7 juta dolar per menit. Saya mengangkat masalah ini ke beberapa staf penanggung jawab dan tim jaringan, tetapi sepenuhnya diabaikan dengan alasan “tidak mungkin kami menyambungkannya seperti itu” dan karena saya masih karyawan baru
Karena kelihatannya penting, saya mengangkatnya lagi dalam rapat grup mingguan, lalu seseorang pergi mengecek langsung dan kembali mengatakan bahwa kondisinya persis seperti yang saya bilang. Itu masalah besar, dan tim jaringan harus melakukan pekerjaan darurat selama sekitar 2 minggu untuk membereskannya dengan rapi
Semua orang marah kepada saya. Meski saya mencegah bencana bagi perusahaan, cara saya melakukannya membuat semua orang terlihat buruk, terutama karena posisi saya di tim rendah. Itu pelajaran penting
Sistem yang saya buat untuk memperbaiki bug pada dasarnya adalah serangan man-in-the-middle terhadap pengiriman resep apotek. Karena apotek-apotek sama sekali tidak menerapkan pembaruan harga, harga resep dihitung ulang tepat sebelum masuk ke sistem perusahaan asuransi. Saya bekerja di jaringan kecil apotek independen, dan tidak ada sistem dispensing terpusat
Dengan kejeniusan tak terbatas saya saat itu, saya menamai sistem tersebut dari nama orang yang saya taksir. Kantor pusat sangat menyukainya sampai membuat penghargaan tahunan yang dinamai dari sistem saya, sehingga akhirnya menjadi penghargaan yang dinamai dari orang yang saya taksir itu, tetapi saya terlalu malu untuk menceritakan asal-usul sebenarnya
Meski itu kejadian 25 tahun lalu, sampai sekarang setiap tahun masih dibuat dan diberikan trofi dengan nama mantan gebetan saya tercetak di atasnya. Kalau orang itu tahu, sepertinya dia akan panik
Hal seperti ini sudah ada sejak dulu
Dulu saya masuk ke ruangan yang penuh terminal VT100, dan karena itu akhir pekan di akhir semester, para mahasiswa CS yang bosan sedang menunggu kompilasi selesai. Saat saya melihat sistemnya, semua kompilasi dimasukkan ke batch queue, tetapi prioritas default queue itu lebih rendah daripada pekerjaan interaktif. Jadi satu penekanan tombol dari mana pun mendapat prioritas lebih tinggi, dan semakin sering orang mengecek posisi pekerjaan kompilasi mereka, pekerjaan itu semakin lambat
Selama 15 menit berikutnya saya terus menaikkan prioritas pekerjaan di posisi teratas queue, dan satu jam kemudian semua orang menyelesaikan pekerjaannya lalu pulang. Ruangan itu jadi milik saya. Kemenangan administrator sistem tanpa izin ;-)
Beberapa bulan lalu saya menemukan bucket S3 yang terus membesar dan menghabiskan 80 ribu dolar per bulan, sehingga menghemat 1 juta dolar per tahun untuk perusahaan
Setelah diperiksa, sebuah sistem yang tidak lagi dipakai ternyata masih menyalin file ke bucket itu. Saya menghubungi para pemangku kepentingan, lalu mereka mematikannya dan menghapus file-filenya
Pimpinan sepertinya tidak terlalu peduli. Atasan dari atasan saya hanya menyuruh saya menghubungi tim lain yang seharusnya menangkap masalah ini sejak awal, dan selesai sampai di situ
“Misalnya, kami menjalankan 234.745 INSERT ke [table name deleted]_HOURLY, dan semuanya kurang dari 1.000 baris”
Itu benar-benar pernah muncul di Slack dukungan Snowflake organisasi kami, dan masalahnya hampir sama. Transaksi-transaksi kecil yang tersebar sepanjang waktu terus membangunkan cluster. Produk ini tidak dibuat untuk use case umum seperti pemuatan kecil yang berlangsung terus-menerus
Saya adalah administrator data warehouse dengan pengalaman nyata, jadi saya sedang melihat orang-orang menemukan kembali deskripsi pekerjaan saya satu per satu saat mereka mengalami pembengkakan biaya. Mereka dengan serius mengatakan hal seperti “ini self-managed, tetapi kita harus memantau biaya serta menulis ulang proses pemuatan dan kueri agar lebih efisien”. Saya takut bertanya menurut mereka apa yang saya lakukan seharian
Dahulu kala di galaksi yang jauh, saya mengganti pekerjaan yang membutuhkan N × (lisensi Oracle + server Sun) dengan skrip Perl kurang dari 100 baris dan satu server Sun, sehingga menghemat lebih dari 300 juta dolar per tahun
Dalam prosesnya, saya juga menciptakan MapReduce. Sebelum Google
Masalahnya adalah menghitung berbagai statistik dari log server web. Misalnya 10 halaman paling populer. Solusi awalnya, karena log-nya sangat besar, adalah memuat semuanya ke database Oracle yang berjalan di beberapa server, lalu menjalankan beberapa kueri SQL, dan mengulanginya setiap hari
Galeri komentar HN yang mengesankan tentang tulisan penulis ini sangat bagus: https://ludic.mataroa.blog/compliments/
Sangat mungkin banyak orang di dalam organisasi sudah jauh lebih dulu daripada penulis. Lebih mungkin lagi, engineer atau manajer di grup yang sama sengaja menyimpan cadangan inefisiensi itu untuk dipakai saat periode pemangkasan biaya, dan penulis merusak kesempatan tersebut. Kalau begitu, saat tidak ada lagi yang bisa dipangkas, penderitaan besar dan penilaian kinerja buruk bisa menjadi hal yang tak terhindarkan
Mungkin statusnya dorman karena kualitas diskursus HN sudah menurun sampai hampir semua komentar kini layak jadi sasaran
[1] https://twitter.com/shit_hn_says