Bagaimana saya bisa menerapkan Six Sigma dalam lingkungan pengembangan perangkat lunak?


14

Saya seorang pengembang Java, tetapi saya diminta untuk belajar tentang penerapan Six Sigma dengan tujuan meningkatkan keuntungan organisasi kami. Saya telah membaca bahwa Six Sigma dapat diterapkan di semua lingkungan, tetapi saya tertarik pada nuansa penerapannya pada pengembangan perangkat lunak.

Konsep Six Sigma mana yang dapat diterapkan pada lingkungan pengembangan perangkat lunak dan bagaimana cara menerapkannya secara efektif?

Pemahaman saya adalah bahwa Six Sigma berfokus pada:

  • mengidentifikasi dan menghilangkan akar penyebab cacat
  • meminimalkan variabilitas dalam menerapkan proses manufaktur atau bisnis

Tampaknya bagi saya bahwa konsep-konsep ini dapat diterapkan pada pengembangan perangkat lunak, tetapi dapatkah itu diterapkan secara efektif ke Siklus Hidup Pengembangan Perangkat Lunak (SDLC)?


11
Di mana Anda menemukan bahwa six-sigma "cocok untuk semua lingkungan"? Itu dikembangkan sangat khusus untuk pembuatan volume tinggi objek fisik - bukan perangkat lunak.
Angelo

5
Saya membuka kembali pertanyaan ini karena tidak perlu memindahkannya. Manajemen proyek perangkat lunak pada topik di sini, tetapi Six Sigma lebih erat terkait dengan peningkatan kualitas dan proses, yang juga pada topik di sini. Selain itu, ada banyak pekerjaan yang membahas aplikasi Six Sigma untuk proyek perangkat lunak dan peningkatan proses perangkat lunak (termasuk menggabungkan Six Sigma dan CMMI dan Six Sigma dan metode tangkas). Menerapkan Six Sigma ke perangkat lunak berbeda dari menerapkannya pada lingkungan manufaktur, membuat pertanyaan ini membutuhkan keahlian pengembang perangkat lunak.
Thomas Owens

5
@ Angelo Meskipun Six Sigma pada awalnya dirancang untuk lingkungan manufaktur, ada banyak pekerjaan dalam menerapkannya pada pengembangan perangkat lunak. Mencari frasa seperti "agile six sigma" dan "cmmi six sigma" memunculkan banyak pekerjaan di bidang ini.
Thomas Owens

5
Saya harus mengikuti pelatihan six sigma pertama dan ketika perusahaan saya membayarnya, saya berharap bisa mendapatkan waktu saya kembali. Instruktur tidak mengerti, latihannya adalah permainan kecil yang menyenangkan tetapi akhirnya tidak ada gunanya. Six sigma adalah tentang statistik dan ini berlaku untuk tugas-tugas yang bodoh, berulang, didefinisikan dengan baik, jenis tugas yang sering di-outsourcing-kan kepada robot. Menulis perangkat lunak yang baik adalah proses kreatif. Six sigma membantu insinyur perangkat lunak yang baik seperti halnya kuliah Kalkulus akan membantu Tom Cruise bertindak. Fakta bahwa Anda mengajukan pertanyaan ini membuat Anda tidak bisa bekerja dengan saya atau kolega saya.
Pekerjaan

4
@ThomasOwens ini NARQ, bukan di luar topik. Ini setengah-jajak pendapat / setengah-LMGTFU
Jimmy Hoffa

Jawaban:


15

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.


1
Sebenarnya metodologi Six Sigma lebih terkait dengan Pengembangan Perangkat Lunak adalah DMADI (Tentukan, Ukur, Analisis, Desain, Implementasikan) kecuali bahwa kami mengulangi MADI dalam pengembangan perangkat lunak. Orang dengan "Sabuk" itu menyebutnya Lean Six Sigma DMADI tapi saya menyebutnya Agile.
Tae-Sung Shin

