Bir geliştiricinin iş tanımında önemli bir çıktı olarak “hatasız” olması uygun mudur? [kapalı]


10

Tüm iş tanımlarının gözden geçirilmesinin bir parçası olarak, şirketim aşağıdakileri anahtar çıktı olarak dahil etmeye karar verdi:

web sitesi geliştirme zamanında, şartname dahilinde ve hatasız tamamlandı

Spesifikasyonların düzenli olarak değiştiği göz önüne alındığında, resmi bir değişiklik kontrol süreci yoktur ve ortamlar, biraz öngörülemez, bu KPI ne kadar gerçekçi ve makul?


20
Tamamen gerçekçi değil. Bu muhtemelen bir çok kötü geliştiriciyle çalışan biri tarafından yazılmıştır. Ama aynı zamanda kötü yönetimin hatası da olabilir. Yeterli bilgi sağlanmadı.
Mark Canlas

11
Özgeçmişlerinde "hatasız kod yazar" ile gelen geliştirici pozisyonu karşılayacak kadar gülünç olacaktır.
P.Brian.Mackey

12
Hiçbir hataya sahip olmadığı ve hedefine ulaştığı kanıtlanabilen tek kod, hiçbir şey yapmadığını iddia eden boş bir kod tabanıdır.
unholysampler

8
pfft ... insanların kolayca yapabileceği bir günah keçisi maddesine benziyor. "Maalesef, iş sözleşmenize uymadınız ... Sizi haber vermeden veya ek bir sebep olmadan kovacağız.
Steven Evers

5
Tabii ki hatasız. Derleyici diyor ki: 0 hata, 0 uyarı. Bu tamamen iş gereksinimlerini karşılar :-)
Ferruccio

Yanıtlar:


21

"Hatasız" çok öznel . Bir erkeğin "Karşılanmayan özellik isteği" başka bir erkeğin "Hatası" dır. "Tasarım özelliklerine büyük ölçüde uymalı" gibi bir şey daha uygun olacaktır. İş tanımında açıkladığınız şeyi hiç görmedim. Sözleşmeli işler için gördüm ama çalışanlar için görmedim .


9

Cevapların çoğuna karşı çıkacağım ve bunun kesinlikle makul ve gerçekçi olduğunu söyleyeceğim.

Tüm gelişim zamanında tamamlanacak mı? Tabii ki olmayacak, her zaman değil.

Tüm gelişim şartname dahilinde tamamlanacak mı? Bunu umut etmek istersiniz, ancak bazen bu mümkün olmaz ve imkansız veya kendisiyle çelişen bir spesifikasyondan bir sapmayı işaretlemeniz gerekir.

Ve tüm gelişmeler hatasız mı olacak? Asla .

Ama bir KPI bunun için. Bu, ölçülebilen ve performansı ve ilerlemeyi izleyebileceğiniz bir şeydir.

Spesifikasyonlar düzenli olarak değişirse, resmi bir değişiklik kontrol süreci yoktur ve ortamlar öngörülemezse, bu rakamı "hatasız" a yakın tutmak zor olacaktır. Ancak bu zorluk sizin işinizdir ve şirketinizin kendi özel kaos lezzetini yönetme konusunda daha fazla pratik aldığınız için, umarım oldukça iyi yapacağınız bir iş - ve gelecek yıl daha da iyi olacak.

Sayaç soru: Ne KPI'lardır olurdu Eğer bir programcı için teklif? Zor bir soru. Yaptığımız şeylerin çoğunu ölçmek zor.


4
Herhangi bir önemli boyuttaki kod tabanının "hatasız" olduğunu garanti etmek neredeyse imkansızdır, çünkü bulamadığınız bir hata olabilir. Ayrıca, hata nedir? Bir böcek? Bu nasıl ölçülür?
philosodad

