Baskı altındayken, son tarih yaklaşıyor ve bir yönetici boynunuzu soluyor, kendinizi kötü kod yazmaya başlıyor musunuz? TDD ve en iyi uygulamalar, işleri halletmek için yol boyunca kayıyor mu? Böyle durumlarda ne yaparsınız? Deneyimleriniz nelerdi?
Baskı altındayken, son tarih yaklaşıyor ve bir yönetici boynunuzu soluyor, kendinizi kötü kod yazmaya başlıyor musunuz? TDD ve en iyi uygulamalar, işleri halletmek için yol boyunca kayıyor mu? Böyle durumlarda ne yaparsınız? Deneyimleriniz nelerdi?
Yanıtlar:
Tek kelimeyle, evet. Size aksini söyleyen herkes muhtemelen en iyi ihtimalle yanlıştır.
Ancak, anahtar daha az kötü kod yazma deneyiminizi geliştirmektir . Mümkünse "sadece çalışmak" için bir şey koymak için günaha karşı, çünkü olmayacak. Yine de bir tür süreci izlemeniz gerekir (ister kendi şirketiniz, ister şirketiniz, ister bunların bir karışımı).
Deneyim onun çok daha iyi (için söylüyor gasp "baskı altında" üretimine hızlandırılmış dağıtımı anlamına gelmektedir olduğunda) özellikle, düzeltmeler hafta yetmeyecek önlemek şekilde planla birkaç gün slip. Eğer kodu yayınlamak için acele ediyorsanız, test ediciler muhtemelen bunu kauçuk eklemek için acele edeceklerdir.
Eksik tarihler, kötü planlama ve tahminin bir işaretidir. Son teslim tarihinin kaçırıldığını kabul edin ve sorunu çözün. Bazen planlama veya tahmin üzerinde kontrol sahibi olmazsınız . Kimin yaptığını belirleyin ve bunun yanlışlıkla yapıldığını bildiklerinden emin olun.
Bir durumda son tarih taşınamazdı, yüksek kafeinli içecekleri patlatıp acele ettiniz. Feda edebileceğiniz her şeyi tanımlayın ve kesin. Geriye kalanları alın ve mümkün olduğunca hızlı uygulayın. Bu, kararsızlık, garip hatalar, verimsiz kodlama uygulamaları, bant yardımı düzeltmeleri ve diğer her türlü dehşet gibi sorunlara neden olacaktır. Mutlaka kötü bir kod değildir , ancak ideal değildir .
İnsanların sahip olduğu% 50 iyi bir çözüm, daha fazla problemi çözüyor ve kimsenin sahip olmadığı% 99'luk bir çözümden daha uzun süre hayatta kalıyor çünkü laboratuvarınızda lanet şeyi sonsuz bir şekilde parlattığınız yerde. Nakliye bir özelliktir .
Yazılımdan Joel'den Duct Tape Programmer .
Değil İdeal kod ele alınabilir o ele eğer . Ele alınmayan kod yığılır ve imkansız olmasa da ek değişiklikleri zorlaştırır. Uygulamanın o kadar bağımlı bir şekilde birbirine bantlandığı noktaya gelebilir ki eklemeler sadece en dikkatli programcılar tarafından fahiş bir zaman maliyetiyle yapılabilir. Nakliye bir özellik olsa da, sürdürülebilirlik.
Yazılım işçiliğinin büyük bir hayranıyım - temiz kodları elimden geldiğince yazıyorum, ama bazen zamanın kısa olduğu ve son teslim tarihinin yaklaştığı anlarda acele etmek zorunda kaldım. Gerçekten elimden gelenin en iyisini yapmaya çalışmıyorum, ama bazen ondan kurtulamazsın.
Bazı insanlar "İşte bu hayat, gönderilmelisin" diyecek ama ben bu tutuma gerçekten katılmıyorum.
Acele kod yazarken, yazılımı zamanında kapıdan çıkartabilirsiniz, ancak önümüzdeki birkaç gün içinde yazılımdaki hatalarla ilgili destek çağrıları aldığınızda ne olur (bu hatalar aynı parçada yaşıyor) bitirmek için koştuğunuz kodun). Ya da sizi serbest bırakma gününde iyi olacağına söz vermiş olsanız bile, raporlama modüllerinin neden artık çalışmadığını soran kızgın bir müşteri mi alıyorsunuz?
Her şey çok iyi "Gemiye gitmelisin" demekle birlikte, verimli görünmekle özensiz bir işçi gibi görünmek arasında bir fark vardır.
Stresli bir durumdayken, kodum işi bitirmek içindir. Bu kadar. Benim görüşümde verimlilik ve kötü olan diğer konulara odaklanmıyorum.
Yine de üzerinde çalışacağım.
Şahsen önemli ölçüde daha kötü kod yazdığımı sanmıyorum, ancak daha kötü bir ürün teslim ediyorum.
Keyfi ve imkansız bir son teslim tarihiyle karşı karşıya kaldığımızda, geliştirme sürecini gözden kaçırıyoruz. Daha yüzeysel kod incelemeleri yapıyoruz (veya bunları tamamen atlıyoruz). Daha az test ediyoruz, nokta kontrol tipi entegrasyon testleri için ayrıntılı birim testini atlıyoruz, ardından entegrasyon testini resmi bir yeterlilik olarak saymaya çalışıyoruz. Doğrudan başarısızlık kriterlerine bağlı olmadıkları takdirde test sırasında anormallikleri göz ardı etme eğilimindeyiz. Dokümantasyon güncellemelerini atlıyoruz, sürüm notlarını iki kez kontrol etmiyoruz, artık gerekli olmayan dosyalar için çıktı listesini temizlemeyi unutuyoruz.
Bir crunch sırasında yazdığınız kaynak kodu yüksek kalitede olabilir, ancak neredeyse kesinlikle kalitesiz bir ürünün parçası olarak gönderilecektir.
Bağlı olmak.
Baskı, her şeyin yapılabilmesi için bir yol olmadığı ve yayınlanmadan saatler önce önemli yeni özellikler eklendiği için mi?
Hatalı kod geliyor!
Ama eğer program sadece gerçekten çok sıkı ama genel plan sağlam olduğu ve sadece normalden çok daha fazla çalışmak ve birkaç özellik duymak ve orada tweaking sürekli odaklanmış tutmak zorunda ise ... Sonra daha iyi kod üretmek Eğer program tonlarca zaman veriyorsa. Tüm ünite testlerini yazılı olarak almamama rağmen kodun büyük bölümlerini kapsamam gerekiyor.