Bagikan melalui


Cara Microsoft berkembang dengan DevOps

Microsoft adalah salah satu perusahaan terbesar di dunia untuk menggunakan metodologi Agile. Selama bertahun-tahun pengalaman, Microsoft telah mengembangkan proses perencanaan DevOps yang menskalakan dari proyek terkecil melalui upaya besar-besaran seperti Windows. Artikel ini menjelaskan banyak pelajaran yang dipelajari dan praktik yang diterapkan Microsoft saat merencanakan proyek perangkat lunak di seluruh perusahaan.

Perubahan instrumental

Perubahan utama berikut membantu membuat siklus pengembangan dan pengiriman lebih sehat dan lebih efisien:

  • Mempromosikan keselarasan dan otonomi budaya.
  • Ubah fokus dari individu ke tim.
  • Buat strategi perencanaan dan pembelajaran baru.
  • Menerapkan model multi-kru.
  • Meningkatkan praktik kesehatan kode.
  • Menumbuhkan transparansi dan akuntabilitas.

Mempromosikan keselarasan dan otonomi budaya

Peter Drucker berkata, "Budaya memakan strategi untuk sarapan." Otonomi, penguasaan, dan tujuan adalah motivasi manusia utama. Microsoft mencoba memberikan motivator ini kepada PC, pengembang, dan desainer sehingga mereka merasa diberdayakan untuk membangun produk yang sukses.

Dua kontributor penting untuk pendekatan ini adalah keselarasan dan otonomi.

  • Keselarasan berasal dari atas ke bawah, untuk memastikan bahwa individu dan tim memahami bagaimana tanggung jawab mereka selaras dengan tujuan bisnis yang lebih luas.
  • Otonomi terjadi dari bawah ke atas, untuk memastikan bahwa individu dan tim berdampak pada aktivitas dan keputusan sehari-hari.

Ada keseimbangan yang halus antara penyelarasan dan otonomi. Terlalu banyak keselarasan dapat menciptakan budaya negatif di mana orang hanya berkinerja seperti yang dikatakan. Terlalu banyak otonomi dapat menyebabkan kurangnya struktur atau arah, pengambilan keputusan yang tidak efisien, dan perencanaan yang buruk.

Mengubah fokus dari individu ke tim

Microsoft mengatur orang dan tim ke dalam tiga grup: PM, desain, dan rekayasa.

  • PM mendefinisikan apa yang dibangun Microsoft, dan mengapa.
  • Desain bertanggung jawab untuk merancang apa yang dibangun Microsoft.
  • Teknik membangun produk dan memastikan kualitasnya.

Tim Microsoft memiliki karakteristik utama berikut:

  • Lintas disiplin
  • 10-12 orang
  • Pengelolaan mandiri
  • Piagam dan tujuan yang jelas selama 12-18 bulan
  • Ruang tim fisik
  • Penyebaran fitur sendiri
  • Memiliki fitur dalam produksi

Berusaha untuk tim vertikal

Tim Microsoft dulunya horizontal, mencakup semua UI, semua data, atau semua API. Sekarang, Microsoft berusaha untuk tim vertikal. Tim memiliki area produk mereka secara end-to-end. Pedoman ketat dalam tingkat tertentu memastikan keseragaman di antara tim di seluruh produk.

Diagram berikut mengonsepkan perbedaan antara tim horizontal dan vertikal:

Diagram showing horizontal and vertical team structures.

Perbolehkan tim pemilihan mandiri

Sekitar setiap 18 bulan, Microsoft menjalankan "latihan lekat kuning", di mana pengembang dapat memilih area produk mana yang ingin mereka kerjakan untuk beberapa periode perencanaan berikutnya. Latihan ini memberikan otonomi, karena tim dapat memilih apa yang harus dikerjakan, dan penyelarasan organisasi, karena mempromosikan keseimbangan di antara tim. Sekitar 80% orang-orang dalam latihan ini tetap berada di tim mereka saat ini, tetapi mereka merasa diberdayakan karena mereka memiliki pilihan.

