Mulai dengan Satu Perubahan Kecil Besok Pagi
Anda baru saja selesai membaca tentang CI/CD, pipeline pengiriman, platform internal, dan perbaikan berkelanjutan. Kedengarannya bagus. Tapi saat Anda melihat tim Anda sendiri, jarak antara apa yang Anda baca dan apa yang benar-benar Anda lakukan terasa sangat besar.
Mungkin proses build Anda masih berjalan di laptop seorang developer. Mungkin checklist rilis Anda hanya ada di kepala seseorang. Mungkin lingkungan staging Anda sudah sangat melenceng dari production sehingga deploy terasa seperti berjudi. Mungkin Anda bahkan belum punya tim—hanya Anda dan sebuah ide.
Kesenjangan itu wajar. Setiap tim yang sekarang mengirimkan perubahan dengan andal memulai persis dari posisi Anda sekarang. Mereka tidak bangun suatu pagi dengan pipeline sempurna yang deploy sepuluh kali sehari tanpa kegagalan. Mereka membangunnya satu perubahan kecil dalam satu waktu.
Titik Awal yang Sebenarnya
Kebanyakan tim tidak memiliki masalah pengiriman yang membutuhkan desain ulang besar-besaran. Mereka memiliki satu langkah dalam proses saat ini yang paling menyakitkan. Langkah itulah tempat Anda memulai.
Lihatlah bagaimana tim Anda mengirimkan perubahan hari ini. Dari saat seseorang menulis kode hingga saat pengguna mulai menggunakan versi baru itu, catat setiap langkahnya. Jujurlah tentang apa yang benar-benar terjadi, bukan apa yang seharusnya terjadi.
- Siapa yang menjalankan build?
- Bagaimana Anda tahu build berhasil?
- Apa yang terjadi jika sebuah tes gagal?
- Siapa yang memutuskan bahwa aman untuk deploy?
- Bagaimana cara Anda benar-benar menempatkan versi baru ke production?
- Bagaimana Anda tahu bahwa versi itu berfungsi setelah di production?
Di suatu tempat dalam daftar itu, ada langkah yang bergantung pada satu orang yang ingat melakukan sesuatu. Di suatu tempat, ada langkah yang tidak bisa diulang dengan cara yang sama dua kali. Di suatu tempat, ada langkah yang membuat orang gugup sebelum setiap rilis.
Pilih langkah itu. Hanya satu.
Seperti Apa Satu Perubahan Itu
Katakanlah build masih berjalan di mesin seorang developer. Saat developer itu cuti, tidak ada yang bisa build. Saat mereka menggunakan versi library yang sedikit berbeda, build berperilaku berbeda. Saat laptop mereka kehabisan baterai di tengah build, tim menunggu.
Berikut adalah contoh minimal seperti apa skrip itu:
#!/bin/bash
set -e
echo "Mengkloning repositori..."
git clone https://github.com/your-org/your-app.git
cd your-app
echo "Menginstal dependensi..."
npm install
echo "Menjalankan build..."
npm run build
echo "Build berhasil!"
Simpan ini sebagai build.sh, commit ke repositori Anda, dan jalankan dari server bersama atau layanan CI. Sekarang siapa pun bisa memicu build yang dapat diulang.
Satu perubahan: pindahkan build itu ke server bersama atau layanan CI sederhana. Tidak perlu yang mewah. Satu skrip yang menarik kode, menjalankan build, dan melaporkan berhasil atau gagal sudah lebih baik daripada build di laptop. Sekarang siapa pun bisa memicunya. Sekarang hasilnya terlihat oleh semua orang. Sekarang build dapat diulang.
Atau mungkin masalahnya berbeda. Mungkin build sudah otomatis, tapi deployment masih berupa urutan manual perintah SSH yang hanya diketahui satu orang. Satu perubahan: tulis perintah-perintah itu ke dalam skrip, commit ke repositori, dan jalankan dari sistem CI. Sekarang deployment terdokumentasi, dapat diulang, dan tidak lagi bergantung pada ingatan.
Atau mungkin masalahnya staging tidak pernah cocok dengan production. Satu perubahan: gunakan skrip deployment yang sama untuk kedua lingkungan. Jika skrip berhasil di staging tetapi gagal di production, perbedaan antara kedua lingkungan menjadi terlihat dan bisa diperbaiki.
Tidak satu pun dari perubahan ini membutuhkan tim platform baru. Tidak ada yang membutuhkan pembelian alat mahal. Tidak ada yang membutuhkan semua orang setuju pada alur kerja yang lengkap. Mereka hanya membutuhkan memilih satu langkah yang menyakitkan dan membuatnya sedikit lebih baik.
Efek Bola Salju
Inilah yang terjadi setelah perubahan pertama itu: Anda merasakannya. Rilis berikutnya sedikit tidak terlalu menegangkan. Build berikutnya tidak memerlukan pesan Slack yang menanyakan siapa yang memiliki laptop yang tepat. Deployment berikutnya tidak memerlukan berbagi layar sehingga seseorang bisa menonton perintah diketik.
Perasaan itu membuat Anda ingin memperbaiki langkah berikutnya. Dan langkah berikutnya. Bukan karena seseorang menyuruh Anda, tetapi karena Anda telah merasakan bagaimana rasanya ketika bagian dari pengiriman menjadi dapat diprediksi. Anda ingin lebih dari itu.
Beginilah adopsi CI/CD yang sebenarnya terjadi. Bukan melalui rencana besar. Bukan melalui migrasi platform enam bulan. Melalui serangkaian perbaikan kecil dan praktis yang terakumulasi seiring waktu.
Cara Cepat Menemukan Langkah Pertama Anda
Sebelum Anda menutup artikel ini, lakukan ini:
- Buka repositori aplikasi Anda.
- Tuliskan setiap langkah dari commit kode hingga deployment production, sebagaimana yang benar-benar terjadi hari ini.
- Tandai langkah yang paling menyakitkan—yang paling sering gagal, memakan waktu paling lama, atau paling bergantung pada pengetahuan suku.
- Putuskan satu hal konkret yang bisa Anda lakukan besok untuk membuat langkah itu sedikit lebih baik. Tidak sempurna. Lebih baik.
Itulah titik awal Anda.
Apa Sebenarnya CI/CD Itu
Setelah semua bab, diagram, dan diskusi tentang pipeline, platform, dan tata kelola, inilah kebenaran intinya: CI/CD bukan tentang alat. Ini bukan tentang memiliki diagram pipeline yang sempurna. Ini bukan tentang meniru apa yang dilakukan perusahaan FAANG.
CI/CD adalah kemampuan organisasi Anda untuk terus mengirimkan perubahan—ke kode aplikasi, skema database, dan infrastruktur—dengan aman, dan terus menjadi lebih baik dalam setiap pengiriman.
Kemampuan itu tidak bisa dibeli. Tidak bisa diinstal. Tidak bisa dikonfigurasi oleh konsultan dalam keterlibatan dua minggu. Kemampuan itu dibangun, satu perubahan kecil dalam satu waktu, oleh orang-orang yang memutuskan bahwa rilis hari ini akan sedikit tidak menyakitkan daripada rilis kemarin.
Mulai besok pagi. Pilih satu langkah. Buat lebih baik. Lalu lakukan lagi.