Six Sigma'yı bir yazılım geliştirme ortamında nasıl uygulayabilirim?


14

Java geliştiricisiyim, ancak kuruluşumuzun kârını artırmak amacıyla Six Sigma'yı uygulamayı öğrenmem istendi. Six Sigma'nın tüm ortamlarda uygulanabileceğini okudum, ancak bunu yazılım geliştirmeye uygulamanın nüanslarıyla ilgileniyorum.

Altı Sigma'nın hangi kavramları bir yazılım geliştirme ortamına uygulanabilir ve bunları etkili bir şekilde nasıl uygulayabilirim?

Anladığım kadarıyla Six Sigma şunlara odaklanıyor:

  • kusurların temel nedenlerini belirleme ve kaldırma
  • üretim veya iş süreçlerinin uygulanmasındaki değişkenliğin en aza indirilmesi

Bana göre bu kavramlar yazılım geliştirmeye uygulanabilir, fakat bu bir Yazılım Geliştirme Yaşam Döngüsüne (SDLC) etkili bir şekilde uygulanabilir mi?


11
Altı sigmanın "tüm ortamlara uygun" olduğunu nereden buldunuz? Yazılımın değil, fiziksel nesnelerin yüksek hacimli üretimi için çok özel olarak geliştirilmiştir.
Angelo

5
Bu soruyu tekrar açıyorum çünkü hareket etmeye gerek yok. Yazılım projelerinin yönetimi burada konu ile ilgilidir, ancak Six Sigma kalite ve süreç iyileştirme ile daha yakından ilişkilidir ve bunlar da konu ile ilgilidir. Buna ek olarak, Altı Sigma'nın yazılım projelerine ve yazılım sürecinin geliştirilmesine (Altı Sigma ve CMMI ve Altı Sigma ve çevik yöntemlerin birleştirilmesi dahil) uygulanmasını tartışan büyük bir çalışma vardır. Altı Sigma'yı yazılıma uygulamak, onu bir üretim ortamına uygulamaktan farklıdır, bu soruyu bir yazılım geliştiricisinin uzmanlığı gerektirir.
Thomas Owens

5
@Angelo Altı Sigma başlangıçta bir üretim ortamı için tasarlanmış olsa da, bunu yazılım geliştirmeye uygulamak için çok çalışma yapıldı. "Agile six sigma" ve "cmmi six sigma" gibi ifadeler aramak, bölgede çok iş çıkarır.
Thomas Owens

5
İlk altı sigma eğitimini almak zorunda kaldım ve şirketim bunun için ödeme yaparken, zamanımı geri alabilseydim. Eğitmen clueless, egzersizler eğlenceli küçük oyunlardı ama sonuçta anlamsızdı. Altı sigma istatistiklerle ilgilidir ve aptal, tekrarlayan, iyi tanımlanmış görevler, genellikle robotlara dış kaynaklardan alınan görevler için geçerlidir. İyi yazılım yazmak yaratıcı bir süreçtir. Altı sigma, Calculus derslerinin Tom Cruise'un hareket etmesine yardımcı olacağı kadar iyi yazılım mühendislerine de yardımcı olur. Sadece bu soruyu sorduğunuz gerçeği, benimle veya iş arkadaşlarımla çalışmanızı diskalifiye ediyor.
Meslek

4
@ThomasOwens bu konu dışı değil, NARQ. Yarı anket / yarı LMGTFU
Jimmy Hoffa

Yanıtlar:


15

Temel Altı Sigma aktiviteleri, DMAIC kısaltması tarafından yakalanır : Tanımlama, Ölçme, Analiz Etme, Geliştirme, Kontrol . Bunları iyileştirmek istediğiniz sürece uygularsınız: süreci tanımlayın, ölçün, herhangi bir sorunun nedenleri hakkında hipotezler oluşturmak için ölçümleri kullanın, iyileştirmeler uygulayın ve sürecin istatistiksel olarak "kontrolde" kalmasını sağlayın.

Yazılım ile ilgili olarak, süreç yazılım geliştirme yaşam döngünüz (SDLC) veya bir kısmıdır. Muhtemelen Altı Sigma ilkelerini SDLC'nin tamamına (veya en azından başlangıçta değil) uygulamaya çalışamazsınız. Bunun yerine, bir sorununuz olduğunu düşündüğünüz alanları ararsınız (örneğin hata oranımız çok yüksek; çok fazla regresyon; programımız çok sık kayar; geliştiriciler ve müşteri arasında çok fazla yanlış anlama; vb.). Şimdilik diyelim ki sorun, her hafta çok fazla böcek üretilmesi (veya en azından rapor edilmesi). Böylece yazılım geliştirme / hata yaratma sürecini tanımlarsınız. Ardından, her gün yazılan kod satırı sayısı, gereksinim sıklığı değişiklikleri, her bir mühendisin toplantılarda geçirdiği saat sayısı,

Ardından, verilere bakar ve kalıpları ayırt etmeye çalışırsınız. Belki mühendislik ekibinin A verilen her süreye ulaştığını ve hatta görevleri erken bitirdiğini fark ediyorsunuz! Başlangıçta, B takımı topa pek benzemiyor - son teslim tarihlerini en az yarım gün ya da iki gün kaçırıyorlar ve bazen bir hafta ya da daha fazla geç oluyorlar. Yönetim B takımını bir sorun olarak görür ve işleri sarsmaya çalışır. Bununla birlikte, verilere daha yakından bakmak, B takımının hata oranının A takımından çok daha düşük olduğunu ve dahası, B takımından genellikle A takımına atfedilebilecek hataları düzeltmesi istendiğinden, yönetim A takımının çok fazla harcama yapmak için değerli olduğunu düşünüyor bakım zamanı.

