Memberdayakan Engineering Culture

Karena bukankah setiap developer, programmer, engineer, dkk pasti bisa menulis kode?

Memberdayakan Engineering Culture

Dalam pekerjaan, gue bukan tipe orang yang cuma ingin dibayar karena melakukan sesuatu.

Rasanya umur gue terlalu muda untuk melakukan itu :))

Melainkan, harus ada sesuatu yang gue dapet. Harus ada sesuatu yang gue beri.

Harus ada sesuatu yang menguntungkan banyak pihak, jika memang semua pihak adalah hal yang mustahil.

Ini bukan tentang menjadi budak korporasi, dibodohi kapitalisme, atau apapun itu.

Melainkan tentang pengembangan diri.

Dan bukankah akan menjadi lebih bijak bila yang berkembang bukan hanya seorang diri, bukan?

Every organization has a culture

...unless?

Mari kita bicarakan tentang organisasi masyarakat yang bernama evilfactorylabs ini. Di epil, semua orang bebas melakukan apa yang dia suka & gemar, dan bila membutuhkan bantuan, kita akan bantu semampu nya.

Misal, salah satu anggota tertarik untuk menggunakan FreeBSD daripada sistem operasi GNU/Linux lainnya, dan membutuhkan VM untuk ber-eksplorasi karena menggunakan Vbox ataupun Qemu bikin kesel.

Ya, akan kita bantu kasih VM.

Atau, seseorang tertarik dengan k8s dan ingin mencoba membuat kluster k8s sendiri daripada pakai yang ada di pasar, kita akan bantu.

Dsb termasuk bila ingin membuat tulisan (yang biasanya untuk alasan 'personal branding') dan merasa blog nya epil adalah tempat yang pas, kita welcome terhadap semua orang.

Kultur yang diberdayakan di epil, adalah EVIL itu sendiri:

  • Enlight
  • Valiant
  • Inspire
  • Loop

Kinda a bullshit, but serious.

Salah satu contoh dari Enlight adalah ketika membahas hal-hal yang mendalam, fundamental, radikal, apapun itu. Sebuah hal yang jarang orang lain ingin sentuh karena terlena dalam zona nyaman abstraksi yang ada.

Atau contoh Valiant, salah satunya adalah melawan status quo.

Selain terlena dalam zona nyaman, kita relatif senang berada dalam zona aman.

It's like, If it works, don't touch it. Get it?

Seperti, kalau misalnya 'merakyat' sedikit, tidak jarang yang masih menggunakan FTP untuk melakukan deployment™.

Dan juga, tidak sedikit yang masih menjalankan program 'secara telanjang'.

Ada lagi, proses deployment masih dilakukan secara manual. Di test di mesin sendiri, tidak ada proses release. Satu-satunya cara untuk rollback adalah tidak rollback sama sekali, just hotfix.

Dan selagi it works, then, don't touch it.

Ada biaya yang harus dikeluarkan untuk sebuah perubahan, baik itu perubahan workflow, teknologi yang digunakan, apapun. Tapi jangan lupa, programming adalah tentang tradeoff.

Selain uang, yang dikorbankan dalam programming ada waktu, tenaga, dan ya, kesehatan.

Kesehatan metal lebih tepatnya.

Have you ever heard of burnout?

Epil ini dijadikan 'tempat bermain' untuk mereka yang belum terjun ke dunia pekerjaan, dan dijadikan 'tempat pelarian' untuk mereka yang sudah.

Jika tempat mu sebelumnya tidak ingin mengeluarkan biaya-biaya tersebut, atau kamu tidak menemukan sebuah tempat yang ingin membayar biaya-biaya tersebut, we did.

Dan jika kamu ingin mendapatkan 'nilai' dari budaya yang ada di epil, just come here. Karena epil adalah tempat bermain & pelarian, kamu yang menentukan sendiri apa yang ingin kamu lakukan.

Kan lucu kalau misalnya kita ke tempat bermain, terus kita nanya ke orang lain 'Eh gue harus ngapain nih?'. Just tell (and show) apa yang ingin/sudah lakukan, bukan apa yang harus dilakukan.

Tar kalau dijawabnya diminta tolong buat nguras lautan malah gak kuat lagi.

Engineering culture

Dalam budaya, pasti ada sesuatu yang dituju, sadar atau tidak.

Misal, di Banten tempat kelahiran gue. Banten terkenal dengan debus nya, sebuah seni bela diri dengan menunjukkan kemampuan manusia yang kebal terhadap senjata tajam.

Berdasarkan yang gue tau, debus adalah sebuah 'media' untuk menyebarkan agama Islam di Banten pada waktu itu. Debus masih dilestarikan sampai hari ini, khususnya oleh masyarakat Banten.

Budaya harus dilestarikan agar generasi selanjutnya dapat menikmati budaya tersebut. Dan juga, budaya bisa menjadi identitas akan asal dari budaya tersebut berada.

Sebuah aset.

Jika kamu mendengar kata 'Banten', kebanyakan dari kamu akan membayangkan tentang debus. That's it.

