Software Development Life Cycle (SDLC)

Belum masuk. Progresmu tidak tersimpan.

Masuk
  • Bab 4 dari 9
  • 25 menit
  • 1 latihan kode
  • 4 soal kuis

Penerapan dan Pemeliharaan

Di bab ini (5 bagian)
  1. Tujuan
  2. Tahap 6: Penerapan
  3. Tahap 7: Pemeliharaan
  4. Kesalahan Umum
  5. Rangkuman

Tujuan bab ini

  • Mengenal tiga lingkungan: development, staging, dan production.
  • Membandingkan strategi rilis Big Bang, Rolling, Blue-Green, dan Canary.
  • Membedakan empat jenis pemeliharaan: korektif, adaptif, perfektif, dan preventif.
  • Memahami mengapa pemeliharaan mengembalikan proses ke perencanaan.

Tahap 6: Penerapan

Software yang sudah lulus uji belum berguna sampai dipakai pengguna. Tahap penerapan (deployment) adalah merilis software ke lingkungan produksi agar dapat digunakan oleh pengguna akhir.

Tiga Lingkungan

Software biasanya berpindah melewati tiga lingkungan:

LingkunganFungsi
DevelopmentLingkungan kerja developer, tempat kode ditulis dan dicoba
Staging / UATReplika produksi untuk uji akhir
ProductionDipakai pengguna sebenarnya

Mengapa perlu staging? Karena laptop developer berbeda dengan server sungguhan. Versi database bisa berbeda, data bisa jauh lebih banyak, dan pengaturan keamanan bisa lebih ketat. Staging dibuat semirip mungkin dengan produksi, sehingga masalah yang hanya muncul di "dunia nyata" bisa ketahuan sebelum menyentuh pengguna.

Pada aplikasi kas kelas, development adalah laptopmu, staging adalah salinan aplikasi yang dicoba bendahara dengan data contoh, dan production adalah aplikasi yang dipakai seluruh kelas.

Empat Strategi Rilis

Cara merilis juga perlu dipilih. Deck menyebut empat strategi:

StrategiCara kerjaCatatan
Big BangSemua pengguna pindah sekaligusSederhana namun berisiko tinggi
RollingServer diperbarui bertahap satu per satuSebagian server masih versi lama selama proses
Blue-GreenDua lingkungan identik, trafik dialihkanMudah rollback
CanaryRilis ke sebagian kecil pengguna dulu, lalu diperluasMasalah hanya menimpa sedikit pengguna

Mari pahami dengan analogi kantin sekolah yang mengganti menu.

  • Big Bang: besok semua menu lama diganti total. Kalau menu baru tidak laku, seluruh kantin rugi.
  • Rolling: satu per satu kios mengganti menu, sampai semua kios memakai menu baru.
  • Blue-Green: kantin punya dua dapur identik. Dapur biru masih menyajikan menu lama, dapur hijau sudah siap menu baru. Pembeli dialihkan ke dapur hijau. Kalau ada masalah, pembeli langsung dikembalikan ke dapur biru.
  • Canary: menu baru ditawarkan dulu ke satu kelas. Kalau responsnya baik, diperluas ke seluruh sekolah.

Nama "canary" berasal dari burung kenari yang dulu dibawa penambang sebagai tanda bahaya awal. Sekelompok kecil pengguna berperan sebagai tanda awal bahwa rilis aman atau tidak.

Selalu Siapkan Rollback

Apa pun strateginya, selalu siapkan rencana rollback, yaitu cara kembali ke versi sebelumnya kalau rilis bermasalah. Strategi Blue-Green dan Canary mengurangi risiko saat rilis karena rollback-nya mudah atau dampaknya kecil.

Logika canary bisa dimodelkan dalam kode. Rilis naik bertahap selama tingkat error masih di bawah batas, dan berhenti kalau melewatinya:

function evaluasiCanary(tahapPersen, errorPerTahap, batasError) {
  for (let i = 0; i < tahapPersen.length; i++) {
    if (errorPerTahap[i] > batasError) {
      return { status: "rollback", berhentiDi: tahapPersen[i] };
    }
  }
  return { status: "rilis penuh", berhentiDi: 100 };
}

console.log(evaluasiCanary([5, 25, 50], [0.1, 0.2, 3.0], 1));
// { status: "rollback", berhentiDi: 50 }

Kamu akan menulis versi ini sendiri di latihan bab ini.

Output Penerapan

Deliverable tahap ini: Release Notes, Panduan Instalasi, Manual Pengguna, dan materi pelatihan. Untuk kas kelas, release notes bisa berupa pesan singkat di grup kelas: "Versi 1.1: sekarang bisa melihat riwayat pembayaranmu sendiri."

Tahap 7: Pemeliharaan

