Altın kaplamanın durdurulması ve sadece çalışma gelişmelerinin serbest bırakılmasından memnun olunma [kapalı]


29

Üyesi olduğum geliştirme ekibi yakın zamanda Çevik uygulamalara göre çalışmaya adapte oldu. Bu, kişisel olarak, altın kaplama kodunu (ve dokümantasyonu) kendimi durduramayacağımı ve sonuç olarak gereklilikleri daha önce karşılayan çözümler sunabildiğimde orijinal tahminleri aştığımı vurguladı.

Etikimin, koduma çok fazla bağlı kalmamın ve nadiren serbest bırakılmadan ve ilk dereceye kadar mükemmelleşmeden serbest bırakılmamdan dolayı saplantılı olduğunu düşünüyorum. Bunu gerçekleştirdiğim için mutluyum, ancak ilerlememden memnun olma ve bunun yerine zamanında bırakma konusundaki tutumumu / zihniyetimi nasıl değiştirebilirim?


7
Altın kaplamayı tanımlayın. Bana göre, altın kaplama, gereksiz şeyler ekliyor (Yalın anlamda, gereksiz işlevsellik, çok fazla dokümantasyon veya katma değer içermeyen dokümantasyon gibi atık üretmek). İhtiyaç duymadığınız şeyleri eklemiyor gibi görünüyorsunuz, ancak yeni iş ürünlerini çekmek yerine yeniden refactoring yapmak için zaman harcıyorsunuz.
Thomas Owens

Altın kaplama ile demek istediğim, yeni işlevler eklemeye gerek kalmadan zaten gereksinimlerini karşılayan bir tasarımı (belki de gelecekte tekrar kullanmaya çalışmayı denemek ve teşvik etmek) mükemmelleştirmek için çabalamak.
Andy Bowskill

Patronun ne düşünüyor?
JeffO,

Yanıtlar:


22

En iyisi, yeterince iyi olanın düşmanıdır.

Her zaman daha fazla test yapabilir, daha iyi belgeler yazabilir, bu köşe kasalarını kaldırabilir, eksik özelliklerin neler olduğunu doldurabilir, mimariyi daha temiz hale getirebilirsiniz. Asla bitmez. Ancak bitmesi gerekiyor. Karşılanması gereken son tarihler, bitmiş olan ürün kısmına bağlı olan harici kısıtlamalar vardır. Bir ürünün küçük bir kısmında mükemmellik için çabalamak, ürünü bir bütün olarak incitir.


2
Teşekkürler David, bu bana son zamanlarda okuduğum bir alıntıyı hatırlatıyor: “Mükemmel düşmanın düşmanıdır”.
Andy Bowskill

1
Orijinal Fransızca (Voltaire) olduğu için, hangi versiyonun "doğru" olduğunu söylemek biraz zordur - biri Fransızca yazmamışsa, yani.
David Hammen,

24

Öncelikle, daha fazla geliştiricinin bu sorunu yaşamasını istiyorum, çünkü yazılım beklenenden daha geç piyasaya sürüldüğü için değil, muhtemelen daha yüksek kalitede bir sürüm olacağı için.

Kendi orijinal tahminlerinizi aşıyorsanız, belki de "altın kaplama" adımlarınızı tahminlerinizin bir parçası olarak eklemeniz gerekir. Kendi tahminleriniz değilse, belki de onları formüle etmeye dahil olmalısınız.

Her durumda, bir son teslim tarihine sahipseniz, buna bağlı kalmalısınız. Herhangi bir "altın kaplama", serbest bırakılmaması gereken son bir adım olarak bırakılmalıdır. Bir sürümün bir parçası olarak mutlaka dahil edilmesi gerektiğini düşünüyorsanız, kendi zamanınıza (örneğin çalışma saatleri dışında) "altın kaplama" eklemeyi düşünün.

