Ders 17 / 19
Yönetişim Modeli
Merkezî, federatif ve karma yönetişimin talep ile kapasite üzerinden modellenmesi, kuyruk süresinin yerel kopyaya dönüşmesi, ölçekle değişen kırılma noktası ve merkezde kalması gereken kararların ayrılması.
İçindekiler
Önceki dersin durum makinesi bir şeyi sormadı: incelemeyi kim yapar? Üç onayın da tek bir merkezî ekipten gelmesiyle, onayların katkı veren ekiplerin kendi içinden gelmesi farklı sistemler üretir.
Yönetişim modeli bu sorunun yanıtıdır ve iki büyüklük arasında bir seçimdir: tutarlılık ile hız. Tek bir ekip her şeyi incelerse kararlar tutarlı olur ama kuyruk uzar; her ekip kendini incelerse kuyruk kısalır ama kararlar dağılır. Bu ders ödünleşimi bir modelle ölçer ve seçimin ölçeğe bağlı olduğunu gösterir.
Üç Model
Merkezî yönetişim. Sistemin sahibi tek bir ekiptir. Bileşen tasarımı, inceleme ve yayın bu ekipten geçer. Ürün ekipleri katkı önerir, ama karar merkezdedir. Kapasite bu ekibin büyüklüğüyle sınırlıdır ve kuruluş büyüdükçe artmaz.
Federatif yönetişim. Sistemin bileşenleri ürün ekipleri arasında paylaştırılır. Her ekip sahiplendiği bileşenleri kendi içinde inceler ve yayımlar. Kapasite ekip sayısıyla birlikte artar. Ancak inceleyen kişi yalnızca kendi ürününü görür; başka bir üründe aynı kararın nasıl verildiğini bilmez.
Karma yönetişim. Çekirdek bir ekip belirteç katmanını, adlandırma sözleşmesini ve kırıcı değişiklik onayını elinde tutar; taslak ve ilk inceleme ürün ekiplerinde yapılır. Kapasite hem ürün ekiplerinin hazırlama kapasitesine hem de çekirdeğin onay kapasitesine bağlıdır; hangisi küçükse o sınırlar.
Bu üç modelin farkı, katkıların ne kadarının sistem genelini gören bir gözle incelendiğidir. Aşağıdaki model bu oranı doğrudan bir değişken olarak alır ve sapma sayısını buradan hesaplar.
Modelin Kurulması
Model üç şeyi izler: dönem başına gelen talep, modelin kapasitesi ve kuyrukta biriken iş. Kuyruk belirli bir süreyi aştığında katkı terk edilir ve o ekip kendi kopyasını yazar; bu kopya bir sapmadır. İkinci sapma kaynağı, sistem görüşü olmadan yapılan incelemelerdir.
// yonetisim.mjs — uc yonetisim modelinin kuyruk suresi ve sapma sayisiyla karsilastirilmasi // Varsayimlar (hepsi bu kurulusun olculmus degerleri olarak alinmistir): const DONEM = 12; // kac donem boyunca izlenecek const TALEP_EKIP_BASINA = 5; // bir urun ekibinin donem basina urettigi katki talebi const BEKLEME_ESIGI = 2; // kac donemden uzun beklenen is terk edilir const TEMEL_SAPMA = 0.35; // sistem gorusu olmadan incelenen katkinin sapma olasiligi // Modeller. "kapasite" bir donemde tamamlanabilen katki sayisini verir; // "gorus" ise katkilarin ne kadarinin sistem genelini goren bir gozle incelendigini. const MODELLER = [ { ad: "merkezî", kapasite: () => 22, // tek ekip; ekip sayisindan bagimsiz gorus: 0.95, }, { ad: "federatif", kapasite: (ekip) => 6 * ekip, // her urun ekibi kendi incelemesini yapar gorus: 0.15, // yalnizca ornekleme denetimi }, { ad: "karma", kapasite: (ekip) => Math.min(55, 6 * ekip), // urun ekibi hazirlar, cekirdek onaylar gorus: 0.70, }, ]; function calistir(kapasite, gorus, talep) { let kuyruk = 0, kabul = 0, yerelKopya = 0, kuyrukToplami = 0; for (let d = 0; d < DONEM; d++) { kuyruk += talep; const islenen = Math.min(kuyruk, kapasite); kuyruk -= islenen; kabul += islenen; const tavan = BEKLEME_ESIGI * kapasite; if (kuyruk > tavan) { yerelKopya += kuyruk - tavan; kuyruk = tavan; } kuyrukToplami += kuyruk; } const ortalamaKuyruk = kuyrukToplami / DONEM; return { kabul, yerelKopya, bekleme: ortalamaKuyruk / kapasite, incelemeSapmasi: kabul * TEMEL_SAPMA * (1 - gorus), sonKuyruk: kuyruk, }; } for (const ekip of [4, 12]) { const talep = TALEP_EKIP_BASINA * ekip; console.log(`\n=== ${ekip} ürün ekibi · dönem başına ${talep} katkı talebi · ${DONEM} dönem · toplam talep ${talep * DONEM} ===`); console.log("model kapasite yayımlanan bekleyen bekleme(dönem) inceleme sapması yerel kopya toplam sapma"); const satirlar = []; for (const m of MODELLER) { const kap = m.kapasite(ekip); const s = calistir(kap, m.gorus, talep); const toplam = s.incelemeSapmasi + s.yerelKopya; satirlar.push({ ad: m.ad, toplam }); console.log( `${m.ad.padEnd(11)} ${String(kap).padStart(8)} ${String(s.kabul).padStart(12)} ${String(s.sonKuyruk).padStart(10)} ` + `${s.bekleme.toFixed(2).padStart(16)} ${s.incelemeSapmasi.toFixed(1).padStart(18)} ` + `${String(s.yerelKopya).padStart(13)} ${toplam.toFixed(1).padStart(14)}` ); } satirlar.sort((a, b) => a.toplam - b.toplam); console.log(`en az sapma üreten model: ${satirlar[0].ad} (${satirlar[0].toplam.toFixed(1)})`); } // Kirilma noktasi: merkezî model kac urun ekibine kadar kuyruk uretmeden yetisir? console.log("\nekip talep merkezî kapasite kuyruk üretir mi"); for (let ekip = 2; ekip <= 8; ekip++) { const talep = TALEP_EKIP_BASINA * ekip; const kap = MODELLER[0].kapasite(ekip); console.log(`${String(ekip).padStart(4)} ${String(talep).padStart(7)} ${String(kap).padStart(18)} ${(talep > kap ? "evet" : "hayır").padStart(17)}`); } // Karma modelde cekirdek onay kapasitesinin sonucu ne kadar degistirdigi. console.log("\nkarma modelde çekirdek onay kapasitesi (12 ekip, talep 60, toplam talep 720)"); console.log("çekirdek etkin kapasite yayımlanan bekleyen yerel kopya toplam sapma"); for (const cekirdek of [35, 45, 55, 65]) { const kap = Math.min(cekirdek, 6 * 12); const s = calistir(kap, 0.70, 60); console.log( `${String(cekirdek).padStart(8)} ${String(kap).padStart(16)} ${String(s.kabul).padStart(12)} ` + `${String(s.sonKuyruk).padStart(10)} ${String(s.yerelKopya).padStart(13)} ` + `${(s.incelemeSapmasi + s.yerelKopya).toFixed(1).padStart(14)}` ); }
=== 4 ürün ekibi · dönem başına 20 katkı talebi · 12 dönem · toplam talep 240 ===
model kapasite yayımlanan bekleyen bekleme(dönem) inceleme sapması yerel kopya toplam sapma
merkezî 22 240 0 0.00 4.2 0 4.2
federatif 24 240 0 0.00 71.4 0 71.4
karma 24 240 0 0.00 25.2 0 25.2
en az sapma üreten model: merkezî (4.2)
=== 12 ürün ekibi · dönem başına 60 katkı talebi · 12 dönem · toplam talep 720 ===
model kapasite yayımlanan bekleyen bekleme(dönem) inceleme sapması yerel kopya toplam sapma
merkezî 22 264 44 1.98 4.6 412 416.6
federatif 72 720 0 0.00 214.2 0 214.2
karma 55 660 60 0.59 69.3 0 69.3
en az sapma üreten model: karma (69.3)
ekip talep merkezî kapasite kuyruk üretir mi
2 10 22 hayır
3 15 22 hayır
4 20 22 hayır
5 25 22 evet
6 30 22 evet
7 35 22 evet
8 40 22 evet
karma modelde çekirdek onay kapasitesi (12 ekip, talep 60, toplam talep 720)
çekirdek etkin kapasite yayımlanan bekleyen yerel kopya toplam sapma
35 35 420 70 230 274.1
45 45 540 90 90 146.7
55 55 660 60 0 69.3
65 65 720 0 0 75.6
Sonucun Ölçekle Değişmesi
İki tablo aynı üç modeli iki farklı ölçekte çalıştırıyor ve sıralama tersine dönüyor.
Dört ürün ekibinde merkezî model en iyi sonucu veriyor: 240 katkının tamamı yayımlanıyor, hiç bekleme yok ve sapma 4,2. Federatif model aynı işi aynı sürede yapıyor ama sapması 71,4 — on yedi kat fazla. Bu ölçekte merkezî ekibin kapasitesi talebi karşılamaya yetiyor; federatif modelin sağladığı ek kapasitenin hiçbir karşılığı yok, yalnızca inceleme görüşünün düşmesinin bedeli ödeniyor.
On iki ürün ekibinde merkezî model çöküyor: sapma 416,6. Bu sayının 412’si yerel kopya. Merkezî ekip 720 talebin yalnızca 264’ünü karşılayabiliyor; kalan iş kuyrukta bekleme eşiğini aşıyor ve ekipler kendi kopyalarını yazıyor.
Buradaki mekanizma, yönetişim tartışmalarının çoğunda gözden kaçan noktadır. Merkezî modelin maliyeti beklemenin kendisi değildir; bekleme, sistemi terk etmeye dönüştüğü için maliyettir. Merkezî ekibin ürettiği inceleme kalitesi hiç düşmüyor — sapması hâlâ 4,6 ile en düşük değer. Sistem, incelediği şeyde iyi olmayı sürdürüyor; sorun, işlerin büyük bölümünü hiç incelemiyor olması.
Üçüncü tablo merkezî modelin kırılma noktasını veriyor: bu kapasiteyle dört ürün ekibine kadar kuyruk oluşmuyor, beşinci ekipten sonra oluşmaya başlıyor. Bu sayı bir kural değil, bu kuruluşun kapasitesiyle talebinin oranıdır; merkezî ekip büyütülürse nokta sağa kayar. Kararı veren şey modelin adı değil, bu orandır.
Karma Modelin Ayarı
Son tablo karma modelin tek bir parametreye — çekirdeğin onay kapasitesine — ne kadar duyarlı olduğunu gösteriyor ve dikkatli okunması gerekir.
Çekirdek kapasitesi 35 iken karma model neredeyse merkezî model kadar kötü: 230 yerel kopya. Kapasite 45’e çıktığında yerel kopya 90’a, 55’e çıktığında sıfıra iniyor. Yani karma modelin işe yaraması, çekirdeğin onay işini ürün ekiplerinin hazırlama hızına yetişecek kadar hızlı yapmasına bağlıdır. Çekirdek darboğaz olursa karma model, adı karma olan bir merkezî modeldir.
Son satır bir tuzak içeriyor. Çekirdek kapasitesi 65 olduğunda toplam sapma 75,6’ya çıkıyor — 55’teki 69,3 değerinden yüksek. Bu, kapasiteyi artırmanın zararlı olduğu anlamına gelmez. Kapasite 55 iken 660 katkı yayımlanmış ve 60 katkı hâlâ kuyrukta bekliyor; kapasite 65 iken 720 katkının tamamı yayımlanmış. Yayımlanan katkı başına sapma iki durumda da aynıdır: 69,3 bölü 660 ile 75,6 bölü 720, ikisi de 0,105. Toplam sapmanın düşük görünmesinin nedeni, işin bir bölümünün henüz yapılmamış olmasıdır.
Bu, ölçüm kurarken kaçınılması gereken genel bir kusurdur: karşılanmamış talep, bir başarı gibi görünebilir. Yayımlanan katkı sayısı ve bekleyen kuyruk uzunluğu raporlanmaz ise, iş yapmayan bir sistem en temiz rakamları üretir.
Merkezde Kalması Gereken Kararlar
Model seçimi tek bir düğme değildir; her karar türü ayrı ayrı merkezde tutulabilir ya da dağıtılabilir. Ayrımın ölçütü, kararın kaç bileşeni birden etkilediğidir.
Merkezde kalması gereken kararlar, tek tek bileşenlerin ötesinde etki üretenlerdir: belirteç katmanının yapısı, adlandırma sözleşmesi, olgunluk düzeylerinin çıkış ölçütleri, kırıcı değişiklik onayı ve erişilebilirlik ölçütleri. Bunlardan birinin iki ekipte farklı uygulanması, sistemin bir sistem olmasını sona erdirir.
Dağıtılabilecek kararlar ise tek bileşenin içinde kalanlardır: bir bileşene isteğe bağlı özellik eklenmesi, bir değer kümesinin genişletilmesi, belge örneklerinin yazılması, ürüne özgü bileşenlerin tasarımı. Önceki derste kurulan sınıflandırma burada doğrudan bir yetkilendirme kuralına dönüşür: ekleme sınıfı katkılar dağıtılır, kırıcı sınıfı katkılar merkezde kalır.
Bu ayrımın işlemesi için üçüncü bir kayıt gerekir: sahiplik. Her bileşenin adı yazılı bir sahibi olmalıdır; sahibi olmayan bileşen, hiçbir modelde incelenmez. Sahiplik kaydı kataloğun parçasıdır ve ilk derste tanımlanan olgunluk düzeyiyle birlikte tutulur.
Özet
- Yönetişim modeli tutarlılık ile hız arasında bir seçimdir; üç düzen — merkezî, federatif, karma — kapasiteyle inceleme görüşü değişkenleriyle tanımlanır. Merkezî modelin kapasitesi kuruluşla birlikte büyümez, federatifin kapasitesi büyür ama inceleme görüşü düşer.
- Merkezî modelin maliyeti beklemenin kendisi değil, beklemenin yerel kopyaya dönüşmesidir; sistem incelediği şeyde iyi kalır, ama işlerin çoğunu hiç incelemez.
- Model seçimi ölçeğe bağlıdır: aynı üç model, dört ekipte merkezî lehine, on iki ekipte karma lehine sonuç verir. Kırılma noktası kapasite ile talebin oranından hesaplanır.
- Karma modelde çekirdeğin onay kapasitesi ürün ekiplerinin hazırlama hızına yetişmezse, model adı karma olan bir merkezî modele dönüşür.
- Karşılanmamış talep raporlanmadığında düşük sapma sayısı yanıltır; yayımlanan katkı ve bekleyen kuyruk birlikte raporlanır.
- Kararlar tek tek dağıtılır: birden çok bileşeni etkileyenler merkezde kalır, tek bileşen içinde kalanlar dağıtılır; her bileşenin yazılı bir sahibi olmalıdır.
Sonraki Adım
Bu dersin modelinde “yerel kopya” bir varsayımdı: kuyrukta bekleyen işin belirli bir bölümünün sistemden ayrılacağı varsayıldı. Gerçek bir kuruluşta bu sayı varsayılmaz, ölçülür. Sonraki ders benimseme ölçümünü kurar: depo taramasıyla sistem bileşeni kullanımının yerel kopyalara oranını hesaplar, kapsam yüzdesini ekip bazında çıkarır, sapma listesini üretir ve hangi yerel kopyanın kataloğa girmesi gereken bir bileşene işaret ettiğini gösterir.
İlerlemeni kaydetmek ve not almak için Giriş yap
Notlarım
Not almak için giriş yapmalısın.