1
@philosodad - bu benim açımdan. Hatasız olmayacak . Ancak, bu yıl yazdığınız kodda x hataları bulunursa ve gelecek yıl x-4 ise, KPI'nızda iyileştiniz. Bir hatanın ne olduğuna gelince, bu gerçekten kuruluşunuz için bir konudur ve hiç kuşkusuz, "hata" ile "belgelenmemiş gereksinim" ile "değişen gereksinim" ve "görüş farkı" gibi bazı argümanlara neden olacaktır.
Carson63000

3
@ Carson63000: ama bu benim amacım! Çeşitli argümanlara neden olduğu garanti edilen, taraflar arasında kaçınılmaz anlaşmazlıklara yol açan ve kilit bir metriği en azından sorunlu olarak tanımlayan bir KPI. Örneğin, bir "hata" sübjektif bir ölçütse, yöneticilerin kendilerini daha iyi görünmeleri için hataları tanımlamaları öngörülebilir, böylece herkes aynı performans için düşük bir hata oranına sahip olacaktır. Ancak yeni bir yönetici, aynı çıktıyı nasıl "geliştirdiklerini" göstermek için aşağı yukarı tanımlayabilir.
philosodad

3
Kritik hata içermeyen bir hedefin olması tercih edilir (kritik olarak tanımlayın). Veya iyileştirilmiş bir hata oranına sahip olmak. Ve daha da iyisi, bu şeyler iş tanımının bir parçası değil, yıllık performans değerlendirmesi için hedefler olmalıdır.
hızla

3
KPI'lar sadece tam olarak karşılanabilecek değil, aynı zamanda aşılabilecek bir hedef içerir. Bunu, KPI hedefinden daha kötü veya daha iyi yaptığınızı ölçmek için kullanırsınız. "Hatasız" ın nasıl aşılabileceğini görmüyorum. Bu nedenle, bir KPI olarak tasarlansa bile kusurludur. Daha iyi bir KPI, hata sayısını, yazdığınız koda karşı gönderilen ve gerçek kod değişiklikleriyle sonuçlanan test raporlarını, vb. Ölçmek olacaktır.
Marjan Venema

4

Eğer bir iş tanımı ise, o zaman bu konuda çok fazla endişelenmezdim çünkü hatasız koda doğru çalışmak tipik bir programcının işinin bir parçası (biz asla başaramasak bile).

Bununla birlikte, bir KPI olarak çok uzaklara ulaşıyor, ancak programcı değilse öneren kişiyi suçlamayın. Sadece bu ifadenin kuruluş için istenmeyen bir hedef belirlediğini açıklayın. Diğer bir deyişle, "hatasız", gerçekten bir servete mal olacak yazılım için son derece yüksek bir standarttır. İyi çalışan bir yazılım projesinin, her bir hatanın değerli geliştirici zamanını harcamaya değip değmeyeceği konusunda karar verilmesini gerektirdiğini açıklayın.

İşte konuyu güzelleştiren bir örnek.
Bir programcı, yazılımımızın "3000 yıllık" bir hataya sahip olduğunu ve 31 Aralık 999'dan sonra çalışmayı durduracağını keşfeder. Sorunu çözmek 6-8 ay sürecektir. KPI'ye dayanarak, şirkete gerçek bir değeri olmamasına rağmen bu projeyi üstlenmeye teşvik edilmektedir.

Tamam, bu örnek biraz aşırı, ancak herhangi bir yazılım projesinde, benzer şekilde bunları düzeltmek için gerekli ROI'yi oluşturmayan düzinelerce küçük kusur bulunacak. KPI bunun yerine, programcının asla kusuru ilk etapta getirmediğini ima etmeyi amaçladıysa, HERHANGİ bir çalışanın işlerinin performansında asla hata yapmamak standardına uyması makul görünüyor mu?


"Yönetim tarafından sorun olmadığı ve düzeltilmesi gerekmediği kabul edilen kusurları düzeltmek" i kapsayan bir KPI'nız olması muhtemel görünmemektedir.
Carson63000