Membuat strategi perencanaan dan pembelajaran baru

Dwight Eisenhower mengatakan, "Rencana itu tidak berharga, tetapi perencanaan adalah segalanya." Perencanaan Microsoft diuraikan ke dalam struktur berikut:

  • Sprint (3 minggu)
  • Rencana (3 sprint)
  • Musim (6 bulan)
  • Strategi (12 bulan)

Insinyur dan tim sebagian besar bertanggung jawab atas sprint dan rencana. Kepemimpinan terutama bertanggung jawab atas musim dan strategi.

Diagram berikut mengilustrasikan strategi perencanaan Microsoft:

Diagram showing Microsoft planning strategy.

Struktur perencanaan ini juga membantu memaksimalkan pembelajaran saat melakukan perencanaan. Teams dapat mendapatkan umpan balik, mencari tahu apa yang diinginkan pelanggan, dan menerapkan permintaan pelanggan dengan cepat dan efisien.

Menerapkan model multi-kru

Metode sebelumnya menumbuhkan "budaya interupsi" bug dan insiden situs langsung. Tim Microsoft datang dengan cara mereka sendiri untuk memberikan fokus dan menghindari gangguan. Teams mengatur sendiri untuk setiap sprint menjadi dua kru yang berbeda: Fitur (F-crew) dan Customer (C-crew).

Kru F bekerja pada fitur yang berkomitmen, dan kru C menangani masalah dan gangguan situs langsung. Tim menetapkan irama berputar yang memungkinkan anggota merencanakan aktivitas dengan lebih mudah. Untuk informasi selengkapnya tentang model multi-kru, lihat Membangun tim yang produktif dan berfokus pada pelanggan.

Meningkatkan praktik kesehatan kode

Sebelum beralih ke metodologi Agile, tim digunakan untuk membiarkan bug kode dibangun sampai kode selesai di akhir fase pengembangan. Teams kemudian menemukan bug dan bekerja memperbaikinya. Praktik ini menciptakan roller coaster bug, yang memengaruhi moral dan produktivitas tim ketika tim harus bekerja pada perbaikan bug alih-alih menerapkan fitur baru.

Teams sekarang menerapkan batas bug, dihitung dengan rumus # of engineers x 5 = bug cap. Jika jumlah bug tim melebihi batas bug di akhir sprint, mereka harus berhenti mengerjakan fitur baru dan memperbaiki bug sampai mereka berada di bawah batas mereka. Tim sekarang membayar hutang bug saat mereka pergi.

Menumbuhkan transparansi dan akuntabilitas

Di akhir setiap sprint, setiap tim mengirim email yang melaporkan apa yang telah mereka capai dalam sprint sebelumnya, dan apa yang mereka rencanakan untuk dilakukan di sprint berikutnya.

Tujuan dan hasil utama (OKR)

Teams paling efektif ketika mereka jelas tentang tujuan yang coba dicapai organisasi. Microsoft memberikan kejelasan bagi tim melalui tujuan dan hasil utama (OKR).

  • Tujuan menentukan tujuan yang akan dicapai. Tujuannya adalah pernyataan niat yang signifikan, konkret, berorientasi tindakan, dan inspirasional. Tujuan mewakili ide-ide besar, bukan angka aktual.
  • Hasil utama menentukan langkah-langkah untuk mencapai tujuan. Hasil utama adalah hasil yang dapat diukur yang mengevaluasi kemajuan dan menunjukkan keberhasilan terhadap tujuan dalam periode waktu tertentu.

OKR mencerminkan hasil terbaik, bukan hanya hasil yang paling mungkin. Pemimpin mencoba untuk berambisi dan tidak berhati-hati. Mendorong tim untuk mengejar hasil utama yang menantang mendorong akselerasi terhadap tujuan dan memprioritaskan pekerjaan yang bergerak menuju tujuan yang lebih besar.

