Standartlar ve süreç iyileştirmeleri onlarsız bir kuruluşa nasıl sunulmalıdır?


10

Yazılım geliştirme sürecini, CMMI for Development, Sürüm 1.3'ü bir kılavuz olarak kullanacağımız ve en iyi uygulamaları kısmen veya tamamen benimseyeceğimiz süreç iyileştirmelerinin uygulanmasıyla iyileştirmekle görevlendirildim . Geliştiricilerin geri itme ve direncinin en aza indirgenmesi için standartlar ve süreç iyileştirmeleri getirmenin en iyi yolu nedir?


Sadece merak ettiniz, neden daha fazla hatanın istendiğinden neden geçtiğini biliyor musunuz?
Chris Pitman

2
@ S.Lott Standartlar olmadan (tüketici tarafında) azaltılmayan hatalar için bir dava açabilir misiniz? Deneyimim bir süreç ve standartlar, tüketicinin böceklerde gördüklerini büyük ölçüde azaltır ... var olmadıkları değil, sadece müşteri tarafından asla görülmezler.
Rig

@RobZ: Şu anda sahip olduklarınızı sormadım. Hala soruyu anlamaya çalışıyorum. "süreç iyileştirmelerini uygulamak", sorduğunuz şeyin en doğru açıklaması gibi görünüyor. "Standartların" kafa karıştırıcı bir terim olduğunu söyleyebilirim, çünkü resmi bir tanımı vardır ve bu resmi tanımı kullanmıyorsunuzdur.
S.Lott

@Robz: "Kodlama Standartları", "Resmi Standartlar" değildir. Bu soruyu açıklığa kavuşturacaktır. Tekrar. "Resmi Standartlar" W3C, Posix, ISO, IEEE, ANSI standartlardır. Tanınmış bir stant belirleme kuruluşu tarafından hazırlanmış ve onaylanmıştır. Kodlama standartlarından bahsediyorsanız, lütfen "Resmi" kelimesini kaldırmak için soruyu güncelleyin ve "Kodlama" kelimesini kullanın. Bu değişiklikle sorunuz mantıklı. Ve bir kopya.
S.Lott

"Süreç iyileştirmeleri ile birlikte başlıktaki" standartlar "ile ilgili olarak, standartlar kelime sadece birisinin yazdığı kod için geçerli değildir"? Ne? İşte bir ipucu. Lütfen bir tür niteleyici olmadan "standart" kelimesini kullanmayın; kafa karıştırıcı. "Kodlama standartları" demek istiyorsanız, lütfen bu ifadeyi kullanın. Başka bir tür "standart" demek istiyorsanız, lütfen "standart" kelimesini, neden bahsettiğinizi açıklığa kavuşturmak için uygun bir ifade ile nitelendirin. "standart" belirsiz ve kafa karıştırıcı.
S.Lott

Yanıtlar:


2
  1. Yazılım süreç iyileştirme (SPI) projesini başlatın . Kapsamını ve hedeflerini tanımlayın. Standardizasyonun kuruluşunuz için geçerli olan kendi hedefleri ve önlemleri varsa kesinlikle yardımcı olacaktır.
  2. Standartları benimsemekten sorumlu kişi atayın . Büyük organizasyon durumunda da birkaç kişi hatta departman olabilir. Önemli olan, standardizasyondan sorumlu herkesin:
    • tüm resmi görecek kadar profesyonel
    • takımlarla başa çıkabilmeleri ve değişiklikleri benimsemelerine / müzakere etmelerine yardımcı olacak kadar etkili
  3. Hem benimsemek istediğiniz standardı hem de kuruluşunuza uygulanan özelliklerini kapsayan eğitimler geliştirin . Ve eğitilmemiş tüm insanlar potansiyel olarak değişikliklere dirençli olduğu sürece bu gerçekten önemlidir. Örneğin, büyük bir şirkette çalışırken tüm yeni çalışanlara KG süreçleri, CMMI, ISO ve Kalite Yönetim Sistemi hakkında bilgi verdim. Böyle bir eğitim zorunluydu. Kalite yönetimi süreçleri hakkındaki bilginin artırılmasına ve çalışanların yazılım kalitesinin önemli meselesi hakkında farkındalığının artırılmasına yardımcı oldu.
  4. Değişiklikleri müzakere edin ve genel olarak kabul edilen uygulamaları özel ihtiyaçlarınıza göre uyarlayın. Bürokrasiden ve kimsenin gerçekten ihtiyaç duymadığı ağır süreçlerin uygulanmasından kaçınmaya yardımcı olacaktır.
  5. Uygulanan süreç iyileştirmelerinin nasıl desteklendiğinin ve bunların kuruluşunuzda yeterince etkili olup olmadıklarının izlenmesini sağlayın.