@Carson - tanıdığım bazı büyük şirketlerde değil. Aptal hedefler iş yapma biçimlerinin bir parçasıdır.
hızla

3

Hayır

Sadece uygun değil, gülünç

Test, sadece hataların varlığını kanıtlayabilir, yokluklarını değil, bu nedenle bu sözleşme kapsamında yazılan her programın titiz bir doğruluk kanıtı içermesi gerekir ... ve % 100 test kapsamı

"Yukarıdaki koddaki hatalara dikkat edin; sadece doğru olduğunu kanıtladım, denemedim." - D. Knuth

KPI'lar bir amaca yönelik başarı ve ilerlemenin bir ölçüsüdür. İkili bir geçiş değil "hatasız kod = başarı, tek bir hata = başarısızlık, kovuldunuz!"
Carson63000

@Carson: "hatasız" bir KPI değil, bir fantezi.
Steven A. Lowe

1
Bana bir dikiş gibi geliyor. JD'ye aptalca bir şey koyun, o zaman bir mazerete ihtiyaç duyulduğunda kişi JD'nin istediği gibi performans göstermediği için kovulabilir.
hızla

3

Elbette hatasız kod yazmak her programcının işi ve sorumluluğudur. Bu oldukça makul bir beklenti. Çalışmayan bir kod çıkarırsanız nasıl profesyonel bir programcı olabilirsiniz? Çalıştığını bilmediğiniz bir kod yayınlarsanız kendinizi profesyonel bir programcı olarak nasıl değerlendirebilirsiniz ?

Bir ressam kiralarsanız, işini iyi yapmasını beklersiniz. Çalışmasının sonucunun hatasız olmasını beklersiniz. Hatalar varsa, bu hataların sorumluluğunu almasını ve ücretsiz olarak düzeltmesini beklersiniz. Dahası, hataların size maliyeti varsa, onun size geri ödeme yapmasını beklersiniz. Neden bu beklentileriniz var? Çünkü ressam profesyonel.

Programcılar hatalarından dolayı herkesi suçlamayı severler. "Programımın gereklilikler veya program nedeniyle ya da Ay 8. evde olduğu için hatalar var" Ama suçlanacak başka kimse yok. Programınızda hatalar varsa , bunları oraya koyarsınız.

Bizim mesleği asla olmak programcılar olayın kendilerinde bittiğini fark kadar bir meslek. Yani onlar kendi programlarının kalitesi sorumludur.

Şirketlerin neden Yazılım KG departmanları oluşturduğunu biliyor musunuz? Çünkü programcılar işlerini yapmıyorlardı! Programcılar o kadar saçmalıydı ki şirketler onları kontrol etmek için tamamen yeni departmanlar kurmak zorunda kaldılar.

Hata listesi ne kadardır? Hata veritabanında binlerce hata olması profesyonel mi? Oldukça açık değil. Kötü davranışın, zayıf disiplinin ve açıkçası, onursuzluğun bir yansımasıdır.

KG'nin hiçbir şey bulamadığından emin olmak bizim işimiz olduğunu anlayana kadar asla bir meslek olmayacağız.


+1, ancak hatasızlığı gerçeklikten ziyade kişisel bir hedef olarak düşünmek istiyorum. Hepimiz bunun için gitmeliyiz, ancak sonsuz kaynaklar verilmediği sürece oraya ulaşmayacağız, en azından şimdi yazılımı nasıl geliştirdiğimiz göz önüne alınmadı.
rjnilsson

Bob Amca'nın düşüncelerine daha fazla katılamamıştım. Bu bir profesyonellik meselesi.
Johnsyweb

1
Bu pozisyon, yönetimimin, daha sonra doğru yazılım yerine, şimdi buggy yazılım vermemi tercih edeceğinden kesinlikle açık olması nedeniyle biraz karmaşıktır . Bu durumda olmakta yalnız olduğumu düşünmüyorum.
Tom Anderson

3

