Ders 14 / 15
Depo Platformu Yetenekleri
Beş yetenek zinciri 45 birimden 21'e indirir ama bulunan 15, kaçan 9 ve yazılmayan kaçan 2 her satırda değişmeden kalır; tek tek kazançlar 2 ile 7 arasındadır ve yalnız tartışmanın kazancı tur sayısıyla büyür — 4, 6, 12.
İçindekiler
Önceki iki ders akışın kurallarını metinle kurdu: katkı rehberi bir metin, sahiplik bir eşleme metniydi. Kuralların yürüdüğü bir yüzey de var — iş öğesinin kaydedildiği, kuyruğun görüldüğü, tartışmanın değişikliğe iliştiği, tümleşen işin yayımlandığı ve yayımlananın tüketilebildiği yetenekler.
Bu yetenekler ürün olarak değil sınıf olarak ele alınır: sorun izleme, pano, tartışma, sürüm yayımı, paket kaydı. Hangi barındırma yüzeyinde durdukları bu dersin konusu değildir ve beş yıl sonra da aynı sınıflar var olacaktır. Bu dersin sorusu tek: her yetenek zincirin hangi geçişinin beklemesini kısaltıyor, ve kısalttığı miktar ne?
Beş Yetenek Sınıfı
Sorun izleme, bir önerinin kaydedildiği yerdir. Öneri bir kayda dönüşmediğinde bir yerde sözlü olarak durur ve sıraya girmesi birinin onu hatırlamasına bağlıdır. Kayıt, öneriyi zincirin ilk geçişine bağlar.
Pano, iş öğelerinin durumlarına göre dizildiği yüzeydir. Önceki derste ölçüldüğü gibi birikimi gösterir, hızı göstermez; katkısı sıradaki öğenin üstlenilmesini hızlandırmasıdır. Kimse sırada ne olduğunu görmüyorsa, sıradan bir şey alınması birinin sormasına bağlıdır.
Tartışma, bir bulgunun ve karşı görüşün değişikliğe iliştiği yerdir. Bulgu değişikliğin dışında bir yazışmada durursa, sonraki tur onu yeniden kurmak zorunda kalır: hangi satır, hangi gerekçe, hangi karşı öneri. İlişik tartışma bu yeniden kurmayı ortadan kaldırır.
Sürüm yayımı, tümleşen işin bir noktaya bağlanıp dışarıya bildirildiği yetenektir. Paket kaydı, yayımlanan işin bir bağımlılık olarak çekilebildiği yerdir. İkisi ayrı geçişlere dokunur ve ikisi de incelemenin sonrasındadır.
Beşinin ortak yanı, her birinin bir kayıt tutmasıdır. Kaydın alanları yeteneğin zincirde ne yapabileceğini belirler.
# örnek iş öğesi kaydı — çalıştırılmamıştır kimlik : #377 durum : incelemede sınıf : arayuz gereksinim : dış çağrıda zaman aşımı süresi ayarlanabilmeli bağlı öneri : #361 değişiklik : ödeme-zaman-asimi tartışma : 4 not, 2'si bir satıra iliştirilmiş sürüm : —
durum alanı öğenin panodaki sütununu, değişiklik alanı hangi değişikliğin bu öğeyi
karşıladığını, tartışma alanı bulguların nereye iliştiğini, sürüm alanı ise işin
yayımlanıp yayımlanmadığını söyler. Alanlardan biri boşsa zincirin o halkası ölçülemez: sürüm
alanı hiç doldurulmayan bir depoda tümleşti→kapandı geçişinin süresi bilinmez.
Yeteneklerin Birbirine Bağlanması
Yeteneklerin tek başına değil, birbirine bağlı olması ölçümü mümkün kılıyor. Zincirin beklemesi geçişlerde ölçülür ve bir geçişin ölçülebilmesi için iki ucun aynı kimliğe bağlı olması gerekir: öneri hangi iş öğesine, iş öğesi hangi değişikliğe, değişiklik hangi tartışmaya, tümleşen iş hangi sürüme.
Bağ koptuğunda kayıp yalnız izlenebilirlik değildir. Bir bulgunun değişiklikten kopmuş bir yazışmada durması, o bulgunun bir sonraki turda yeniden kurulmasını gerektirir ve ölçümde tartışmanın kazancı tam olarak budur — 6’dan 4’e inen tur süresi, kopmuş bağın tamir maliyetidir.
Aynı mantık zincirin sonunda da işler. Bir sürüm notunun hangi iş öğelerini kapsadığı, sürüm ile öğeler arasındaki bağdan çıkar. Bağ yoksa not elle yazılır ve elle yazılan not, kimsenin doğrulayamadığı bir listedir. Bu ders bağın beklemeye etkisini ölçüyor; notun okura etkisi sonraki dersin konusudur.
Her Yetenek Bir Geçişe Dokunur
Ölçümün tasarımı tek bir kurala dayanıyor: bir yetenek yalnız bir geçişe dokunur. Bir
yeteneğin birden çok yere iyi geldiği söylenirse ölçüm anlamını yitirir; hangi kazancın nereden
geldiği ayrılamaz. Eşleme şudur: sorun izleme öneri→sırada, pano sırada→yazılıyor, sürüm
yayımı tümleşti→kapandı, paket kaydı kapandı→tüketilebilir. Tartışma bunların hiçbirine
dokunmaz; turun süresine dokunur.
Son geçiş bu derste ekleniyor. Önceki dersin zinciri iş öğesinin kapanışında bitiyordu; paket kaydı bir adım ötesine, işin bir başkası tarafından tüketilebilir hâle gelmesine dokunur. Bu adım iş öğesinin durumu değildir ve panoda görünmez, ama zincirin okurunun beklediği yer orasıdır.
Turun Sayısı ile Turun Süresi
Tartışmanın ayrı durması bir ayrımı zorunlu kılıyor. İnceleme turunun sayısı ile bir turun süresi aynı şey değildir. Tur sayısını belirleyen şey ilk turda bulunandır ve bu, kursun başından beri eksen atamasının sonucudur. Bir turun süresini belirleyen ise bulgunun bir turdan diğerine ne kadar bütün taşındığıdır.
Bu ayrımın pratik sonucu şudur: hiçbir platform yeteneği tur sayısını düşürmez. Tur sayısı incelemenin gördüğüyle belirlenir ve bir yüzey görmeyi değiştirmez. Yetenekler beklemeye dokunur ve tartışma da beklemeye dokunur — yalnız çarpanı farklıdır, çünkü tur başına yazılan beklemeyi değiştirir ve tur sayısıyla çarpılır.
Ölçümün varsayımları:
- EA22 — Ortak tanımın 600 satırlık değişikliği ve 24 kusuru olduğu gibi kullanılır; sınıf dağılımı ve kâhin kursun sabitidir.
- EA23 — Zincir önceki dersin geçişleridir, sonuna
kapandı→tüketilebilir8 birim eklenmiştir. Diğer dört geçiş 5, 9, 2 ve 3 birimdir. - EA24 — Her yetenek tek bir geçişin beklemesini yeni bir değere indirir: sorun izleme 1, pano 4, sürüm yayımı 1, paket kaydı 1. Değerler yeteneğin var olduğu ve kullanıldığı durumu temsil eder.
- EA25 — Tartışma tek geçişe değil, tur başına beklemeye dokunur ve onu 6’dan 4’e indirir. Gerekçesi, ilişik tartışmanın turlar arasında yeniden kurulmayı ortadan kaldırmasıdır.
- EA26 — Ana ölçümün ataması
üç inceleyici, ayrı eksenatamasıdır. İkinci ölçüm tartışmayı dört atamada ayrı ayrı sınar; başka hiçbir şey değişmez. - EA27 — Yetenekler bulunan kusura dokunmaz. Bir yüzey ne eksen ekler ne dikkat büyütür; bu varsayım ölçümün sonucuyla birlikte sınanır ve tabloda doğrulanır.
- EA28 — Kümenin çözünürlüğü 24 kusurda 1/24’tür; zincirde ölçülebilen en küçük fark 1 birim beklemedir.
Ölçüm
"""Depo platformu yetenekleri: her yetenegin dokundugu tek gecis. Bolum 1 - bes yetenek tek tek ve birlikte; bulunan ve kacan degismiyor mu. Bolum 2 - tur suresini kisaltan yetenegin dort atamadaki kazanci. """ TOHUM = 20260815 EKSENLER = ("arayuz", "gerceklestirim", "test", "belge", "bicim") YAZILMAYAN = "eksik gereksinim" SINIFLAR = EKSENLER + (YAZILMAYAN,) DIKKAT, OBEK = 12, 50 # Zincir: is ogesinin gecisleri ve sonuncusu tuketiciye uzanan adim. ZINCIR = {"öneri→sırada": 5, "sırada→yazılıyor": 9, "yazılıyor→incelemede": 2, "tümleşti→kapandı": 3, "kapandı→tüketilebilir": 8} TUR_BEKLEME = 6 # Her yetenek tek bir gecise dokunur; tartisma turun suresine dokunur. YETENEKLER = { "sorun izleme": ("öneri→sırada", 1), "pano": ("sırada→yazılıyor", 4), "tartışma": ("tur süresi", 4), "sürüm yayımı": ("tümleşti→kapandı", 1), "paket kaydı": ("kapandı→tüketilebilir", 1), } def uretec(tohum): d = tohum % 2147483646 + 1 def r(n): nonlocal d d = (d * 48271) % 2147483647 return d % n return r def degisiklik(satir, kusur_sayisi=24, tohum=TOHUM): r, kusurlar = uretec(tohum), [] obek_sayisi = max(1, satir // OBEK) for i in range(kusur_sayisi): kusurlar.append({"no": i + 1, "sinif": SINIFLAR[r(6)], "obek": r(obek_sayisi)}) return {"satir": satir, "obek": obek_sayisi, "kusurlar": kusurlar} def incele(d, eksenler, dikkat=DIKKAT): okunan = set(range(min(dikkat, d["obek"]))) return {k["no"] for k in d["kusurlar"] if k["sinif"] in eksenler and k["obek"] in okunan} def kurul(d, atamalar, dikkat=DIKKAT): bulunan = set() for eksenler in atamalar: bulunan |= incele(d, eksenler, dikkat) return bulunan def tur_dongusu(bulunan, kusur_sayisi, tur_basina_bekleme=TUR_BEKLEME): kalan, tur, bekleme = kusur_sayisi - len(bulunan), 1, tur_basina_bekleme while kalan > 0 and tur < 6: tur += 1 bekleme += tur_basina_bekleme kalan -= max(1, len(bulunan) // 2) return tur, bekleme, max(0, kalan) def zincir_toplami(d, atama, acik): """Acik yeteneklerin ayarlariyla zincirin toplam beklemesi.""" gecis = dict(ZINCIR) tur_suresi = TUR_BEKLEME for ad in acik: yer, deger = YETENEKLER[ad] if yer == "tur süresi": tur_suresi = deger else: gecis[yer] = deger b = kurul(d, atama) tur, bekleme, kalan = tur_dongusu(b, len(d["kusurlar"]), tur_suresi) return sum(gecis.values()) + bekleme, tur, bekleme, b, kalan TAM = set(EKSENLER) ATAMALAR = { "tek inceleyici, tüm eksenler": [TAM], "üç inceleyici, aynı eksen": [{"gerceklestirim"}] * 3, "üç inceleyici, ayrı eksen": [{"arayuz"}, {"gerceklestirim"}, {"test", "belge"}], "beş inceleyici, beş eksen": [{e} for e in EKSENLER], } d = degisiklik(600) ANA = ATAMALAR["üç inceleyici, ayrı eksen"] taban, t0, b0, bul0, _ = zincir_toplami(d, ANA, []) print(f"atama: üç inceleyici, ayrı eksen | zincir {taban} | tur {t0} | " f"inceleme {b0} | bulunan {len(bul0)} | kaçan {24 - len(bul0)}") print() print(f"{'yetenek':<16s} {'dokunduğu geçiş':<23s} {'tur':>3s} " f"{'zincir':>6s} {'kısalan':>7s} {'bulunan':>7s} {'kaçan':>5s} " f"{'yazılmayan':>10s}") for ad in YETENEKLER: z, tur, _, b, _ = zincir_toplami(d, ANA, [ad]) yaz = sum(1 for k in d["kusurlar"] if k["no"] not in b and k["sinif"] == YAZILMAYAN) print(f"{ad:<16s} {YETENEKLER[ad][0]:<23s} {tur:3d} {z:6d} " f"{taban - z:7d} {len(b):7d} {24 - len(b):5d} {yaz:10d}") z, tur, _, b, _ = zincir_toplami(d, ANA, list(YETENEKLER)) yaz = sum(1 for k in d["kusurlar"] if k["no"] not in b and k["sinif"] == YAZILMAYAN) print(f"{'beşi birlikte':<16s} {'—':<23s} {tur:3d} {z:6d} {taban - z:7d} " f"{len(b):7d} {24 - len(b):5d} {yaz:10d}") print() print(f"{'atama':<30s} {'tur':>3s} {'tartışmasız':>11s} {'tartışmalı':>10s} " f"{'kısalan':>7s}") for ad, atama in ATAMALAR.items(): yok, tur, _, _, _ = zincir_toplami(d, atama, []) var, _, _, _, _ = zincir_toplami(d, atama, ["tartışma"]) print(f"{ad:<30s} {tur:3d} {yok:11d} {var:10d} {yok - var:7d}")
atama: üç inceleyici, ayrı eksen | zincir 45 | tur 3 | inceleme 18 | bulunan 15 | kaçan 9 yetenek dokunduğu geçiş tur zincir kısalan bulunan kaçan yazılmayan sorun izleme öneri→sırada 3 41 4 15 9 2 pano sırada→yazılıyor 3 40 5 15 9 2 tartışma tur süresi 3 39 6 15 9 2 sürüm yayımı tümleşti→kapandı 3 43 2 15 9 2 paket kaydı kapandı→tüketilebilir 3 38 7 15 9 2 beşi birlikte — 3 21 24 15 9 2 atama tur tartışmasız tartışmalı kısalan tek inceleyici, tüm eksenler 2 39 35 4 üç inceleyici, aynı eksen 6 63 51 12 üç inceleyici, ayrı eksen 3 45 39 6 beş inceleyici, beş eksen 2 39 35 4
Kısalanın Okunması
Zincirin tabanı 45 birim. Tek tek açıldığında yeteneklerin kazancı 2 ile 7 arasında değişiyor ve sıralama şöyle: paket kaydı 7, tartışma 6, pano 5, sorun izleme 4, sürüm yayımı 2.
Sıralamayı belirleyen şey yeteneğin önemi değil, dokunduğu geçişin başlangıçtaki uzunluğudur.
Paket kaydı en çok kısaltıyor çünkü kapandı→tüketilebilir en uzun geçişti — 8 birim. Sürüm
yayımı en az kısaltıyor çünkü dokunduğu geçiş zaten 3 birimdi ve orada kısaltılacak yer yok.
Bu, bir yeteneğin değerinin zincirdeki yerine bağlı olduğunu söyler: aynı yetenek başka bir
zincirde başka bir sıraya oturur.
Beşi birlikte açıldığında zincir 45’ten 21’e iniyor; kazanç 24 birim, yani zincirin %53’ü. Tek tek kazançların toplamı da 24’tür ve bu bir tesadüf değil — her yetenek ayrı bir geçişe dokunduğu için kazançlar birbirine karışmıyor ve toplanabiliyor. Aynı geçişe dokunan iki yetenek olsaydı toplam, tek tek kazançların toplamından küçük olurdu.
tur sütunu altı satırın altısında da 3. Hiçbir yetenek turu düşürmüyor. Zincirin toplamı
yarıya inerken tur sayısı hiç kımıldamıyor; beklemeyi kısaltmak ile turu kısaltmak ayrı
işlerdir ve bu yüzeyler yalnız birincisini yapar.
Tartışmanın Ayrıcalığı
İkinci tablo tartışmayı dört atamada ayrı ayrı sınıyor ve tek tabloda görünmeyen bir şey gösteriyor: tartışmanın kazancı sabit değil. İki turluk atamalarda 4 birim, üç turlukta 6, altı turlukta 12.
Nedeni tanımında. Tartışma tur başına beklemeyi 6’dan 4’e indiriyor; kazanç tur başına 2 birim ve tur sayısıyla çarpılıyor. Diğer dört yetenek zincirin sabit kısmına dokunuyor ve kazançları atamadan bağımsız — hangi atama olursa olsun paket kaydı 7 birim kısaltır.
Buradan bir sıralama kuralı çıkar. İncelemenin iyi olduğu bir zincirde tartışmanın kazancı en küçük yeteneklerden biridir; incelemenin kötü olduğu bir zincirde en büyüğüdür. Altı turluk satırda tartışma 12 birim kısaltıyor ve bu, paket kaydının 7’sinden fazla. Yani bir yeteneğin sırası, ekibin incelemesinin ne durumda olduğuna bağlı olarak değişir ve sabit bir öncelik listesi yazılamaz.
Aynı satır bir uyarı da taşıyor. Altı turluk atamanın zinciri tartışmayla birlikte 51 birim; tartışmasız iki turluk atamanın 39’undan hâlâ uzun. Hiçbir yetenek kötü bir eksen atamasını kapatmaz. Yüzey, incelemenin görmediğini görmesini sağlamaz.
Dokunulmayan Sütunlar
Tablonun sağ üç sütunu altı satırda da aynı: bulunan 15, kaçan 9, yazılmayan kaçan 2. EA27 bunu varsaymıştı ve ölçüm doğruluyor.
Bu sabitlik dersin asıl bulgusudur. Beş yetenek zincirin yarısını kesiyor ve bir tek kusur daha buldurmuyor. Kusur bulmanın kaynağı kursun başından beri aynı: bakılan eksen sayısı ve okunan öbek sayısı. Bir yüzey ne eksen ekler ne dikkat büyütür; iş öğesinin bir yerden bir yere geçmesini hızlandırır.
Yazılmayan kaçan sütunu bunu en sert biçimde söylüyor. Eksik gereksinim sınıfı, sorun izleme yeteneği açıkken de 2 kaçıyor — hem de öneriyi kaydeden yetenek tam olarak budur. Kayıt, öneriyi zincire sokar; kaydedilmemiş gereksinimi kaydetmez. Bir önceki dersin ölçtüğü gereksinim beyanı, o sınıfa dokunabilen düzenekti ve o bir yüzey değil, bir rehber maddesiydi.
Bu ayrım bir seçim kuralı verir: bir yetenek zincirde bir geçişi kısaltıyorsa değerlidir ve kısalttığı miktar ölçülebilir. Bulunan kusuru artırma iddiası taşıyan bir yetenek varsa, o iddia ancak eksen sayısını ya da okunan öbek sayısını değiştirerek doğru olabilir; bu tablodaki hiçbir yetenek bunu yapmıyor.
Özet
- Beş yetenek sınıf düzeyinde ele alınır — sorun izleme, pano, tartışma, sürüm yayımı, paket kaydı — ve her biri zincirde tek bir geçişe dokunur.
- Zincir 45 birimden, beşi birlikte açıldığında 21’e iner; kazanç 24 birim ve tek tek kazançların toplamına eşittir, çünkü geçişler örtüşmez.
- Tek tek kazançlar 2 ile 7 arasındadır ve sıralamayı geçişin başlangıçtaki uzunluğu belirler: paket kaydı 7, sürüm yayımı 2.
- Altı satırın altısında da tur 3’te kalır; hiçbir yetenek tur sayısını düşürmez. Yalnız tartışma turun süresine dokunur ve kazancı tur sayısıyla büyür: 4, 6, 12.
- Bulunan 15, kaçan 9 ve yazılmayan kaçan 2 her satırda değişmez: yetenekler beklemeyi kısaltır, kusur buldurmaz.
- Altı turluk atamanın tartışmalı zinciri 51 birimdir ve iki turluk atamanın tartışmasız 39’undan uzundur; hiçbir yetenek kötü bir eksen atamasını kapatmaz.
Sonraki Adım
Zincirin sonunda bir geçiş kaldı ve ölçümde yalnız bir sayıyla göründü: tümleşen iş bir noktaya bağlanıp dışarıya bildiriliyor. O bildirimin kendisi bir metindir ve bir okuru vardır — bu kursun boyunca hiç görünmeyen biri. Sonraki ders o metni ölçer: sürüm notu okura ne söylüyor? Değişikliklerin listesi ile değişikliklerin anlamının listesi arasındaki fark kaç soruya yanıt veriyor, ve okurun sorduğu sorulardan kaçı hiçbir not biçiminde yanıt bulamıyor?
İlerlemeni kaydetmek ve not almak için Giriş yap
Notlarım
Not almak için giriş yapmalısın.