Aktivitas Six Sigma dasar ditangkap oleh akronim DMAIC , yang merupakan singkatan: Define, Measure, Analyze, Improve, Control . Anda menerapkan ini pada proses yang ingin Anda tingkatkan: tentukan prosesnya, ukur itu, gunakan pengukuran untuk membentuk hipotesis tentang penyebab masalah apa pun, terapkan perbaikan, dan pastikan bahwa proses itu tetap "dalam kendali" secara statistik.
Karena ini berkaitan dengan perangkat lunak, prosesnya adalah siklus pengembangan perangkat lunak Anda (SDLC) atau sebagian darinya. Anda mungkin tidak akan mencoba menerapkan prinsip Six Sigma ke seluruh SDLC (atau setidaknya, tidak pada awalnya). Alih-alih, Anda akan mencari bidang yang menurut Anda memiliki masalah (mis., Tingkat cacat kami terlalu tinggi; terlalu banyak regresi; jadwal kami terlalu sering tergelincir; terlalu banyak kesalahpahaman antara pengembang dan pelanggan; dll.). Katakanlah untuk saat ini bahwa masalahnya adalah terlalu banyak bug yang diproduksi (atau setidaknya dilaporkan) setiap minggu. Jadi, Anda akan menentukan proses pengembangan perangkat lunak / bug. Kemudian Anda akan mulai mengumpulkan metrik seperti jumlah baris kode yang ditulis setiap hari, frekuensi perubahan persyaratan, jumlah jam yang dihabiskan setiap insinyur dalam rapat,
Selanjutnya, Anda melihat data dan mencoba melihat pola. Mungkin Anda memperhatikan bahwa tim teknik A mencapai setiap tenggat waktu yang diberikan, dan seringkali menyelesaikan tugas lebih awal! Pada awalnya, tim B tampaknya tidak terlalu peduli pada bola - mereka kehilangan tenggat waktu mereka setidaknya satu atau dua hari setengah, dan kadang-kadang terlambat seminggu atau lebih. Manajemen melihat tim B sebagai sesuatu masalah dan ingin mengguncang segalanya. Namun, melihat lebih dekat pada data menunjukkan bahwa tingkat bug tim B jauh lebih rendah daripada tim A, dan terlebih lagi, tim B sering diminta untuk memperbaiki bug yang dikaitkan dengan tim A karena manajemen merasa bahwa tim A berharga untuk menghabiskan banyak uang. waktu pemeliharaan.
Jadi apa yang kamu lakukan? Dengan menggunakan data yang telah Anda kumpulkan dan analisis yang Anda lakukan, Anda menyarankan perubahan: tim A dan tim B masing-masing akan memperbaiki bug mereka sendiri. Dengan restu manajemen (dan melawan oposisi keras tim A) Anda menerapkan perubahan itu. Lalu Anda terus mengumpulkan metrik, dan Anda terus menganalisis data untuk melihat apakah perubahan Anda membuat perbedaan. Ulangi siklus pengukuran / analisis / implementasi ini sampai tingkat bug dianggap dapat diterima. Tapi Anda belum selesai. Bahkan, Anda tidak pernah selesai ... Anda harus terus mengukur tingkat bug dan memeriksa bahwa tingkat bug tetap dalam kisaran yang dapat diterima, yaitu secara statistik "dalam kendali".
Perhatikan bahwa tidak ada apa pun di sini yang khusus untuk pengembangan perangkat lunak selain spesifik dari proses yang Anda tingkatkan, jenis metrik yang Anda kumpulkan, dll. Aktivitas yang Anda gunakan untuk meningkatkan proses pengembangan perangkat lunak sama dengan yang Anda lakukan d digunakan untuk proses pembuatan widget, meskipun pengembangan perangkat lunak sangat berbeda dari pembuatan widget. Semua itu berarti bahwa Anda perlu menerapkan akal sehat dalam jenis tujuan yang Anda tetapkan untuk proses Anda.