Mengadopsi kerangka kerja OKR dapat membantu tim berkinerja lebih baik karena alasan berikut:

  • Setiap tim selaras dengan rencana.
  • Tim berfokus pada mencapai hasil daripada menyelesaikan aktivitas.
  • Setiap tim bertanggung jawab atas upaya secara teratur.

OKR mungkin ada di tingkat produk yang berbeda. Misalnya, mungkin ada OKR produk tingkat atas, OKR tingkat komponen, dan OKR tingkat tim. Menjaga OKR tetap selaras relatif mudah, terutama jika tujuan diatur ke atas ke bawah. Setiap konflik yang muncul adalah indikator awal yang berharga dari ketidakselarasan organisasi.

Contoh OKR

Tujuan: Menumbuhkan basis pelanggan yang kuat dan bahagia.

Hasil utama:

  • Tingkatkan skor promotor bersih eksternal (NPS) dari 21 menjadi 35.
  • Tingkatkan kepuasan dokumen dari 55 menjadi 65.
  • Aliran alur baru memiliki skor Apdex 0,9.
  • Waktu antrean untuk pekerjaan adalah 5 detik atau kurang.

Untuk informasi selengkapnya tentang OKR, lihat Mengukur hasil bisnis menggunakan tujuan dan hasil utama.

Pilih metrik yang tepat

Hasil utama hanya berguna seperti metrik yang didasarkan pada metrik tersebut. Microsoft menggunakan indikator utama yang berfokus pada perubahan. Seiring waktu, metrik ini membangun gambaran yang berfungsi tentang akselerasi atau perlambatan produk. Microsoft sering menggunakan metrik berikut:

  • Perubahan tingkat pertumbuhan adopsi bulanan
  • Perubahan performa
  • Perubahan waktu untuk belajar
  • Perubahan frekuensi insiden

Teams menghindari metrik yang tidak mengumpulkan nilai terhadap tujuan. Meskipun mungkin memiliki kegunaan tertentu, metrik berikut ini tidak berguna untuk melacak kemajuan menuju tujuan:

  • Akurasi perkiraan asli
  • Waktu selesai
  • Baris kode
  • Kapasitas tim
  • Burndown tim
  • Kecepatan tim
  • Jumlah bug yang ditemukan
  • Cakupan kode

Sebelum Agile dan setelah Agile

Tabel berikut ini meringkas perubahan yang dilakukan tim pengembangan Microsoft saat mereka mengadopsi praktik Agile.

Sebelumnya Sesudahnya
Tonggak pencapaian selama 4-6 bulan Sprint 3 minggu
Tim horizontal Tim vertikal
Kantor pribadi Ruang tim dan pekerjaan jarak jauh
Siklus perencanaan panjang Perencanaan dan pembelajaran berkelanjutan
PM, Dev, dan Test PM, Desain, dan Teknik
Keterlibatan pelanggan tahunan Keterlibatan pelanggan berkelanjutan
Cabang fitur Semua orang bekerja di cabang utama
Tim 20+ orang Tim 8-12 orang
Peta strategi rahasia Peta strategi yang dibagikan secara publik
Utang bug Utang nol
Dokumen spesifikasi 100 halaman Spesifikasi PowerPoint
Repositori privat Sumber terbuka atau InnerSource
Hierarki organisasi mendalam Hierarki organisasi diratakan
Instal angka menentukan keberhasilan Kepuasan pengguna mendefinisikan keberhasilan
Fitur dikirim setahun sekali Fitur mengirim setiap sprint

Poin penting

  • Perhatikan ilmu Agile dengan serius, tapi jangan terlalu preskriptif. Agile bisa menjadi terlalu ketat. Biarkan pola pikir dan budaya Agile tumbuh.
  • Rayakan hasil, bukan aktivitas. Menyebarkan fungsionalitas melebihi baris kode.
  • Kirim di setiap sprint untuk membangun irama dan irama dan menemukan semua pekerjaan yang perlu dilakukan.
  • Bangun budaya yang Anda inginkan untuk mendapatkan perilaku yang Anda cari.