Poin Penting
1. Operasi TI sangat penting untuk kesuksesan bisnis dan harus diintegrasikan dengan pengembangan
"TI bukan hanya departemen. TI adalah kompetensi yang perlu kita peroleh sebagai seluruh perusahaan."
TI adalah fungsi bisnis inti. Banyak organisasi memperlakukan TI sebagai kejahatan yang diperlukan atau pusat biaya, tetapi sebenarnya TI adalah pusat dalam memberikan nilai kepada pelanggan. TI perlu diintegrasikan dengan erat dengan pengembangan dan strategi bisnis.
Prinsip DevOps menjembatani kesenjangan. Dengan memecah silo antara pengembangan dan operasi, perusahaan dapat mengirimkan perangkat lunak lebih cepat dan lebih andal. Ini memerlukan perubahan budaya, kepemilikan bersama, dan insentif yang selaras di seluruh tim.
Praktik utama DevOps:
- Integrasi dan pengiriman berkelanjutan
- Infrastruktur sebagai kode
- Pengujian dan penerapan otomatis
- Metrik dan pemantauan bersama
- Postmortem tanpa menyalahkan
2. Manajemen perubahan yang efektif mengurangi risiko dan meningkatkan stabilitas
"Kita perlu menciptakan umpan balik yang kembali ke bagian paling awal dari definisi produk, desain, dan pengembangan."
Perubahan yang dikelola dengan buruk menyebabkan gangguan. Banyak insiden TI berasal dari perubahan yang tidak direncanakan, diuji, atau dikomunikasikan dengan baik. Proses manajemen perubahan yang kuat mengurangi risiko.
Seimbangkan kontrol dan kelincahan. Meskipun kontrol perubahan penting, proses yang terlalu birokratis dapat menghambat inovasi. Tujuannya adalah untuk memungkinkan perubahan yang cepat dan sering sambil mempertahankan stabilitas.
Elemen manajemen perubahan yang efektif:
- Kebijakan dan prosedur yang jelas
- Penilaian dan mitigasi risiko
- Pengujian dan validasi
- Rencana rollback
- Tinjauan pasca-implementasi
3. Identifikasi dan optimalkan kendala untuk meningkatkan kinerja sistem secara keseluruhan
"Meningkatkan pekerjaan harian lebih penting daripada melakukan pekerjaan harian."
Temukan hambatan. Dalam sistem apa pun, selalu ada kendala yang membatasi throughput keseluruhan. Mengidentifikasi dan mengoptimalkan kendala ini memberikan peningkatan terbesar.
Tingkatkan kendala. Setelah diidentifikasi, fokuslah pada memaksimalkan efisiensi kendala tersebut. Ini mungkin melibatkan otomatisasi tugas, mengurangi gangguan, atau menambah kapasitas.
Langkah-langkah untuk mengoptimalkan kendala:
- Identifikasi kendala sistem
- Eksploitasi kendala (maksimalkan efisiensinya)
- Subordinasikan segala sesuatu yang lain ke kendala
- Tingkatkan kendala (tingkatkan kapasitasnya)
- Ulangi proses untuk kendala baru
4. Kurangi ukuran batch dan tingkatkan frekuensi penerapan untuk meningkatkan kelincahan
"Fitur selalu merupakan taruhan. Jika beruntung, sepuluh persen akan mendapatkan manfaat yang diinginkan. Jadi semakin cepat Anda bisa membawa fitur-fitur tersebut ke pasar dan mengujinya, semakin baik."
Batch yang lebih kecil mengurangi risiko. Penerapan besar dan jarang secara inheren lebih berisiko dan membuatnya lebih sulit untuk mengisolasi dan memperbaiki masalah. Penerapan yang lebih kecil dan lebih sering memungkinkan umpan balik dan iterasi yang lebih cepat.
Pengiriman berkelanjutan memungkinkan eksperimen. Ketika Anda dapat menerapkan dengan cepat dan aman, menjadi mungkin untuk menjalankan banyak eksperimen kecil untuk mengoptimalkan fitur dan hasil bisnis.
Manfaat ukuran batch yang lebih kecil:
- Waktu ke pasar lebih cepat
- Risiko penerapan berkurang
- Siklus umpan balik lebih cepat
- Kualitas meningkat
- Kemampuan untuk berputar meningkat
5. Otomatiskan proses untuk mengurangi kesalahan dan meningkatkan efisiensi
"Keluarkan manusia dari bisnis penerapan."
Proses manual rentan terhadap kesalahan. Manusia membuat kesalahan, terutama saat melakukan tugas berulang di bawah tekanan. Otomatisasi mengurangi kesalahan dan membebaskan waktu untuk pekerjaan bernilai lebih tinggi.
Perlakukan infrastruktur sebagai kode. Dengan mengelola infrastruktur melalui kode yang dikontrol versi, Anda dapat memastikan konsistensi di seluruh lingkungan dan dengan mudah mereproduksi atau membatalkan perubahan.
Area utama untuk otomatisasi:
- Penyediaan lingkungan
- Penerapan kode
- Pengujian
- Pemantauan dan peringatan
- Tanggapan insiden
6. Prioritaskan berdasarkan nilai bisnis dan kelola pekerjaan yang sedang berlangsung
"Sampai kode berada di produksi, tidak ada nilai yang benar-benar dihasilkan, karena itu hanya WIP yang terjebak dalam sistem."
Fokus pada hasil, bukan output. Mudah terjebak dalam metrik aktivitas, tetapi yang penting adalah memberikan nilai nyata kepada bisnis dan pelanggan.
Batasi pekerjaan yang sedang berlangsung (WIP). Terlalu banyak WIP menyebabkan peralihan konteks, penundaan, dan kualitas yang berkurang. Dengan membatasi WIP, Anda dapat meningkatkan aliran dan mengurangi waktu siklus.
Teknik untuk mengelola pekerjaan:
- Papan Kanban untuk memvisualisasikan alur kerja
- Batas WIP untuk mencegah kelebihan beban
- Pertemuan prioritas reguler
- Definisi yang jelas tentang "selesai"
- Mengukur waktu siklus dan throughput
7. Ciptakan budaya perbaikan dan pembelajaran berkelanjutan
"Meningkatkan pekerjaan harian lebih penting daripada melakukan pekerjaan harian."
Dorong eksperimen. Ciptakan lingkungan di mana aman untuk mencoba hal-hal baru dan belajar dari kegagalan. Ini mendorong inovasi dan perbaikan berkelanjutan.
Latihan membuat sempurna. Latihan dan simulasi reguler membantu tim mempersiapkan insiden dan meningkatkan kemampuan respons mereka.
Cara untuk mempromosikan pembelajaran:
- Postmortem tanpa menyalahkan
- Retrospektif reguler
- Waktu yang didedikasikan untuk proyek inovasi
- Pelatihan silang dan berbagi keterampilan
- Kehadiran konferensi eksternal
8. Hancurkan silo dan tingkatkan komunikasi antar departemen
"Dev dan Ops bekerja bersama, bersama dengan QA dan bisnis, adalah super-tribe yang dapat mencapai hal-hal luar biasa."
Silo menghambat kemajuan. Ketika departemen beroperasi secara terpisah, itu menyebabkan tujuan yang tidak selaras, kerusakan komunikasi, dan hasil yang suboptimal.
Ciptakan tujuan dan metrik bersama. Selaraskan insentif di seluruh tim untuk mendorong kolaborasi dan fokus pada hasil bisnis keseluruhan daripada optimasi lokal.
Strategi untuk menghancurkan silo:
- Tim lintas fungsi
- Tanggung jawab on-call bersama
- Pertemuan antar-departemen reguler
- Program rotasi pekerjaan
- Alat dan platform kolaboratif
9. Pahami dan optimalkan seluruh aliran nilai
"Anda harus berhenti berpikir seperti pengawas pusat kerja. Anda perlu berpikir lebih besar, seperti manajer pabrik."
Peta aliran nilai. Memahami proses end-to-end dalam memberikan nilai kepada pelanggan membantu mengidentifikasi hambatan dan peluang optimasi.
Optimalkan untuk aliran. Fokus pada mengurangi waktu tunggu dan meningkatkan efisiensi seluruh sistem, bukan hanya komponen individu.
Langkah-langkah untuk mengoptimalkan aliran nilai:
- Peta keadaan saat ini
- Identifikasi pemborosan dan hambatan
- Rancang keadaan masa depan
- Implementasikan perbaikan
- Ukur dan iterasi
10. Seimbangkan stabilitas dan inovasi untuk mendorong pertumbuhan bisnis
"Kelincahan bisnis bukan hanya tentang kecepatan mentah. Ini tentang seberapa baik Anda mendeteksi dan merespons perubahan di pasar dan mampu mengambil risiko yang lebih besar dan lebih terukur."
Stabilitas memungkinkan inovasi. Infrastruktur TI yang stabil dan dikelola dengan baik menyediakan dasar untuk eksperimen dan inovasi yang cepat.
Terima risiko yang terukur. Meskipun stabilitas penting, mengambil risiko cerdas diperlukan untuk pertumbuhan. Ciptakan sistem yang memungkinkan eksperimen aman dan pembelajaran cepat.
Strategi untuk menyeimbangkan stabilitas dan inovasi:
- Bendera fitur untuk peluncuran bertahap
- Kerangka kerja pengujian A/B
- Rekayasa kekacauan untuk meningkatkan ketahanan
- Waktu inovasi untuk karyawan (misalnya, waktu 20%)
- Tinjauan reguler terhadap utang teknis dan kebutuhan modernisasi
Terakhir diperbarui:
Ulasan
The Phoenix Project menerima ulasan beragam, dengan banyak yang memuji penggambaran realistis tantangan IT dan nilai edukatifnya untuk memahami prinsip-prinsip DevOps. Pembaca menghargai format penceritaan yang menarik, meskipun beberapa mengkritik kualitas penulisan dan pengembangan karakter. Profesional IT menemukan buku ini relevan dan penuh wawasan, sementara pembaca non-IT mungkin kesulitan dengan konten teknisnya. Kritikus berpendapat bahwa buku ini menyederhanakan masalah kompleks dan mempromosikan solusi yang tidak realistis. Meskipun memiliki kekurangan, banyak pembaca menemukan buku ini menarik dan berharga untuk mempelajari tentang operasi dan manajemen IT.