Yapmanız gereken şey, "altın kaplama" adımlarınızı ekibinize ve / veya yönetiminize ulaştırmak ve neden önemli olduklarını düşündüğünüzü tartışmak. Onları bu adımların yararlı olduğuna ikna edebilirseniz, gelecek sürümlerin bir parçası haline gelmelidir.


Teşekkürler Bernard, iyi tavsiyeler. Evet, bu aynı zamanda son ürün takasının kalitesine karşı zaman ve maliyeti de vurgulamaktadır.
Andy Bowskill

@AndyBowskill, seninle aynı sorunu yaşıyorum. Nasıl yapıyorsun şimdi?
datasn.io

14

Altın Kaplama Yazılım

Yazılım için bir açıklama olarak kullanılan ilk kez ben testere altın kaplama bir oldu Barry Boehm tarafından kağıt o aşağıdaki temel nedenini verdi:

Altın kaplama. Tasarım öncesi sabit gereksinimler spesifikasyonları, yazılımı altın kaplamayı teşvik etme eğilimindeydi. Kullanıcıların gereksinimleri hakkında sorular sorması sık sık “Bu özelliğe ihtiyacım olup olmayacağını bilmiyorum, ancak durumu tam olarak belirtebilirim” anlamına geliyor.

Açıklamasında, araştırmalarında açıklanan projelerin, her bir döngü için bir dizi prototip üretilebildiği ve spiraller büyüdükçe, tam özellikli bir ürün ürettiği kapsam dahilindeki sarmal yazılım yaşam döngüsü modelini içeren yöntemler kullanılmasını önermektedir . Spiral, yazılım araştırmacıları arasında geniş yayılma etkisine sahipti ve şelale ile Çevik arasında önemli bir köprü idi. Spiral kritik bir sınırlama spiral etrafında her zaman, döngüleri daha uzun ve daha pahalı olmasıdır.

Agile'de olduğu gibi, spiral, daha dar kapsamda bulunarak altın kaplamadan kaçınmaya çalışmakta ve proje ekiplerin gereksinimleri tamamlayabilmesi için yeterince uygun bir proje hazırlarken, aynı zamanda hedeften ilk günden teslim gününe kadar odaklanmayı sağlayacak kadar kısa kalmaktadır. Scrum gibi Çevik yöntemlerin üstün olmasının bir yolu, Scrum'un yinelemelerle daha uzun sürmeyen bir zaman dilimine sıçramasıdır. Rapordan, proje yönetimi, altın kaplama üzerinde bireysel geliştiricilere göre daha fazla etkiye sahip görünüyor.

Time Boxing için Yetenek

Zaman kutusu yapabilmek çok önemlidir, ancak bu ikili bir beceri değildir. Sende yoksun veya yoksun. Sen daha iyi ya da daha az iyisin. Patronundan ya da senden gelse de, kimsenin altın kaplamayı durduramayacağını söylemediğini söylerdim. Kulağa kişisel, yaygın ve kalıcı geliyor.

Bir kök neden analizi, çeşitli sorunların belirlenmesine yardımcı olabilir. Onların hepsinin size işaret etmeyeceğinden eminim ve psikopatlarla çalışmadığınız sürece, takımınızdaki diğer kişiler Çevik beceri setlerini geliştirmek için benzer ihtiyaçları göreceklerdir. Problemi olmayan birini tanıyorsan, onları çok iyi tanımıyorsun. Geliştirilmesi gerekmediğini düşünen birini tanıyorsanız, kendilerini çok iyi tanımıyorlar.

Umarım belirlediğiniz iyileştirmeler, kendi farkındalığınızla çözebileceğiniz şeylerdir ve ekibin yardımı ile olur. Ancak bunun bunun bittiği yer olmadığını düşünüyorum. Gözden geçirmelerinizi yazan amir veya yöneticiden beklentim, astlarının başarılı olması için koçluk yapmaları olabilirdi. Bu, özellikle planlanandan Çevik'e (veya geçici olandan Çevik'e) geçmek gibi bir devrimci değişim geçirdiğinde çok önemlidir.

Hızlı ve Kirli veya Risk Yönetilen Prototip?

