bakım için harcanan zamanın endüstri ortalamaları


17

Bir yönetici yakın zamanda hataları düzeltmek için çok fazla zaman harcadığını duyurdu. Sanırım o her zaman mükemmel bir kod yazmak gerektiğini düşünüyor (tabii ki bu imkansız son tarihlere isabet ederken!) Ve bana sanayi kod zaman v düzeltme yeni kod yazma harcanan zaman ortalama ne merak yaptı.

Peki herkes yeni kod geliştirme karşı hata gidermek için harcanan zaman metrikleri var mı? Yoksa bir bütün olarak endüstri için hata düzeltme zamanının ampirik bir analizi var mı? % 50 hata düzeltmek için fazla mı, yoksa doğru mu? Peki ya% 20 ya da% 33?

Kişisel deneyimlerden anekdot kanıtları kabul etmekten mutluluk duyuyorum, çünkü bu, performansımızı karşılaştırabileceğim bazı istatistiklerin bir parçasını oluşturacak.


9
yöneticiniz kulağa çok cahil geliyor . Bunun gibi durumlar için önerilen okuma: Robert L. Glass'ın Yazılım Mühendisliğinin Gerçekleri ve Yanlışları , özellikle "Gerçek 43. Bakım bir çözümdür, sorun değil." Wikipedia makalesinde , yazılım bakımı için harcanan% 80 çabadan bahsediliyor
gnat

3
Nedir gerçek sorunu? Kalite sorununuz mu var? İşleminiz gerçekten verimsiz mi? Yoksa yöneticiniz sadece yazılımın çok pahalıya mal olmasını istemiyor mu?
kevin cline

@gnat: Yorumunuz en iyi cevap
Kevin Cline

@kevincline thanks - Bir cevaba yorum dönüştürdü
gnat

Bakım sadece hataları (kusurları) düzeltmekle ilgili değildir ve miktarı münferit projeler için büyük ölçüde değişir (= kesin cevap yok). Bana göre kalite sorunları var gibi görünüyor.
MaR

Yanıtlar:


13

Bir yönetici yakın zamanda hataları düzeltmek için çok fazla zaman harcadığını duyurdu.

Yukarıdaki sesler çok cahil. Bunun gibi durumlar için önerilen okuma: Robert L. Glass'ın Yazılım Mühendisliğinin Gerçekleri ve Yanlışları , özellikle "Gerçek 43. Bakım bir çözümdür, sorun değil."

Wikipedia makalesinde , yazılım bakımı için harcanan% 80 çabadan bahsedilmektedir.

yöneticim Dilbert'in PHB'sini dahi gibi gösteriyor :)

Yukarıda verilen tüm isteklerin gerçekten hata olup olmadığını analiz etmek için biraz çaba sarf ederim .

Deneyimlerime göre, geliştirme veya yeni özellik isteklerinin hata olarak gönderilmesi çok sık oldu. İyi yöneticiler programcılarını bunu öğrenmeye dahil eder - kötü yöneticiler, hataları düzeltmek için çok fazla zaman şikayet etmeye devam edin .


2
Hata düzeltme! = Bakım! Hata düzeltme, sistemdeki hataları kodladığınız ve doğru işlevselliği geri yüklemek için düzeltilmeleri gerektiği anlamına gelir . Bakımla, hata düzeltmeleri, ölçeklenebilirlik iyileştirmeleri, donanım geçişi ve performans iyileştirmeleri vb. Gibi tüm görevler anlamına gelir. Bakım için harcanan çabanın% 40-50'sine kadar orta ölçekli bir işletme sistemi için makul geliyor.
Apoorv Khurasia

Farklı böcek sınıfları için rakamlarınız var mı? Açıkçası çok sayıda yüksek öncelikli alıyorsanız, "stoper göster" hataları, geliştirme sürecinin kaynağı belirlemek için biraz çalışmaya ihtiyaç duyabileceği bir durum olabilir, ancak tüm küçük şeyleri bu kadar büyük bir şey değildir. Ayrıca gnat'ın dediği gibi, birçoğu geliştirme talepleri olabilir.
Stevetech