Ne yazık ki bu sadece "tüm üsleri kapsaması" için bir yol gibi geliyor ve açıkça tavsiye edilmez ve muhtemelen geliştiricilerde hayal kırıklığına yol açması muhtemeldir.

Ancak bunu söyledikten sonra, bu inceleme metninde bu metinle ne yaptıklarını gördüğünüzde gerçekten önemlidir. Çok hızlı tepki vermeyin - tünelin sonunda yine de akıl sağlığınız olabilir.


Mevcut çalışma ortamım göz önüne alındığında, bu ifadeyi nasıl uygulayacaklarından çok şüpheliyim.
Phil.Wheeler

2

"Kusursuz mu?" "Tanrı ve melekler tarafından yazılmış, insanlar değil mi?" (burada program-mantık ve belki donanım-mantık hatalarından bahsediyoruz)

Hatasız olduğunu bile kod tek bir satır hakkında gerçekten söyleyemeyiz. Çünkü biz insanlar, hiçbir olumsuz hipotez kanıtlayamayız!

Söyleyebileceğim en iyi şey, hata olasılığının 0 ile 1 arasında bir sayı olmasıdır. Bu sayıya iyi ya da kötü tanımlanmış ve iyi ya da yanlış anlaşılmış yazılım geliştirme ve test prensipleriyle ulaşıyorum; söz konusu kaynak yazılım hatlarının sayısı ile; ne kadar iyi ya da kötü aday olduğumu anlayarak, zavallı köpek, bu ilkeleri bu kod dizilerini üretmede uygular; ve dahası.

Ve bu anlayışı sadece bir olasılık olarak ifade edebilirim . Yani "mantık-hatasız" terimi hiçbir şeye yakın değildir.

"Hatasız" kod üreten bir yazılım mühendisi için bir reklam görürsem hemen başvururdum ya da hemen yayınlarım: şirket, yazılımını nasıl geliştirdiği, test ettiği ve teslim ettiği hakkında çok fazla düşünmedi . Yani ya büyük bir fırsat ya da sonsuz bir kabus olacak.

Yine de, herhangi bir yazılımdan, bu berbat, karanlık, mantık-gözlerinin dışında kalan hiçbir hatayı olmayan kodu beklediğimi söyleyebilirim - hatalar veya uyarılar olmadan derleyen ve bağlayan kod; "geçerli html" veya "geçerli css"; Açıklanamayan hata mesajları veya tarayıcı hataları oluşturmayan JavaScript (diyelim). Bu kısmı doğrudan ölçebilir ve grafik üzerinde siyah beyaz olarak işaretleyebilirim.

O kısım pasta kadar kolay. Herkes yapabilir o .

Hey, aramanızda iyi şanslar :-)


1

Aptal mıyım, yoksa "hata" "derlenemeyen koda karşılık gelen önemli derleyici iletisi" anlamına gelmez mi?

Bu tanıma göre, çok makul bir gereklilik ...


1
Doğru. Sayfa altbilgisinde yanlış hizalanmış bir hata olması bir hata olabilir, ancak sayfanın yüklenemesini önleyen ve çalışma zamanı hatalarını kullanıcıya geri gönderen bir şeyle aynı hata sınıfında değildir.
SinirliWithFormsDesigner

Web geliştirmede "hata" birçok anlama gelebilir. Tüm ürünleriniz için yanlış fiyatların görüntülenmesi büyük bir hata olarak kabul edilebilir, ancak hiçbir şeyin çalışmasını engellemeyebilir ve sunucu günlüklerinde herhangi bir sorun bildirmeyebilir.
Simon B

Bu yorumu yazdıktan sonraki dört yıl içinde, çok daha fazla web geliştirme cehennemi yaptım ve tamamen katılıyorum - olağandışı bir şekilde, 4 yıl önce cevabımın yanında duracağım ve yapmaya çalıştığım noktanın yapmak "hata" tanımı keyfi olduğunu ve (çok) seçeneğini tanımları için tam o olduğunu makul bir gereklilik.
Chris Browne
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.