Software terus dirawat setelah rilis. Tahap ini umumnya berlangsung paling lama sepanjang usia sistem. Aplikasi kas kelas mungkin dibangun dalam 6 minggu, tetapi dipakai dan dirawat selama bertahun-tahun.

Empat Jenis Pemeliharaan

JenisTujuanContoh pada kas kelas
KorektifMemperbaiki bug dan error yang ditemukan penggunaSaldo salah hitung saat ada iuran ganda
AdaptifMenyesuaikan dengan perubahan OS, regulasi, atau platformMenyesuaikan tampilan setelah browser ponsel diperbarui
PerfektifMenambah fitur dan meningkatkan performa sesuai masukanMenambah fitur ekspor laporan ke spreadsheet
PreventifRefactoring dan pembaruan untuk mencegah masalahMerapikan kode perhitungan saldo agar mudah diubah

Cara mudah mengingatnya:

  • Korektif = memperbaiki yang rusak.
  • Adaptif = menyesuaikan dengan dunia luar yang berubah.
  • Perfektif = membuat lebih baik sesuai keinginan pengguna.
  • Preventif = mencegah masalah sebelum terjadi.

Bedakan adaptif dan perfektif dengan bertanya: perubahan ini dipicu dunia luar (sistem operasi, aturan, platform) atau dipicu keinginan pengguna? Kalau dunia luar, adaptif. Kalau keinginan pengguna, perfektif.

Pemeliharaan Menyerap Biaya Besar

Pemeliharaan sering menyerap porsi biaya terbesar dalam total umur software. Karena itu desain yang mudah dirawat sangat penting. Keputusan di tahap desain, seperti memisahkan modul dengan rapi, terasa manfaatnya bertahun-tahun kemudian saat ada perubahan.

Kembali ke Perencanaan

Permintaan perubahan besar memicu siklus SDLC baru. Misalnya wali kelas meminta aplikasi kas dipakai untuk seluruh angkatan, bukan satu kelas saja. Ini bukan sekadar perbaikan kecil. Perlu perencanaan ulang, analisis kebutuhan baru, desain ulang database, dan seterusnya. Itulah mengapa SDLC disebut siklus: tahap ketujuh membawa kita kembali ke tahap pertama.

Kesalahan Umum

  • Merilis tanpa rencana rollback. Saat ada masalah, tim panik karena tidak tahu cara kembali ke versi lama.
  • Melewatkan staging. Masalah yang hanya muncul di lingkungan mirip produksi baru ketahuan setelah pengguna terdampak.
  • Memakai Big Bang untuk sistem besar tanpa alasan kuat. Semua pengguna langsung terkena kalau ada masalah.
  • Menganggap pemeliharaan sebagai pekerjaan kecil. Justru tahap ini paling lama dan sering paling mahal.

Rangkuman

  • Penerapan merilis software yang lulus uji ke produksi, melewati lingkungan development, staging, dan production.
  • Strategi rilis: Big Bang (sederhana, berisiko tinggi), Rolling (bertahap per server), Blue-Green (dua lingkungan, mudah rollback), Canary (sebagian kecil pengguna dulu).
  • Selalu siapkan rencana rollback, dan sertakan release notes, panduan instalasi, serta manual pengguna.
  • Pemeliharaan terdiri dari korektif, adaptif, perfektif, dan preventif, serta umumnya paling lama sepanjang usia sistem.
  • Perubahan besar memicu siklus SDLC baru, kembali ke perencanaan.

Selesaikan bab ini

  1. 1. Baca materi
  2. 2. Latihan kode (1)
  3. 3. Kuis (4 soal)

Latihan kode: Mengevaluasi rilis canary

Tulis fungsi cekCanary(tahapPersen, errorPerTahap, batas).

  • tahapPersen berisi persentase pengguna di tiap tahap, misalnya [5, 25, 50, 100].
  • errorPerTahap[i] adalah tingkat error (persen) di tahap ke-i.
  • Rilis berhenti di tahap pertama yang error-nya lebih besar dari batas.

Kembalikan { status, persenAman }:

  • status bernilai "rollback" bila ada tahap yang melewati batas, selain itu "rilis penuh".
  • persenAman adalah persentase tahap terakhir yang lolos sebelum berhenti (0 bila tahap pertama sudah gagal). Bila semua lolos, isi dengan persentase tahap terakhir.

Cek pemahaman

  1. 1Strategi rilis dengan dua lingkungan identik dan trafik dialihkan sehingga mudah rollback adalah...

  2. 2Menyesuaikan aplikasi karena ada perubahan regulasi termasuk pemeliharaan...

  3. 3Lingkungan staging adalah replika produksi untuk uji akhir.

  4. 4Refactoring untuk mencegah masalah di masa depan termasuk pemeliharaan...