Ayrıca, kuruluşunuz içinde kalite konusunda gerçekten endişe duyan tüm insanları bulmanızda da yardımcı olacaktır. Büyük olasılıkla, bunlar değişiklikleri teşvik etmenize ve olgun uygulamalar oluşturmanıza yardımcı olan en önemli kaynak olacaktır.


6

Sert darbeler okulundan birkaç düşünce:

1) Süreç iyileştirme girişimlerinin çoğu zamanlarının% 80'ini süreç tasarımına,% 20'sini eğitim ve sosyalleşmeye harcar. Bu yüzdeleri çevirin. Takip edilen vasat bir standart, mükemmel olmayan bir standardı yener.

2) İnsanlardan nasıl çalıştıklarını değiştirmelerini istemenizin açık nedenlerini belirleyin. İş durumu nedir? İdeal olarak her takıma ayrı ayrı yarar sağlar. Bazen bu sadece sistemik bir gelişmedir. Her iki durumda da, vakayı görünür yapın.

3) Bunun tersini değil, sadeleştirin, sonra standardize edin.

4) Bunu bir PMO'ya tam olarak devredemezsiniz. Doğrudan yöneticilerin satın alınması ve iş birimi başkanının şikayetler geldiğinde ilişkileri koparması gerekir.

5) dostu erken benimseyen bulmak. İnsanlar her şeyin ne kadar zaman aldığından şikayet edecekler. İşaret edebileceğiniz ve "sadece 15 dakika sürdü" diyebileceğiniz birine ihtiyacınız var

6) Metrikler için, nicel olarak nitel olanı zorlayın. Aksi takdirde, Canlı Yayına Geçmeden bir gün öncesine kadar her şeyin bir ay geçtiği Yeşil olan projeleriniz olur.

7) Aletler üzerine teknikleri vurgular. İyi planlama MS Projesinden daha önemlidir.

8) İhtiyaca göre bir süreç düzeyi koyun. Her restoranın sürece ihtiyacı vardır, ancak Nobu ve Fransız Çamaşırhane McDonalds farklı bir tür gerekir. Yazılım firmaları için de aynı şey geçerli.

İyi şanslar!


1
Harika cevap - Ben de eklediğiniz sürece çok dikkatli olacağım - Müşteri için en iyi olanı değil, süreç için en iyi olanı yapma tuzağına düşmediğinizden emin olun - yani süreç müşteri odaklı olmalıdır. Ayrıca, neyi ölçtüğünüze dikkat edin - tanım gereği neyin önemli olduğu ve neyin ölçülmediğinin önemi yoktur. Yanlış şeyleri ölçün (SLOC / Gün, Bugs / SLOC vb.) Ve iyileşme elde edemezsiniz, ancak ölçümler size olduğunuzu söyleyecektir.
mattnz

1
@mattnz - Bilmiyorum, hata / SLOC doğru uygularsanız yararlı bir metrik olabilir. Birisi ortalama 1 hata / 10 SLOC diyorsa ben muhtemelen endişe olacaktır. İşin püf noktası, çubukların nerede olduğunu bilmek zorunda olmanız, ki bu da zor olabilir.
rjzii

İyi bir nokta. Kullanıcılar metriklerini optimize eder. Önce finansal metrikler üretirseniz, insanlar işlevsellik veya müşteri hizmetleri pahasına bunu optimize eder. Her şey denge ve önceliklerle ilgilidir.
MathAttack

1
Beni hatalar / SLOC, SLOC / gün ile ölçün ve yararlı bir şey eklemeden kaynak kodumu nasıl yapabileceğime şaşıracaksınız. Örneğin, parantezlerin her zaman yeni bir hatta yerleştirilmesi - her zaman daha fazla çizgi ne kadar az istatistik olursa, o kadar iyi programcı olurum. Bana HERHANGİ bir ölçü verin, size bu ölçümün beni nasıl daha iyi görünmesini sağlayabileceğimi göstereceğim.
mattnz

1
@mattnz - Kod incelemesi bunun için, eğer birisi kodlarını hatalarla dolu olduğu gerçeğini gizlemek için gereksiz yere ayrıntılı bir şekilde yapıyorsa, o zaman başlamak için kod yazmamalılar. Ayrıca, sayı düştüğünde (kötü işaret) işlev sayısında bir açıklama gördüğünüzde veya kod iyileştikçe sayı düşmeye başladığında (her ikisi de kodun daha iyi hale gelmesiyle başlar), işlev noktası başına kusurlara bakabilirsiniz. işaret).
rjzii

2

Değerlemelerinizden geçip resmi olarak denetlenip derecelendirilmeseniz bile, çabalarınızı CMMI'ya dayandırmak muhtemelen iyi bir fikirdir. CMMI , CMMI ve Yalın ve Altı Sigma gibi diğer süreç iyileştirme teknikleri ve CMMI ve çevik yazılım geliştirme hakkında birçok literatür bulunmaktadır . SEI kaynakların bütün bir koleksiyona sahiptir kuruluşların farklı türleri için farklı CMMI yönleri ve rehberlik hakkında, ücretsiz olarak bazı mevcut.

