Siapa Saja yang Terlibat Saat Aplikasi Dikirim ke Production
Seorang developer menyelesaikan fitur baru. Kode dikompilasi. Tes lokal lolos. Pull request disetujui. Lalu pekerjaan sesungguhnya dimulai.
Seseorang perlu memverifikasi bahwa fitur tersebut masih berfungsi dengan seluruh aplikasi. Seseorang perlu memeriksa apakah perubahan skema database merusak query yang sudah ada. Seseorang perlu memutuskan apakah fitur ini aman untuk dirilis minggu ini atau harus menunggu. Seseorang perlu memastikan server memiliki kapasitas yang cukup. Seseorang perlu mengoordinasikan waktu agar tim marketing, support, dan engineering semuanya tahu apa yang akan terjadi.
Jika Anda pernah menjadi bagian dari rilis yang berjalan mulus, Anda tahu itu bukan hanya karena developer menulis kode yang bagus. Itu karena sekelompok orang, masing-masing dengan fokusnya sendiri, berhasil menyelaraskan pekerjaan mereka di sekitar satu tujuan: mengirimkan fitur tersebut ke pengguna tanpa merusak apa pun.
Masalahnya, sebagian besar tim tidak memikirkan peran-peran ini sampai ada yang salah. Review keamanan terjadi setelah kode sudah di-staging. DBA mengetahui tentang migrasi ketika deployment sudah setengah jalan. Product manager mendengar tentang penundaan dari tiket support, bukan dari engineering.
Mari kita lihat siapa saja yang sebenarnya muncul ketika kode bergerak menuju production, apa yang menjadi perhatian masing-masing, dan mengapa keterlibatan mereka lebih awal dari yang biasanya diasumsikan tim.
Diagram di bawah memetakan setiap peran ke perhatian utamanya dan menunjukkan bagaimana mereka terhubung selama siklus hidup rilis.
Developer: Menulis Kode Hanyalah Awal
Developer menulis fitur, memperbaiki bug, dan membuka pull request. Bagian itu terlihat. Yang kurang terlihat adalah semua yang terjadi setelahnya: menanggapi umpan balik code review, memperbaiki tes yang gagal di CI, menyesuaikan implementasi ketika lingkungan staging berperilaku berbeda dari lokal, dan siaga setelah deployment jika ada yang rusak.
Ketertarikan alami developer adalah kecepatan. Mereka ingin kode mereka segera sampai ke pengguna, mendapatkan umpan balik, dan beralih ke tugas berikutnya. Itu bukan kemalasan. Itu fokus. Tapi fokus itu bisa menimbulkan ketegangan ketika peran lain membutuhkan waktu untuk melakukan pemeriksaan mereka sendiri.
QA: Menemukan Masalah Sebelum Pengguna Melakukannya
Tugas QA adalah menangkap apa yang terlewat oleh tes otomatis. Tidak semua bug memiliki test case. Tidak semua edge case tercakup. QA menjalankan tes eksplorasi, memeriksa alur yang tidak ada dalam kriteria penerimaan, dan memverifikasi bahwa fitur tersebut benar-benar menyelesaikan masalah yang seharusnya dipecahkan.
Ketegangan di sini adalah waktu. QA membutuhkan fitur yang cukup stabil untuk diuji, tetapi mereka juga membutuhkan waktu yang cukup untuk menguji secara menyeluruh. Ketika tenggat waktu ketat, QA terdesak. Saat itulah bug lolos.
DevOps: Membangun Jalur dari Commit ke Production
DevOps membangun dan memelihara pipeline yang mengubah kode menjadi aplikasi yang berjalan. Mereka menyiapkan proses build, mengelola skrip deployment, menangani konfigurasi lingkungan, dan memastikan pipeline memberikan umpan balik yang jelas ketika ada yang gagal.
DevOps juga menangani bagian-bagian yang rumit: manajemen secrets, akses jaringan antar layanan, penyimpanan artifact build, dan monitoring yang memberi tahu Anda apakah deployment benar-benar berhasil. Ketika pipeline lambat atau tidak dapat diandalkan, setiap peran lain merasakannya.
SRE: Menjaga Stabilitas Aplikasi Setelah Deployment
SRE fokus pada apa yang terjadi setelah kode berjalan. Mereka memonitor error rate, response time, penggunaan resource, dan metrik apa pun yang menunjukkan aplikasi sehat atau menurun. Ketika deployment menyebabkan lonjakan error, SRE adalah yang pertama menyadari dan yang pertama memutuskan apakah akan rollback.
Ketertarikan SRE adalah stabilitas. Mereka menginginkan perubahan yang kecil, dapat dibatalkan, dan dipahami dengan baik sebelum mencapai production. Itu kadang bertentangan dengan keinginan developer untuk mengirim dengan cepat, tetapi ketegangan itu produktif ketika kedua belah pihak memahami kendala masing-masing.
DBA: Melindungi Lapisan Data
Perubahan database adalah bagian dengan risiko tertinggi dalam setiap deployment. Migrasi yang buruk dapat merusak data, mengunci tabel, atau membuat aplikasi down selama menit atau jam. DBA meninjau setiap perubahan skema, memeriksa dampak performa, dan merencanakan strategi migrasi sehingga tidak memblokir read atau write selama transisi.
Keterlibatan DBA sering datang terlambat. Skrip migrasi sudah ditulis, kode bergantung pada skema baru, dan DBA diminta menyetujuinya beberapa jam sebelum deployment. Itu adalah resep untuk keputusan terburu-buru dan risiko yang terlewat.
Security Engineer: Menutup Pintu Sebelum Dibuka
Review keamanan mudah dilewati ketika tim sedang tertekan. Tapi kerentanan yang ditemukan setelah rilis jauh lebih mahal daripada yang tertangkap sebelumnya. Security engineer meninjau kode untuk mencari celah umum, memeriksa dependensi untuk kerentanan yang diketahui, dan memverifikasi bahwa autentikasi dan otorisasi berfungsi dengan benar.
Tantangannya adalah review keamanan menambah waktu. Jika security engineer dilibatkan setelah fitur selesai, setiap temuan berarti pengerjaan ulang. Jika mereka dilibatkan lebih awal, mereka dapat mengarahkan implementasi ke pola yang lebih aman sejak awal.
Product Manager: Memutuskan Apa yang Dikirim dan Kapan
Product manager memutuskan fitur mana yang masuk ke dalam rilis dan kapan rilis itu terjadi. Mereka menyeimbangkan kebutuhan pengguna, prioritas bisnis, dan kapasitas engineering. Mereka juga mengomunikasikan rencana rilis kepada stakeholder, tim support, dan marketing.
Pain point product manager adalah visibilitas. Mereka perlu tahu kapan sebuah fitur benar-benar siap, bukan ketika kode ditulis. Mereka perlu tahu apakah penundaan akan mendorong rilis mundur sehari atau seminggu. Tanpa sinyal yang jelas dari engineering, mereka membuat keputusan berdasarkan tebakan.
Release Manager: Mengoordinasikan Seluruh Proses
Di tim yang lebih besar, release manager melacak setiap perubahan yang masuk ke dalam rilis, mengoordinasikan waktu deployment di seluruh layanan, mengelola proses persetujuan, dan memastikan rencana rollback ada. Mereka adalah titik koordinasi tunggal ketika beberapa tim perlu melakukan deployment bersama.
Tugas release manager adalah mencegah kejutan. Mereka mengajukan pertanyaan yang tidak ditanyakan orang lain: Siapa yang perlu menyetujui ini? Apa yang terjadi jika migrasi gagal? Apakah tim monitoring tahu tentang deployment ini? Ketika pertanyaan-pertanyaan ini tidak diajukan, rilis menjadi kacau.
Daftar Periksa Praktis untuk Rilis Anda Berikutnya
Tidak semua tim memiliki semua peran ini diisi oleh orang yang berdedikasi. Di tim yang lebih kecil, satu orang memakai banyak topi. Daftar periksa ini tetap berlaku, terlepas dari siapa yang melakukan pekerjaan itu.
- Sebelum menulis kode, identifikasi peran mana yang perlu terlibat dalam perubahan ini
- Libatkan security dan DBA sejak awal, bukan ketika kode siap di-deploy
- Berikan QA kode yang stabil dengan waktu yang cukup untuk menguji, bukan kode yang masih berubah
- Pastikan pipeline memberikan sinyal kegagalan yang jelas, bukan hanya hijau atau merah
- Konfirmasi bahwa prosedur rollback sudah diuji, bukan hanya didokumentasikan
- Komunikasikan rencana rilis kepada semua orang yang perlu tahu, bukan hanya engineering
Kesimpulan
Rilis yang sukses bukanlah hasil dari satu orang yang menulis kode yang baik. Itu adalah hasil dari banyak orang, masing-masing dengan prioritas berbeda, yang menyelaraskan pekerjaan mereka di sekitar hasil yang sama. Developer yang mengirim dengan cepat, QA yang menangkap edge case, DBA yang melindungi data, security engineer yang menutup kerentanan, product manager yang menetapkan prioritas, dan release manager yang mengoordinasikan semuanya. Mereka semua penting.
Lain kali Anda mengirim ke production, tanyakan pada diri sendiri: siapa yang perlu terlibat, dan apakah mereka terlibat pada waktu yang tepat? Jawabannya akan memberi tahu Anda lebih banyak tentang proses pengiriman Anda daripada dashboard pipeline mana pun.