Dan bagaimana bila ternyata debus sudah tidak ada di Banten?

Kamu dapat poinnya, bukan?

Mungkin sebagian dari kamu pernah mendengar tentang 'Move fast and break things', atau "Don't be evil", atau 'Think different'. Slogan-slogan tersebut secara tidak langsung menunjukkan akan 'identitas' yang ada di perusahaan tersebut meskipun gue tidak menyebut nama perusahaan nya.

Tapi slogan hanyalah slogan, yang paling penting adalah nilai nya.

Move fast and break things nya Facebook, dijelaskan oleh Mark di Business Insider bahwasannya "Unless you're breaking stuff, you aren't move fast enough". Ini menggambarkan prinsip ETTO atau Efficiency–thoroughness trade-off yang singkatnya: akan ada pengorbanan antara efisiensi & efektifitas di satu sisi, dan ketelitian (seperti jaminan & keandalan) disisi lain.

Berbicara tentang engineering culture, gue rasa setiap organisasi (bahkan perusahaan, khususnya yang rintisan) harus memiliki kultur agar memiliki identitas & arah yang jelas.

Kultur tidak harus selalu hebat, ataupun besar. Yang penting berarti, dan yang pastinya berbeda.

Mengapa gue menganggap ini penting?

Karena hampir setiap developer; programmer, engineer pasti bisa menulis kode, menjalankan program, dan mengetahui apakah itu bekerja atau tidak.

Apalagi yang membedakan selain dari 'kultur' mereka dalam melakukan pekerjaannya tersebut?

Beberapa ada yang memiliki budaya Pair Programming, ada yang TDD, ada yang memiliki budaya DevOps, apapun. Itu hanyalah sebuah metoda, yang paling penting adalah nilai. Seperti, apa yang mereka tuju dalam membudayakan hal-hal tersebut?

Yang pasti jawabannya adalah tergantung.

Meniru budaya

Ini menurut gue sedikit lucu sih, ada perusahaan yang gue tau di Indo meniru engineering culture nya Spotify (Spotify Model) dalam menjalankan organisasi engineering mereka.

Entah apa tujuan dan motivasinya, yang pastinya (menurut gue) mereka ingin organisasi engineering mereka seperti Spotify, baik dari sisi produktivitas; kemampuan, hasil, proses, apapun.

Yang padahal, mereka bukanlah Spotify.

Probably it's okay to pretend to, but, good artists copy and great artists steal, right?

No offense, but congratulations if you're offended!

Enggak kebayang jadinya kalau misalnya masyarakat Jawa Tengah menggunakan debus untuk media dalam penyebaran Islam, hanya karena di Banten cara tersebut berhasil.

Membangun budaya 101

Anggap kamu belum memiliki arah, seperti kapal yang berlayar di lautan luas yang entah 'kemana' tujuan nya tapi setidaknya tau 'apa' yang dituju: Harta karun.

Kapal pasti memiliki kru, dan setiap kru pasti memiliki pemimpin. Atau ketua, atau sesepuh, you name it.

Si ketua memiliki mimpi: Menemukan harta karun. Dia meyakini sesuatu, dan apa yang dia yakini tersebut menjadi panduan untuk mengejar harta karun.

Pastinya tidak hanya si ketua yang mengetahui apa yang dia yakini tersebut, entah dia memberitahukan ke teman terdekatnya, kaki tangannya, atau menulisnya di buku karena dia sadar bahwa memendam nya sendiri bukanlah hal yang bijak.

Harta karun adalah sesuatu yang sangat spesial, setiap orang pasti menginginkan nya sekalipun nyawa taruhannya. Si ketua menyadari itu, dia harus memiliki cara agar kru mereka tidak memiliki sifat serakah & tamak tersebut.

Lalu si ketua secara tidak langsung menanam nilai yang setidaknya tidak membuat kru nya memiliki sifat tersebut, misal dengan mencontohkan perilaku yang dermawan; Menegaskan untuk saling berbagi dan jangan hanya memikirkan diri sendiri, menjelaskan bahwasannya nyawa lebih berharga daripada harta, apapun.

Apa yang dia lakukan tersebut secara tidak langsung menjadi budaya yang ada di kru tersebut, dengan tujuan agar anggota kru tersebut diharapkan tidak serakah & tamak. Sekalipun kepada kru lain yang mencari harta karun yang sama.

Tidak peduli apa yang orang lain nilai, karena mereka sendirilah yang membuat nilai tersebut.

Dan ketika nilai tersebut ada yang menganggu, merusak, ataupun mencoba untuk dihilangkan, yang menjadi penanggung jawab sebagai 'pemegang nilai' tersebut bukan lagi hanya si ketua, melainkan keseluruhan kru.

Berangkat dari itu, budaya/nilai harus diberdayakan.

Demi kemenangan bersama.

Termasuk perjuangan 'para wali' yang berhasil menyebarkan agama Islam khususnya di Banten. Dengan menggunakan media debus, yang termasuk menjadi pemompa semangat juang rakyat Banten ketika melawan penjajah Belanda pada masa itu.