Ben aşamalı yaklaşım yerine, CMMI uygulamak için sürekli yaklaşıma derinlemesine bakmanızı tavsiye ederim. Organizasyonunuzun şu anda tam olarak nerede durduğunu belirlemenin ve en yüksek işletme değerini artıran alanlarda gelişmenin çok daha etkili bir yolu olarak bana vuruyor. Bu, yalnızca iyileştirme çabalarınızı iş hedefleriyle hizalamanıza izin vermez, aynı zamanda ilerleme aşamalarını hızlı bir şekilde elde etmenizi ve iyileştirmenin etkilerini göstererek her seviyeden satın almayı artırır.

Bununla birlikte, akılda tutulması gereken bir şey, tabandan bir çaba olduğunda süreç iyileştirmenin genellikle daha başarılı olmasıdır. Süreç değişiklikleri yukarıdan dikte edildiğinde - insanlar tarafından "siperlerdeki" geliştiriciler, siperlerde işlerin nasıl yapıldığına değinmiş gibi görünebilir - fikir iyi olsa bile, muhtemelen geri dönüş olacak. Buna hazırlıklı olun.

Bazı mühendislik süreçleri grubu da faydalı olabilir. İyileştirmeden etkilenen çeşitli kurumsal bileşenlerin ve ekiplerin temsilcilerini bir araya getirin, böylece herkesin sesi duyulur. Bu sadece her bir rolün temsilcilerini değil, belki de çeşitli ürün geliştirme ekiplerini de içerecektir. Kuruluşunuzun nasıl yapılandırıldığını bilmeden, kime bakmak isteyebileceğinizi tam olarak söyleyemem, ancak grubun her düzeyinden insanları dahil edebilirim. Ayrıca, bu grup tarafından yapılan tartışma ve kararları, yorum ve sorunların çözümü için kuruluşun kullanımına sunun.


Proje ekiplerinin çok azı herhangi bir süreci resmileştirdiği için tabandan çabalar için ne kadar iyi çalışacağından emin değilim, bu yüzden bu yukarıdan aşağıya bir süreç olacak. Bununla birlikte, herkes, gerçek uygulama eksikliğinden dolayı çabanın başarısız olmasını önlemek için işleri mümkün olduğunca nazik yapmaktan endişe duyuyor.
rjzii

@RobZ Tanım olarak, taban çabaları için zorlayamazsınız - doğal olarak aşağıdan yukarıya doğru gelmelidir. Proje ekipleri gerçek bir sorun olduğunu fark etmedikçe, eğilim değişmeme ve bir şekilde kötü olarak algılanan değişikliklere (bir şekilde daha karmaşık veya zor hale getirme gibi, genellikle süreç iyileştirme ile ilişkili olan) çoğu zaman böyle değildir).
Thomas Owens

Tam da bu yüzden yönetim bir şeyleri resmileştiriyor. Kapıdan çıkan bazı yazılımlarla ilgili sorunlar vardı ve kötü ürünlerin tekrar alana girmemesini sağlamakla birlikte şirket kültürünü de değiştirmek istiyorlar.
rjzii

@RobZ Ve yönetim eylemlere girdiğinde ve eylemleri dikte ettiğinde, geliştiriciler direnir. Kültürel değişimi zorunlu kılamaz ve basit ve sessiz bir şekilde gerçekleşmesini bekleyemezsiniz. Bu uzun, acı verici bir süreç.
Thomas Owens

Kimse bunun böyle olmasını beklemiyor ve zaten direnişle karşılaşıyoruz, bu noktada bunu en aza indirmenin yollarını arıyoruz.
rjzii

0

Her değişiklik için:

  • 1 değişikliği ve gelişimin nasıl iyileştirileceğini söyleyin.
  • Değişikliği uygulayın.
  • İyileştirme gösterin
  • İyileşme göstermeyen değişiklikleri kaldırın

Açıkçası analizin zaman içinde yapılması gerekir, ancak etkili olduğu gösterilinceye kadar hiçbir değişiklik kabul edilmemelidir. Bu nedenle, döngü başına 2-3'den fazla değişiklik yapmamamın nedeni de aksi takdirde iyileşme olup olmadığını ölçemezsiniz.

Hiçbir şey , aslında çevreniz için en iyi uygulama olduğunu göstermek için analiz yapmadan en iyi uygulamaları körü körüne takip etmekten daha fazla rahatsız etmiyor . Bir iyi uygulama iyileşme göstermeyen iyi savurgan de ve zarar en kötü olduğunu.

Sürecinizdeki tüm adımlar ve metodolojideki tüm uygulamalar analiz edilmeli ve faydası kanıtlanmalıdır. Değilse çıkarılmalıdır. Bu analiz, adım veya uygulama eklemeye veya bunları kaldırmaya bakılmaksızın sürekli olarak yapılmalıdır.

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.