Görevlerin belirli bir şekilde yerine getirilmesini talep eden bir yöneticim vardı.

Çabuk ve kirli, ama güzel bir şey.

Bunun saçma sapanlığını biliyordu ve bu onun akıllı mizah anlayışının bir parçasıydı. Birçok insan bunun gibi şeyleri söyler ve çok ciddiler. Bir yerlerde, sorunu gelişmiş bir teknoloji veya yaklaşımla hafifletmek için bir uzlaşma veya fırsat vardır.

Zaman kutumuza uyması için ne feda edebiliriz?

Aşırı Programlamanın Açıklaması bölümünün ikinci bölümünde , Kent Beck hızlı hareket etmenin neye mal olduğunu anlatıyor. Cevabı "müşteriye değer yaratmak için yalnızca yapmanız gerekenleri yapın" dır.

Risk

Aynı kitabın ilk baskısında, Beck, Boehm'in riskini metodolojisi için kritik olduğu konusunda kontrol etme konusundaki görüşlerini biraz daha yakından tanımlayarak şöyle dedi:

"Risk, yazılım geliştirmenin temel sorunudur"

Her iki baskıda da Beck, sekiz ortak riski listeliyor ve açıklıyor, ardından XP'nin (veya belki de Çevik olarak) her birinin belirli bir şekilde ele alındığına dair bir iddia. Benim için açıklamasının çoğu, daha küçük artışlar kullanmaktan daha hızlı kayıyor ve daha hızlı tekrarlamalar, risklerin üstesinden gelmek için çok büyürken, olayları yolunda yönlendirmemize izin veriyor.

Yeterliliğin Zihinselliği

Beck, kaynakları Dağ İnsanları ve Orman İnsanları hakkında bir hikaye bağlamında tartışır ve “Yeterliliğin Zihinselliği” olarak adlandırılan bir kavram sunar. Durumunuz bağlamında, “Yeterli zamanınız olsaydı nasıl yapardınız?” Diye soruyor. Sadece bir kitap önizlemesi olarak sunulan bu ilk bölüm, XP'nin (ve diğer Çevik yöntemlerin) zaman gibi kısıtlamalar hakkında nasıl düşündüğü hakkında düşünmek için birçok yiyecek sağlayabilir.

Zorunluluk Hastalığı Değil Belirti Olabilir

Yıllar önce, birçok ertelemenin korkudan kaynaklandığını belirten erteleme hakkındaki bir kitaba baktım. Başlamazsan, hata yapmazsın, belki de eleştirilmezsin. Zorunluluk ve mükemmeliyetçilik, ahlaki anlayışımızın bize ertelemeden daha iyi olduğunu söylediği, ancak muhtemelen aynı sonucu verdiğini söyleyen bir şey verir. Belki başka bir biçimde erteleme ile ilgili bir sorun yaşadığınızı düşünün?

Eleştiri ve Rekabet

Scrum gibi Çevik metodolojilerde erteleme için eleştirilme veya cezalandırma olanakları hiç bu kadar yüksek olmamıştı. Bu bir kısır döngüdür. Erteliyorum, eleştirildim, eleştirildim çünkü erteledim. Günlük iş görüşmelerinde her zaman uyanık durumdayız çünkü ekibimize başardıklarımızı bildirmekten her gün bir gün veya daha azız.

İdeal bir takım olarak, Scrum erteleme düzeltmek için günlük bir fırsat verir. Hatalar yardım gelmeden önce büyükleşmek için zamana sahip olmamalıdır. Ekipler her zaman güvende olmaları gereken yerlerde değillerdir, bu nedenle ekip içindeki liderlerin olayları ilerletmelerine izin vermek için ya eleştiriye ya da eleştiri korkusuna proaktif olarak hitap etmeleri gerekebilir.