Ee ne yapıyorsun? Topladığınız verileri ve gerçekleştirdiğiniz analizi kullanarak bir değişiklik öneriyorsunuz: A takımı ve B takımı her biri kendi hatalarını düzeltir. Yönetimin nimetiyle (ve A takımının itirazına karşı) bu değişikliği uygularsınız. Ardından metrikleri toplamaya devam edersiniz ve değişikliğinizin bir fark yaratıp yaratmadığını görmek için verileri analiz etmeye devam edersiniz. Hata oranı kabul edilebilir olarak kabul edilene kadar bu ölçümü / analiz / uygulama döngüsünü tekrarlayın. Ama henüz bitirmedin. Aslında, hiç bitirmediniz ... hata oranını ölçmeye ve hata oranının kabul edilebilir aralıkta kaldığını kontrol etmeye devam etmelisiniz, yani istatistiksel olarak "kontrol altında".

Burada, geliştirdiğiniz işlemin özellikleri, topladığınız metrik türleri, vb. Dışında yazılım geliştirmeye özgü hiçbir şeyin olmadığına dikkat edin. Yazılım geliştirme sürecini iyileştirmek için kullandığınız etkinlikler, d Yazılım geliştirme, widget üretiminden oldukça farklı olmasına rağmen, bir widget üretim süreci için kullanın. Bunun anlamı, işleminiz için belirlediğiniz hedef türlerine sağduyulu davranmanız gerektiğidir.


1
Aslında Yazılım Geliştirme ile ilgili altı Sigma metodolojisi DMADI'dir (Tanımlama, Ölçme, Analiz, Tasarım, Uygulama), ancak yazılım geliştirmede MADI'yi tekrarlıyoruz. Bu "Kemerleri" olan insanlar Yalın Altı Sigma DMADI diyorlar ama buna Agile diyorum.
Tae-Sung Shin

Geliştirme sürecinin kendisini iyileştirmek ve geliştirilen yazılımı geliştirmek arasında ayrım yapmak önemlidir. Birincisini tanımladım ve SDLC'ye Six Sigma uygulamasından bahsetmişken, OP'nin sorduğu şey bence; @ Tae-SungShin'in yorumu ikincisine yönelik görünüyor ve yazılımın kendisini geliştirme sürecinin biraz farklı olduğuna katılıyorum. Yazılım geliştirme yöntemleri hakkında çok şey yazıldı, bu yüzden burada yapmaya çalışmayacağım.
Caleb

-3

@Peter tarafından belirtildiği gibi

Yazılım geliştirmede altı sigma uygulamak, yazılım geliştirmede sürekli gelişme sağlar. Yazılım geliştirmede altı sigma uygulamak, yazılımın hızlı entegrasyonu ve test edilmesiyle sonuçlanır, hatasız bir yazılım oluşturmaya yardımcı olur ve daha verimli bir program yönetimine yardımcı olur.

Size basit bir senaryo verebilirim, bir havacılık şirketi için çalışıyordum. Uçaklar için devreler tasarlayan bir ekip var. Karmaşık uçaklar için devrelerin tasarlanmasında birçok güçlükle karşılaşıyorlardı. Bu nedenle, deneyimli tasarımcılara sahip olmalarına rağmen son teslim tarihlerini kaçırıyorlardı. Çalışmalarını analiz ettim ve her zaman sıfırdan devreler geliştirdiklerini fark ettim. Bu yüzden daha önce tasarladıkları devreleri takip edecek bir yazılım tasarladım ve yeni uçakları olduğunda yazılımımı kullanacaklar ve benzer devrelere sahip daha önce tasarlanmış uçakları seçip üzerinde küçük değişiklikler yaparak kullanacaklar. Bu devreler daha önce gerçek uçaklarda tasarlandığından ve test edildiğinden, artık yeni devrelere daha fazla odaklanabilirler.

Bu sadece hatalarıyla ilgili tüm verileri toplamak için SIX Sigma sürecini takip ettiğim ve bunun nedenlerini analiz ettiğim bir senaryodur. Sonra onları yazılımımla geliştir.


4
Altı sigmanın harika olduğu değil; çalışanlarının devreleri sıfırdan tasarlamalarına izin veren yöneticinin işten çıkarılması gerekiyordu.
Meslek

2
lol .. ama aynı yönetici bu yazılımı önerdiğinde altı sigma prosedürü takip etmek istedi ..
rajkumarts

-4

Yazılım geliştirmede altı sigmanın uygulanmasına yazılım altı sigma denir. Altı Sigma temel olarak üretim için geliştirilmiştir, üretim sürecinde şirketlerin teslimatı, ürünün kalitesini düşük maliyetle geliştirmesine yardımcı olur. Oysa aynı şey yazılım geliştirmeye de uygulanabilir.

Yazılım geliştirmede altı sigma uygulamak, yazılım geliştirmede sürekli gelişme sağlar. Yazılım geliştirmede altı sigma uygulamak, yazılımın hızlı entegrasyonu ve test edilmesiyle sonuçlanır, hatasız bir yazılım oluşturmaya yardımcı olur ve daha verimli bir program yönetimine yardımcı olur.

Ancak, yazılım altı sigma yeni bir kavram olan doğru insanlardan eğitim gerekir. Etkili bir altı sigma eğitim programı burada size yardımcı olabilir. Yazılım geliştirme ortamı hakkında çevrimiçi altı sigma eğitimi için http://www.6sigma.us / adresini öneririm . Onları başka bir firmadan aldığım öneriye göre öneririm.

Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.