Vikipedi makalesi teklifiniz yanlış! O diyor "bakım çaba% 80 olmayan düzeltici eylemler için kullanılır" , ancak bakım zamanında tasarım veya kodlama veya benzeri çalışma ile karşılaştırıldığında bahsetmiyor.
Tobias Knauss

9

Sorulması gereken ilk soru, "hata düzeltmenizin" aslında kodlama hatalarını veya başka bir şeyi düzeltip düzeltmediğidir. Gerçek kod hatalarının düzeltilmesi, çoğu durumda iyi bir kod tabanına sahip olduğunuz sürece nispeten küçük olmalıdır. Kötü bir kod tabanı ile çalışıyorsanız, kapsamlı hata düzeltmeleri kaçınılmazdır.

Bununla birlikte, bir programı üretime sokarken, belgelenmemiş gereksinimleri, beklenmedik kullanıcı etkinliği, veri anormallikleri, donanım uyumsuzlukları, kurulum sorunları ve kesinlikle kod hataları olmayan diğer sorunları bulacaksınız. Genellikle yöneticiler ve kullanıcılar bu üretim destek / bakım sorunlarını genellikle kod değişikliği gerektirdiği için hata olarak düşünürler.

Ayrıca hata olarak küçük geliştirme istekleri olarak adlandırılması gerekenleri gruplandıracak yöneticilerle de karşılaştım. Bunlar genellikle bir hata izleme veya sorun raporlama sistemine girer ve bu, "hata" istatistiklerinizi gerçekte olduğundan daha yüksek yapabilir.



8

Orada ne kadar kodunuz olduğuna, ne kadar süredir orada olduğuna vb. Bağlıdır.

Yazılımdaki hataları düzeltmek için harcanan zaman, ilk 6-12 aylık sürüme önden yüklenmelidir, ancak zaman sonsuzluğa yaklaştıkça, bakım için harcanan zaman ile ilk geliştirme için harcanan zaman% 100'ü aşacaktır - işte bu şekilde iş.

Zor istatistiklere sahip olmasam da (Kod Tamamlandı, ancak tam olarak hangi sayfayı / bölümü söyleyemiyorum), deneyimlerime göre, kabaca gelişimin yaklaşık% 40'ı (bazen% 60 kadar yüksek) bakım için harcanıyor. Ne kadar çok kod bırakırsanız, bakım süreniz o kadar artar. Hatalar her zaman işlevsel değildir ve programlı kusurlar kadar belirsizliğin bir sonucudur.


0

