Özellik sahipliği iyi bir uygulama mıdır?


22

Son zamanlarda şirketimde, bir geliştiricinin bir özelliğe odaklanması (ve sadece bir tanesine) odaklanması önerildi. Bu, geliştiriciyi normal takım rutininin dışında bırakmak, başka sorumluluklardan (toplantılar vb.) Çıkarmak gibi bir şey anlamına gelir ve bu kişi, özellikten, teknolojiden akıllıca "tek" sorumlu olur.

Kayıt için, SAFe içinde SCRUM kullanıyoruz ve her ekip için tam zamanlı geliştiricilerimiz var, kalite güvencesi ve ürün sahiplerini iki ekibimiz arasında paylaşıyoruz (Android ve iOS).

Bunun kısa vadede üretkenliği artıracağı konusunda hemfikirken, bunun birçok sebepten dolayı kötü bir uygulama olduğunu (ve üniversitede öğrendiğimi düşünüyorum) hissediyorum:

  • Kod incelemesi değer kaybeder.
  • Minimal bilgi paylaşımı.
  • Risk artışı.
  • Takım esnekliği kaybı.

Haklı mıyım yoksa hiç fena bir uygulama değil mi?


3
Benim hemen tepkim, ılımlı bir şekilde yapılırsa işe yarayabilir, ancak çok ileri götürüldüğünde sorun konusunda haklısınız. Öte yandan, benim deneyimim, her özelliğin zaten fiili bir sahibi olduğu: Bunun üzerinde çok zaman harcayan son kişi.
Ixrec

" Bir geliştirici odaklanmalı (ve sadece bir tane) " - Bir SPOF istiyorsanız, bu şekilde yapmak iyi bir fikirdir. Son zamanlarda, belirli bir durumda en çok ihtiyaç duyduğunuz kişinin (" wtf?!? Neden bu şekilde yazdı? ") Olduğuna dair ampirik bir teori formüle ettim .
JensG

@JensG: meh, en sık ihtiyaç duyduğum kişinin ("wtf? Neden bu şekilde yazdı?") Benim ve "yazılması gereken şeyleri hatırlamak için otobüs faktörü" olduğuna dair deneysel bir teorim var. "0" dır. Bir başkası tarafından engellendiğimde çok daha fazla dikkat çekiyor, çünkü mevcut kodu sıfırdan kendi değerlerine göre yeniden incelemek yerine bu konuda endişeleniyorum ;-)
Steve Jessop

@SteveJessop: Tabii, sana müşteri osuruklar o bir çözüm ihtiyacı olduğunu ederken onların kod Kloc bir demet inceleyerek düşünme diğer halklar yolu yeniden düzenlemekte çalışıyor şimdi ( ! Yoksa ) bazı insanlar için serin bir fikir olabilir, ama ben edebilir zamanımı boşa harcayarak daha verimli bir şekilde harcayabileceğim komik bir şey görecek kadar inek değilim.
JensG

@JensG: Neyse ki, müşterilerim sizinkinden daha iyi sosyalleşiyor. Bu nedenle, benim için önemli olmanın, insanların benim için daha az ulaşılabilir olmalarına neden olduğu sonucuna yol açan bir tür sihirsel düşünceye dahil olacak kadar baskı altında değilim. Bu yüzden, söylediklerinizde şaka yapmanın bir unsuru olduğunu düşünmüştüm, bu yüzden evet, nasıl çalıştığını hatırlayan birçok kişiyi tutmaya çalışarak anlaşılmaz kodları telafi edebileceğiniz komik bir durum bulabilecek kadar ineğiyim . Özellikle bu tür wtfs'ler sık ​​sık kendi aptalca suçum ve meslektaşlarımın değil.
Steve Jessop,

Yanıtlar:


37