Sangat penting untuk membedakan antara meningkatkan proses pengembangan itu sendiri dan meningkatkan perangkat lunak yang dikembangkan. Saya menggambarkan yang pertama, dan diberi menyebutkan penerapan Six Sigma ke SDLC saya pikir itulah yang ditanyakan OP; Komentar @ Tae-SungShin tampaknya lebih ditujukan pada yang terakhir, dan saya setuju bahwa proses untuk meningkatkan perangkat lunak itu sendiri sedikit berbeda. Banyak yang telah ditulis tentang metode pengembangan perangkat lunak, jadi saya tidak akan mencoba melakukannya di sini.
Caleb

-3

Seperti yang disebutkan oleh @Peter

Menerapkan six sigma dalam pengembangan perangkat lunak menciptakan peningkatan berkelanjutan dalam pengembangan perangkat lunak. Menerapkan six sigma dalam pengembangan perangkat lunak menghasilkan integrasi dan pengujian perangkat lunak yang cepat, membantu menciptakan perangkat lunak bebas bug dan membantu manajemen program yang lebih efisien.

Saya dapat memberi Anda sebuah skenario sederhana, saya bekerja untuk perusahaan dirgantara. Ada tim yang merancang sirkuit untuk pesawat terbang. Mereka menghadapi banyak kesulitan dalam merancang sirkuit untuk pesawat terbang kompleks. Karena itu, mereka kehilangan tenggat waktu, meskipun mereka memiliki desainer yang berpengalaman. Saya menganalisis pekerjaan mereka dan memperhatikan bahwa mereka mengembangkan sirkuit dari awal setiap saat. Jadi saya merancang perangkat lunak yang akan melacak sirkuit mereka yang sebelumnya dirancang dan setiap kali mereka memiliki pesawat baru mereka akan menggunakan perangkat lunak saya dan memilih pesawat yang dirancang sebelumnya yang memiliki sirkuit yang sama dan menggunakannya dengan sedikit modifikasi. Karena sirkuit tersebut sebelumnya dirancang dan diuji pada pesawat yang sebenarnya, mereka sekarang dapat lebih fokus pada sirkuit baru.

Ini hanya sebuah skenario di mana saya mengikuti proses SIX Sigma untuk mengumpulkan semua data tentang kesalahan mereka dan menganalisis apa alasannya. Kemudian tingkatkan dengan perangkat lunak saya.


4
Bukan berarti six sigma itu hebat; manajerlah yang membiarkan karyawannya merancang sirkuit dari nol semestinya dipecat.
Pekerjaan

2
lol .. tetapi manajer yang sama meminta untuk mengikuti prosedur six sigma ketika saya mengusulkan perangkat lunak ini ..
rajkumarts

-4

Menerapkan six sigma dalam pengembangan perangkat lunak disebut perangkat lunak six sigma. Six Sigma pada dasarnya dikembangkan untuk pembuatan, dalam proses pembuatannya membantu perusahaan untuk meningkatkan pengiriman, kualitas produk dengan biaya rendah. Padahal hal yang sama dapat diterapkan pada pengembangan perangkat lunak juga.

Menerapkan six sigma dalam pengembangan perangkat lunak menciptakan peningkatan berkelanjutan dalam pengembangan perangkat lunak. Menerapkan six sigma dalam pengembangan perangkat lunak menghasilkan integrasi dan pengujian perangkat lunak yang cepat, membantu menciptakan perangkat lunak bebas bug dan membantu manajemen program yang lebih efisien.

Namun, perangkat lunak enam sigma menjadi konsep baru yang Anda butuhkan pelatihan dari orang yang tepat. Program pelatihan enam sigma yang efisien dapat membantu Anda di sini. Untuk pelatihan six sigma online tentang lingkungan pengembangan perangkat lunak, saya sarankan http://www.6sigma.us /. Saya menyarankan mereka berdasarkan rekomendasi yang saya terima dari perusahaan lain.

Dengan menggunakan situs kami, Anda mengakui telah membaca dan memahami Kebijakan Cookie dan Kebijakan Privasi kami.
Licensed under cc by-sa 3.0 with attribution required.