Ya, dalam budaya, ada nilai-nilai yang harus ditanam & dilestarikan. Itu adalah fondasi utama nya.

Engineering Culture 666

Karena 101 identik dengan topik untuk pemula, mari kita ubah 101 menjadi 666 yang anggap saja topik ini untuk setan.

Setiap organisasi pasti memiliki tujuan, benar? Termasuk bila tujuan nya hanya untuk mendapatkan duit karena mengerjakan apa yang harus dikerjakan.

Anggap tujuan organisasi (engineering) tersebut memang hanya untuk mendapatkan duit, dan untuk (dan terus) mendapatkan duit, mereka bisa menggunakan pendekatan:

  • Tidak menulis dokumentasi, yang ngerti kode nya hanya karyawan nya yang ada aja biar terus di hire
  • Menulis kode yang berantakan, sama seperti tujuan diatas
  • Membuat pekerjaan mereka menjadi lebih kompleks, biar duit yang didapat menjadi lebih banyak
  • Dsb

Itu contoh aja sih, anggap organisasi engineering ini ingin memeloroti uang kas manajemen perusahaan yang gak ngerti apa-apa.

Mereka harus terus melestarikan budaya tersebut, dan bila seseorang datang dan ingin memperbaiki kondisi yang ada, pilihannya hanya dua: Dibenci satu organisasi lalu keluar atau merombak organisasi yang ada, termasuk kemungkinan anggota yang sebelumnya ada menjadi keluar :))

Oke oke kita realistis dikit aja ya, misal organisasi ini ingin menjadi anggota nya menjadi "top-class engineers" sehingga banyak membuat engineer top lain tertarik untuk bergabung dengan organisasi mereka.

Agar bisa mencapai itu, mereka bisa melakukan pendekatan:

  • Menjadi thought leader, karena suara mereka 'layak' didengarkan
  • Membuat inovasi-inovasi baru, hello Facebook!
  • Membuat apa yang mereka lakukan menjadi standar, hello Google!
  • Memikirkan ulang tentang apa yang sudah ada, dan merubah itu, hello every 'distruptive' SF company!

Bisa diasumsikan, apa yang mereka inginkan akan tercapai ketika... Sudah tercapai, namun setidaknya mereka memiliki cara untuk mencapai tersebut.

Berbicara seputar engineering, sebenarnya bisa sedikit sederhana. Google terkenal dengan keandalan nya, mereka akan mencari cara agar sistem mereka yang sudah sangat besar menjadi tetap dapat diandalkan.

Mereka (mungkin) sadar bahwa masalahnya salah satunya adalah dalam proses pengubahan lingkungan dari development ke production. Dan juga, ada di ketika sistem tersebut berjalan. Bukan tanpa alasan mengapa ada k8s, yang salah duanya adalah agar tetap menjaga sistem tetap berjalan sekalipun ada proses deployment, dan sekalipun diakses oleh 1 ataupun 1000 pengguna dalam waktu yang bersamaan dalam skala mereka.

Google memiliki SRE atau Site Reliability Engineer yang singkatnya mungkin seperti Sysadmin, namun daripada bekerja selayaknya 'administrator' namun lebih seperti 'engineer'.

Terlepas dari cerita diatas, silahkan fokus ke tujuan yang ingin mereka capai, khususnya dalam organisasi engineering.

Penutup

Alasan utama dalam menulis ini adalah setelah mendengar 'kultur' yang ada di organisasi teman gue.

Organisasi mereka basically adalah organisasi engineering, namun sejujurnya, tidak terlihat seperti itu. Engineer adalah seorang engineer, seorang teknisi, bukan hanya seseorang yang mudah disuruh untuk melakukan X, hanya karena Y mengarahkan seperti itu.

Bayangkan untuk tetap terjaga jam ~12 malam hanya untuk melakukan deployment disamping ada seseorang yang sudah membuat kita memiliki tools seperti CI/CD yang berguna untuk melakukan itu, tanpa sentuhan tangan manusia hanya agar membuat perubahan yang ada terjadi pada hari yang berbeda.

Atau bayangkan akan waktu yang bisa dihemat ketika menggunakan automated tests daripada melakukan nya secara manual.

Dan sebagainya.

Tapi sekali lagi, if it works, don't touch it.

Unless?

Ya, setiap organisasi memiliki budaya nya masing-masing, dan gue (kita?) gak berhak untuk mengurusi & mempermasalahkan budaya orang lain.

While you are here, apakah organisasi memiliki budaya?

Apakah memiliki nilai-nilai yang ingin ditanamkan?

Tujuan yang ingin dituju?

Identitas yang ingin dibangun?

Jika tidak, gambaran nya bukanlah seperti kapal dengan kapten & awak, melainkan seperti kapal dengan tuan & hamba.

Bukan seperti dongeng nya bajak laut, melainkan seperti kisah konspirasi nya kapal titanic.