İş dünyamızda, bir takımdaki her bir insan aynı zamanda başkalarıyla da rekabet etmelidir. Başarıları için çalışmayı ve görkemi paylaşan bir takıma sahip olduğuna inanmak, ancak üyelerin% 20'sini ödüllendiren, üyelerin% 10'unu veya daha fazlasını ödüllendiren yıllık bir performans yönetimi süreci kullanmak biraz şizofreniktir ve % 70 çoğunluğun teşvik olmadan elinden gelenin en iyisini yaptığını iddia ediyor. Bence WRT odasında ekip çalışmasını teşvik eden büyük bir fil ve Kent Beck'in öyküsüne atıfta bulunmak, Dağ Halkı olmanın derin kültürel bağlarını gösteriyor.

İleri Giden Yol

Çevik bir ekibin bir üyesi olarak, neyin işe yaradığı hakkında çalışmak ve başkalarıyla iletişim kurmak iyi olur. Ekibiniz birim testlerini bir araçla otomatikleştirmek için TDD kullanıyorsa, size en iyi hizmeti veren kişiyi size koçluk etmesini sağlayın. Süpervizörünüz veya yöneticiniz dokümantasyon yaklaşımınızla ilgili bir sorun yaşarsa, neyi sevdiğini veya kimin istediği gibi yaptığını bulun ve yaklaşımlarını izleyin. Ham kodlama hızına düşerse, daha hızlı kodlamanın ne olduğunu araştırın.

Liderler, kendi sorunları hakkında samimi konuşma (başkalarının değil) gibi istenen davranışları modelleyerek, takımın Çevik Deniz stiline nasıl geçebileceği hakkında bir diyaloga girerek, yardım teklif ederek ve takip ederek, rol modellerini doğru yönde adım adım atabilirler. sol arka). Takımdaki herkes aynı yeteneklere sahip değil. Eşleşen ekip üyelerini araştırmak veya katılan kişilerin tamamlayıcı güçlerini vurgulayabilecek görev ve roller atamak uygun olabilir. Becerilerin büyümesi veya iyileştirilmesi için planlama yapmak hem denetleyici hem de alt yönetici için işin ödüllendirici bir parçası olmalı, ancak erken ve sık etkili olması gerekir.


Güzel, ayrıntılı cevap. +1. Re "ama erken olmalı": Sonbahar, bu yüzden ben bir Amerikan spor benzetmesi kullanacağım. Bir futbol takımının yıllık çalışan yorumlarıyla tipik bir işletme gibi çalışıp çalışmadığını hayal edin. “Maaşınızı% 50 düşürüyoruz. İlk oyunda üç kolay maçı kaçırdınız, sonraki dört maçta oyununuzu ikinci çeyreğe kadar görmediniz ve koşunuz sezon boyunca subpar oldu.” Yılda bir kez eleştiriler iyiden daha fazla zarar veriyor. Gelecek için çok geç ise, yapıcı eleştiri diye bir şey yoktur.
David Hammen,

Dağ insanlarına ve orman insanlarına kopmuş bağlantı.
Joker

7

Siz de eğlence için programlıyor musunuz? Ayrıca programlamanın keyfini çıkartan iş yerindeki kısıtlamalardan da rahatsız oldum ve bunu telafi etmek için bazen evde yeni bir proje başlatacağım ve "doğru yap" diyeceğim. Bölünme ikisini de karşılamamı sağlıyor: ihtiyaçlarımı ve şirketi.

Veya, kapalı zamanınızdaki (sonunda) işin sağlayamayacağı şeyleri yerine getirmek için programlama dışında yeni bir beceri geliştirebilirsiniz. ;)


Stack Exchange Programcılarına ilk yazınızı gönderdiğiniz için teşekkür ederiz. Lütfen takip eden soruları cevap olarak değil, soruya yorum olarak girmeyi düşünün. Yüksek puanlanmış soru ve cevap yazma kriterleri hakkında daha fazla bilgi edinebilir ve programmers.stackexchange.com/faq
DeveloperDon

Teşekkürler duanev, ilk paragrafınız kesinlikle benimle de doğru!
Andy Bowskill
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.