Ana içeriğe geç

Bus Factor

Okunuşu
bas faktır
Güncellendi 2 dk okuma

Bu sayfayı paylaşın

Bağlantıyı gönderin, tanımı bağlantısıyla birlikte alıntılayın ya da kendi sitenizde bir kart olarak gösterin.

https://softwaredictionary.org/tr/terimler/bus-factor

Kısaca

Bus factor, geriye kalanlardan hiçbiri kritik parçaları bilmediği için bir proje durma noktasına gelmeden önce aniden ayrılabilecek en az kişi sayısıdır.

Bus factor nedir?

Bus factor, geriye kalan kimse projenin kritik bir parçasını anlamadığı için projenin ciddi sıkıntıya düşmesinden önce aniden ortadan kaybolabilecek (kasvetli özgün ifadeyle, otobüsün çarpacağı) en az ekip üyesi sayısıdır. Bus factor'ün 1 olması, tek bir kişinin başka kimsede olmayan bilgiyi elinde tuttuğu anlamına gelir; bu ciddi bir risktir. İmge biraz ürkütücü olduğu için birçok kişi, o kişinin piyangoyu kazanıp işi bıraktığını hayal eden lottery factor (piyango faktörü) adını tercih eder.

Ekipler onu genellikle gayriresmî olarak, dağıtım, faturalama ya da arama servisi gibi her kritik alan için bozulursa gece 3'te onu kimin düzeltebileceğini sorarak tahmin eder. Yalnızca tek bir isim çıkıyorsa o alanın bus factor'ü 1'dir. Araçlar da onu sürüm kontrol geçmişinden, neredeyse tamamen tek bir kişi tarafından yazılmış dosyaları bularak tahmin edebilir. Onu artırmanın yolları arasında eşli ve mob programming, farklı takım arkadaşlarının kod incelemesi yapması, görevlerin ve nöbet (on-call) sorumluluğunun dönüşümlü olması, runbook'lar ve mimari notlar yazmak ve ortak kimlik bilgilerini tek bir kişinin kafası yerine bir gizli bilgi yöneticisinde (secrets manager) saklamak vardır.

Düşük bir bus factor, imza sosun tarifini yalnızca bir aşçının bildiği bir restorana benzer: o aşçı hastalanırsa yemek menüden kaybolur. Bu fikir şirket ekipleri, tek bir gönüllünün sürdürdüğü açık kaynak projeleri ve küçük bir projeye bağımlı olmanın riskini değerlendiren herkes için önemlidir.

Bus factor çoğunlukla tek hata noktasıyla (single point of failure) karıştırılır. Tek hata noktası genellikle yedeği olmayan tek bir sunucu gibi teknik bir şeydir; bus factor ise insanlar ve bilgiyle ilgilidir; 1 olan bir bus factor, insan kaynaklı bir tek hata noktasıdır. Bus factor'ü artırmak herkesin her şeyi bilmesi gerektiği anlamına gelmez; her kritik alanda güvenle çalışabilecek en az iki veya üç kişi olması demektir.

Önemli noktalar

  • Bus factor, bir projenin durmadan önce kaç kişiyi kaybedebileceğini sayar.
  • 1 olan bir bus factor, kritik bilginin tek bir kişinin kafasında olduğu anlamına gelir.
  • Eşleşme, kod incelemesi, rotasyon ve dokümantasyon onu artırır.
  • Sürüm kontrol geçmişi, tek bir yazara ait alanları ortaya çıkarabilir.
  • Bir bilgi riskidir; teknik tek hata noktasıyla ilişkili ama ondan farklıdır.

Örnek

Kodun bir alanını kimin bildiğini kontrol etmekbash
# Who made the commits that touched the billing code?
git shortlog --summary --numbered --no-merges -- src/billing/

#   412  Dana
#    17  Sam
#     3  Lee
# One person made about 95% of the changes: likely a bus factor of 1.

# Who has worked on it recently? (recent knowledge matters most)
git shortlog -sn --since="1 year ago" -- src/billing/

Sık sorulan sorular

İyi bir bus factor nedir?

Evrensel bir sayı yoktur, ama her kritik alanın bus factor'ü en az 2, tercihen 3 veya daha fazla olmalıdır. Tüm proje için, bilgi tesadüfen değil bilinçli olarak paylaşıldığı sürece ne kadar yüksekse o kadar iyidir.

Lottery factor nedir?

Lottery factor, bus factor'ün daha dostane bir adıdır. Aynı riski kasvetli imge olmadan tanımlayarak, proje durmadan önce kaç kişinin piyangoyu kazanıp işi bırakabileceğini sorar.

Bus factor nasıl artırılır?

Bilgiyi bilinçli olarak paylaşın: eşli veya mob programming yapın, her alanı farklı kişilerin incelemesini ve üzerinde çalışmasını sağlayın, nöbet sorumluluğunu dönüşümlü yapın ve kritik sistemler için kısa, güncel dokümantasyon tutun.

İlgili sayfalar

Bu sayfada bir hata ya da eksik mi gördünüz?Düzeltme önerin

Daha fazla

Ayarlar