iyi bir bilet izleyici (Atlasian'dan Jira gibi) kullanıyorsanız ve tüm farklı kategorileri, kullanıcı hikayelerini, aciliyet düzeylerini doğru bir şekilde ve takım arkadaşlarınızın anlaşmasıyla girmek için zaman harcadınız ve bu ölçümleri (ve daha fazlasını) hesaplarsanız inanılmaz derecede kolay.

Önceki bir projede, hata / görev / yapılacaklar listemizi yönetmek için Jira'yı kullandık ve sonunda bize gecikmelerin ve sorunların en büyük nedeninin verimsiz yönetim uygulamaları olduğu ortaya çıktı.

Garip bir şekilde, bu bilgi ortaya çıktığında, aniden Jira'yı kullanmayacağımızı ve bunun yerine yeni bir ürünün getirileceğini söyledik.

Bu arada, Jira'dan iletilecek tüm veri talepleri yönetim ekibine gönderilmek zorunda kaldı ve doğrudan erişimimiz kaldırıldı.

Fark edilmeyen şey, istatistik hesaplamasının bir parçası olarak, dev ekibinin Jira'yı bir web kancasına veri atmasıydı ve bu web kancasının, verileri oluşturduğumuz kodun olduğu bazı dahili sunuculardaki bir bitiş noktasına iletmek için kullanıldığıydı. otomatik olarak raporlar.

Web kancasını izlemeye başladık ve Jira'nın artık kullanılmadığını söylediğimiz halde, önemli ölçüde daha uzun bir süre (tam olarak 6+ ay) çok canlı kaldığını ve üst yönetim tarafından toptan kötüye kullanımın sadece yanlış kullanım ile düz yaygın.

Tabii ki, Jira kadar karmaşık bir şey olmak zorunda değil.

Düşük verimli bir çözüm istiyorsanız, görevleri / biletleri / hataları / özellik isteklerini vb. İzlemek için bir google-docs forma sayfası ve GDocs bildirim API'sı kullanabilirsiniz.

GDocların kendisi artık web kancaları ve her türlü şeyi yayınlayabilir.

Git ve / veya Github ve kod deponuza bağlı olduğunda tetikleyen bazı kancalarla birleştirin ve şaşırtıcı miktarda veri kaydedebilen makul derecede verimli bir ev demleme sisteminiz var.

Bununla birlikte, genel olarak, bir ürünün doğal kullanım ömrünün% 100'ünden, yeşil alan geliştirici ve bakım arasındaki bölünme genellikle 20/80'dir, ALM (Uygulama Yaşam Boyu Yönetimi) döngüsünde maliyetin çoğu bakım ve destek maliyetlerinden alınır.

Hataları düzeltmek için çok fazla zaman harcamak diye bir şey yoktur, çünkü hatasız kod yazmak mümkün değildir.

İyi testler ve sürekli entegrasyon politikaları eksikliği azaltır, ancak asla tamamen ortadan kaldırmazsınız.

Başka türlü inanan herkes (IMHO) doğru bir yargıya varmak için yeterli bilgiye sahip değildir veya yazılım yazmanın ne kadar zor olduğuna kördür (daha olağan durum).

Yöneticiniz buna hazırsa ve bazıları ise, o zaman bir gün boyunca sizi gölgelediğini önermek isteyebilirsiniz, böylece ne yaptığınızı ve nasıl yaptığınızı tam olarak görebilir.

Iv'e, bu tür çalışmaların aktif olarak teşvik edildiği birkaç şirkette çalıştı, üst düzey personel alt düzey personeli gölgeledi ve bunun tersi, her iki taraf için de gerçekten iyi bir öğrenme deneyimi olabilir.


2
"Hataları düzeltmek için çok fazla zaman harcamak" diye bir şey yoktur. Şirketinizin pazarda rekabet edemediği için altında kaldığı hataları düzeltmek için yeterince zaman harcıyorsanız (çünkü bir şeyler yapmak yerine hataları
düzeltiyordunuz

Ya alternatif? - Hataları düzeltmek için yeterince zaman harcamıyorsunuz ve uygulamanız çöküyor, yanıyor ve rakibiniz tüm geleneklerinizi alıyor ve sizi etkili bir şekilde pazar yerinden çıkarıyor. İşin püf noktası (ve tüm bunların en zor kısmı) aslında kabul edilebilir bir denge bulmaktır.
shawty

1
Hayır katılıyorum, ama oradan gelen kendi görüşlerim, çünkü bugün ve yaşta gerçekten inanıyorum, uygun hata ayıklama sanatı kayıp bir sanat haline geliyor. Çok çoğumuz, IMHO'nun çok fazla yanlış güvenlik sağladığı birim testleri gibi şeylere çok fazla güveniyoruz. Birim testinin kaldırılması gerektiğini söylemiyorum, ama bundan dolayı artık yeterli hata ayıklama ve hata düzeltme uygulamalarının yapılmadığını söylüyorum. Bu, hata düzeltmenin gerekli olmadığına inanan yöneticilere (yukarıda açıklandığı gibi) yol açar ve sonuç olarak (Tekrar IMHO) bunu yeterince yapmıyoruz.
shawty

2
birim testleri ve hata ayıklama farklı problemler için kullanılan farklı sanatlardır. "Bizim kod doğru" sorun daha iyi "kod neden kırıldı" sorunu daha iyi çözmesine rağmen. Her şey eşit olduğunda, insanların kök nedenleri tanımlamaktan ziyade doğru kodu yapmada iyi olmasını tercih ederim.
Telastyn

1
Şimdi bu noktada tam anlaşmam var. Bugünün endüstrisinde birçok programcının bunu saat 9'a kadar bir başka iş olarak görmesi üzücü bir gerçektir, ev saatine ve saat saatine kadar kodu patlatmaktadır. Gün içinde, devs iyi, sağlam, iyi test edilmiş kod yazma konusunda büyük gurur duydu ve bir klavyenin yakınında herhangi bir yere gitmeden önce düşünmek için zaman harcadı, bu gün ve yaşta çok az şey görüyorsunuz.
shawty
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.