20 yıllık deneyimimde, kod sahipliğinin tasarımcılar arasında sorumlulukları döndürmesi veya en azından bir çift sahibi olması daha iyi. Tek özellik mülkiyetinde, bazıları bahsettiğiniz aşağıdaki sorunlar var:

  • Güvercin deliği tasarımcılarını güverte etme ve büyüme fırsatlarını sınırlama eğilimindedir.
  • Tüm yumurtaları tek bir sepete koyar, böylece birileri bir otobüse çarptıysa veya istifa ederse, bilgide bir delik olabilir
  • tek bir kişi kodda bir sorun görmeyebilir ve bir hak sahibi kodu olmadan incelemeleri çok daha az etkilidir
  • Herkes kendi stilini kullanarak kod üzerinde çalışıyorsa, kod tutarlılığını ve okunabilirliğini korumak zordur - bu durum stil yönergeleriyle çalışılabilirken, incelikler özellikle insanların varsayılan davranışa dayandığı yapılandırmalar üzerinden yapılan sözleşmeler kullanılırken sürünebilir
  • geliştiriciler, kodun gelişimini engelleyebilecek olanın sahibiyse kodlarını koruyabilir ve savunmaya eğilimli olabilirler - eğer birkaç kişi buna sahipse, bu eğilim azalır

6
Kesinlikle. Veri yolu faktörünü , yalnızca tek kişiliğe sahip tek belirgin sorun olarak belirtmek önemlidir.
JensG

1
Otobüs faktörünün maliyete ve YAGNI'ye karşı işlem görmesi gerekiyor, ve otobüsün gerçekten organizasyonunuzu engelleyip engellemediği veya sadece çok fazla güçlük çekip getirmediği. Sonsuza dek haftada 3 saat kaybetmek, iki kişinin yalnızca bir tane yerine belirli bir kod biti hakkında eğitim almasını sağlamak, ya da birinin kendini ortaya çıkarması için bir kereye mahsus olmak üzere 60 saat kaybetmek arasında bir seçim olsaydı geliştiricilerinizden birinin isabet etmesi durumunda, çoğu zaman bir kereye mahsus olan maliyeti seçmiş olursunuz. Ancak belirtilen nedenlerden dolayı bilgi silolarının diğer önemli dezavantajları vardır (daha az belirgin olsa da).
Steve Jessop,

13

Özellik mülkiyeti kaçınılmazdır ve iyi yapılması iyi bir şey olabilir. Genel olarak tanınan angajman sütunlarından ikisi - ustalık kazanmaya yardımcı olur ve özerkliğe izin verir . Bu kod için kimin sorumluluğu olduğunu ve delegasyon, iletişim ve başka şeylerle uğraşmaya yardımcı olduğunu açıkça ortaya koyuyor.

Ama bunun hakkında konuşmuyorsun. Yeni bir takım kurma hakkında konuşuyorsun - bu kişiyi kodun geri kalanından kesmek. Bu harika değil. Kariyerlerini sınırlar. Proje / şirkete risk ekler. Yoldaşlığa zarar veriyor.

Bu yüzden bazı moderasyonlar bunu kötü bir fikirden uzaklaştırmak için olabilir.


1
Tek bir kişinin kod sahipliğinin kaçınılmaz olduğunu kabul etmiyorum, ancak az sayıda kişiye ait olacak. Paylaşılan kodlara sahip olma konusunda kötü bir iş yapan organizasyonlar gördüm ama aynı şeyi yaptım. Gördüğüm en etkili kurulum 2 ila 3 kişinin kod parçalarını bildiği ve işbirliği yaptığı zamandı. Bu, kodlayıcılar arasında stres ve izolasyonu azalttı, çünkü işler başarısız olduğunda ve gecikme özelliklerine, kurumdaki diğer insanların hızlı eğitim rampaları olmadan son başvuru tarihlerini karşılamaya daha fazla önem verildiği zaman tek başlarına olmuyorlardı.
Jason K.

1
@ jason - elbette, takımda rahatça çalışabilecek ve kod üzerinde çalışabilecek birkaç kişi olmalı. Ancak bir kişi, konu uzmanını en çok üzerinde çalışmaktan alıkoyacaktır.
Telastyn

Sık sık olduğu, en muhtemel senaryo olduğu ve konu uzmanlığının iyi bir şey olduğu konusunda hemfikir olun - sadece anlaşmazlık kaçınılmaz olması çünkü bir alandaki KOBİ'lerde çok fazla üst üste binme yaparak daha iyi başarılar gördüm
Jason K .
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.