---
title: 'Standart ve Özerklik Dengesi'
source: 'https://academia.sh/tr/kurslar/platform-muhendisligi/standart-ve-ozerklik-dengesi'
course: 'Platform Mühendisliği'
language: tr
updated: '2026-08-17T18:09:09+00:00'
license: 'CC BY-SA 4.0'
---

# Standart ve Özerklik Dengesi

Zorunluluk ile seçim özgürlüğünün birlikte ölçülmesi: on kalemin her biri zorunlu, öntanımlı ve serbest kiplerde işletilir, doğan ayrı seçim sayısı ile ortak aracın işe yaradığı kalem sayısı yan yana sayılır, zorunluluğun kaç ekipte meşru bir gereksinimi engellediği çıkarılır ve korkuluk ile duvarın farkı iş günü cinsinden gösterilir.

Önceki ders altın yolu bir kapsam olarak yazdı ve kapsamın iki yüzünü saydı: içeride kalanın
kazancı, dışarıda kalanın kaybı. Tablonun tamamında ekiplerin gereksinimleri sabit tutuldu ve yol
onlara uyduğu kadar uydu. Söylenmeyen soru şuydu: **yola girmek zorunlu muydu?**

Zorunluluk ile seçim özgürlüğü aynı eksende iki uçtur ve ikisinin de kendi ölçüsü vardır.
Zorunluluk **uyum** üretir: aynı kalemde tek bir seçim varsa o kalem için tek bir ortak araç yazmak
yeter. Özgürlük **çeşitlilik** üretir: her ekip kendi işine uygun olanı seçer, ama ortak araç
seçenek sayısı arttıkça işe yaramaz hâle gelir. Bu ders ikisini aynı tabloda sayar ve zorunluluğun
iki ayrı biçimini ayırır. Through-line bölgesel ölçüm ağı ve onun beş ekibidir; ağ da ekipler de
kurgudur.

## Üç Kip ve On Kalem

**PY19 — on kalemin her biri üç kipten birinde işletilir: zorunlu, öntanımlı ama değiştirilebilir,
serbest.** Her kalemin bir **ortak araç değeri** vardır: o kalem bütün kuruluşta tek seçenekte
durursa yılda kazanılan iş günü. **PY20 — her ekibin kalem başına tercihi ve tercihin gerekçesi
yazılır; gerekçe ya işin gerektirdiği bir meşru gereksinimdir ya da ekibin alışkanlığıdır.**
Gerekçe: zorunluluk ikisini de engeller, ama bedelleri aynı değildir ve ayrılmadan ölçülemez.

**PY21 — bir kalemde doğan ayrı seçim sayısı çeşitliliktir; ortak araç seçim sayısı bir ise
değerinin tamamını, iki ise yarısını, üç ve üstünde hiç vermez.** Serbest kipte platform hiçbir
seçenek önermez ve tercihi olmayan ekipler de kendi seçimlerini kurar. Gerekçe: öntanımlı bir
seçenek yoksa ekiplerin aynı noktada buluşması için sebep yoktur.

**PY22 — zorunluluk iki biçimde işletilir. Duvar hiçbir istisnaya izin vermez; korkuluk meşru
gerekçeyle istisna verir, alışkanlığa vermez.** Gerekçe: pratikte "zorunlu" tek bir şey değildir ve
ikisinin farkı ancak engellenen meşru gereksinim sayısıyla görünür.

```js
// kip.mjs — her kalem uc kipte islenir: zorunlu, ontanimli, serbest (model)
import { writeFileSync } from "node:fs";

// PY19 — on kalemin her biri uc kipten birinde isletilir. Her kalemin bir "ortak arac degeri"
// vardir: butun kuruluşta o kalem tek secenekte durursa yilda kazanilan is gunu.
// PY20 — her ekibin kalem basina tercihi bir dizede yazilir: "-" ontanimliyi kabul eder,
// "2m" iki numarali secenegi mesru bir gereksinim icin, "3a" uc numarali secenegi aliskanlik
// icin ister. Ekip sirasi: sayac okuma, dogrulama, faturalama, saha, raporlama. Kurgudur.
const EKIP = ["sayac okuma", "dogrulama", "faturalama", "saha", "raporlama"];
const KALEM = [
  ["gunluk bicimi", 14, "- - - - -"],
  ["gosterge adlandirmasi", 12, "- - 2a - -"],
  ["taban imge", 11, "- - - 2m -"],
  ["gizli deger deposu", 10, "2m - - - -"],
  ["dagitim adimi sirasi", 8, "- 2a - 3m -"],
  ["sinama esigi", 7, "- 2m - - 3a"],
  ["dil surumu", 6, "- - 2m - -"],
  ["ag kurali bicimi", 5, "2m - - 2m -"],
  ["veri deposu surumu", 4, "2m 3a - 4m -"],
  ["yedek araligi", 3, "- - 2m 3a 4a"],
].map(([ad, ortak, dize]) => ({ ad, ortak, tercih: dize.split(" ").map((s) =>
  s === "-" ? null : { secenek: parseInt(s, 10), mesru: s.endsWith("m") }) }));

// PY21 — bir kalemde dogan ayri secim sayisi cesitliliktir; ortak arac secim sayisi 1 ise
// degerinin tamamini, 2 ise yarisini (asagi yuvarlanarak) verir, 3 ve ustunde hic vermez.
// Serbest kipte platform hicbir secenek onermez; tercihi olmayan her ekip de kendi secimini
// kurar. Gerekce: ontanimli bir secenek yoksa ekiplerin ayni noktada bulusmasi icin sebep yok.
const KIP = {
  duvar: (t) => 1,
  korkuluk: (t) => (t && t.mesru ? t.secenek : 1),
  ontanimli: (t) => (t ? t.secenek : 1),
  serbest: (t, i) => (t ? t.secenek : 100 + i),
};
const secimler = (k, kip) => k.tercih.map((t, i) => KIP[kip](t, i));
const cesit = (k, kip) => new Set(secimler(k, kip)).size;
const uyum = (k, kip) => { const c = cesit(k, kip);
  return c === 1 ? k.ortak : c === 2 ? Math.floor(k.ortak / 2) : 0; };
const engel = (k, kip, mesru) => k.tercih.filter((t, i) =>
  t && t.mesru === mesru && KIP[kip](t, i) !== t.secenek).length;
writeFileSync("kip.json", JSON.stringify({ EKIP, KALEM }));

const KIPLER = ["duvar", "korkuluk", "ontanimli", "serbest"];
console.log("kalem".padEnd(23) + "ortak".padStart(6) +
  KIPLER.map((x) => `${x} c/u`.padStart(16)).join("") + "engel m/a".padStart(11));
for (const k of KALEM)
  console.log(k.ad.padEnd(23) + `${k.ortak}`.padStart(6) +
    KIPLER.map((x) => `${cesit(k, x)} / ${uyum(k, x)}`.padStart(16)).join("") +
    `${engel(k, "duvar", true)} / ${engel(k, "duvar", false)}`.padStart(11));
const T = (f) => KALEM.reduce((t, k) => t + f(k), 0);
console.log("TOPLAM".padEnd(23) + `${T((k) => k.ortak)}`.padStart(6) +
  KIPLER.map((x) => `${T((k) => cesit(k, x))} / ${T((k) => uyum(k, x))}`.padStart(16)).join("") +
  `${T((k) => engel(k, "duvar", true))} / ${T((k) => engel(k, "duvar", false))}`.padStart(11));
console.log("\nc = kalemde dogan ayri secim sayisi, u = ortak aracin verdigi is gunu");
console.log("engel m/a = duvar kipinde engellenen mesru gereksinim / aliskanlik sayisi");
```

```
kalem                   ortak       duvar c/u    korkuluk c/u   ontanimli c/u     serbest c/u  engel m/a
gunluk bicimi              14          1 / 14          1 / 14          1 / 14           5 / 0      0 / 0
gosterge adlandirmasi      12          1 / 12          1 / 12           2 / 6           5 / 0      0 / 1
taban imge                 11          1 / 11           2 / 5           2 / 5           5 / 0      1 / 0
gizli deger deposu         10          1 / 10           2 / 5           2 / 5           5 / 0      1 / 0
dagitim adimi sirasi        8           1 / 8           2 / 4           3 / 0           5 / 0      1 / 1
sinama esigi                7           1 / 7           2 / 3           3 / 0           5 / 0      1 / 1
dil surumu                  6           1 / 6           2 / 3           2 / 3           5 / 0      1 / 0
ag kurali bicimi            5           1 / 5           2 / 2           2 / 2           4 / 0      2 / 0
veri deposu surumu          4           1 / 4           3 / 0           4 / 0           5 / 0      2 / 1
yedek araligi               3           1 / 3           2 / 1           4 / 0           5 / 0      1 / 2
TOPLAM                     80         10 / 80         19 / 49         25 / 35          49 / 0     10 / 6

c = kalemde dogan ayri secim sayisi, u = ortak aracin verdigi is gunu
engel m/a = duvar kipinde engellenen mesru gereksinim / aliskanlik sayisi
```

## Çeşitlilik ile Uyum

Toplam satırı dört kipi tek bakışta verir. Duvar kipinde çeşitlilik **10**'dur — on kalem, on
seçim — ve ortak araç değerinin **tamamı** alınır: 80 iş günü. Serbest kipte çeşitlilik **49**'a
çıkar ve ortak araç **80 iş gününün sıfırını** verir. Aradaki iki kip sırasıyla 19 ve 25
çeşitlilikte, 49 ve 35 iş günü değerdedir.

Sayılar kipin adından bağımsız bir kural gösterir: çeşitlilik iki katına çıktığında ortak aracın
değeri yarıya inmez, çok daha hızlı düşer. `veri deposu surumu` kaleminde öntanımlı kip dört ayrı
seçim doğurur ve dört iş günlük ortak araç değeri sıfırlanır; `yedek araligi` kaleminde aynı şey
olur. Serbest kipte ise `ag kurali bicimi` dışındaki her kalem beş ayrı seçim doğurur, çünkü
tercihi olmayan ekipler de kendi yollarına gider.

Son sütun zorunluluğun ne engellediğini ayırır. Duvar kipi **on meşru gereksinimi** ve **altı
alışkanlığı** engeller. Bu on gereksinim beş ekibe dağılmıştır ve hepsi işin gerektirdiği
seçimlerdir: `saha` ekibinin taban imgesi, `sayac okuma` ekibinin gizli değer deposu ve ağ kuralı
biçimi, `faturalama` ekibinin dil sürümü. Zorunluluk bunları engellediğinde ekip işini yapmaz
değildir — **dolambaç kurar**, ve dolambacın bedeli bir sonraki tablodadır.

## Korkuluk mu, Duvar mı

**PY23 — bedeller: engellenen her meşru gereksinim 8 iş günü, engellenen her alışkanlık 1 iş günü,
bir kalemde ilk seçenekten sonraki her seçenek 4 iş günü ortak bakım.** Gerekçe: bir alışkanlığı
engellemek sürtünme yaratır, meşru bir gereksinimi engellemek iş yaratır; ikisi aynı sayıyla
yazılamaz. **PY24 — beşinci bir düzen, karma, her kalem için dört kipin net değerini ayrı ayrı
hesaplar ve en yükseğini seçer; eşitlikte daha serbest kip yeğlenir.**

```js
// duzen.mjs — bes duzen, korkuluk ile duvarin farki ve kalem basina en iyi kip
import { readFileSync } from "node:fs";
const { KALEM } = JSON.parse(readFileSync("kip.json", "utf8"));

// PY23 — bedeller: engellenen her mesru gereksinim 8 is gunu (ekip dolambac kurar),
// engellenen her aliskanlik 1 is gunu (surtunme), bir kalemde ilk secenekten sonraki her
// secenek 4 is gunu ortak bakim. PY24 — besinci duzen karma: her kalem icin dort kipin net
// degeri ayri ayri hesaplanir, en yuksek olan secilir, esitlikte daha serbest kip yeglenir.
const MESRU = 8, ALISKANLIK = 1, SECENEK = 4;
const KIP = { duvar: (t) => 1, korkuluk: (t) => (t && t.mesru ? t.secenek : 1),
  ontanimli: (t) => (t ? t.secenek : 1), serbest: (t, i) => (t ? t.secenek : 100 + i) };
const KIPLER = ["duvar", "korkuluk", "ontanimli", "serbest"];
const cesit = (k, x) => new Set(k.tercih.map((t, i) => KIP[x](t, i))).size;
const uyum = (k, x) => { const c = cesit(k, x);
  return c === 1 ? k.ortak : c === 2 ? Math.floor(k.ortak / 2) : 0; };
const engel = (k, x, m) => k.tercih.filter((t, i) =>
  t && t.mesru === m && KIP[x](t, i) !== t.secenek).length;
const net = (k, x) => uyum(k, x) - MESRU * engel(k, x, true) -
  ALISKANLIK * engel(k, x, false) - SECENEK * (cesit(k, x) - 1);

const enIyi = KALEM.map((k) => {
  const s = KIPLER.map((x) => ({ x, n: net(k, x) }));
  const ust = Math.max(...s.map((y) => y.n));
  return { ...k, kip: s.filter((y) => y.n === ust).pop().x, n: ust };
});
const DUZEN = [...KIPLER.map((x) => ({ ad: x, kip: () => x })),
  { ad: "karma", kip: (k) => enIyi.find((y) => y.ad === k.ad).kip }];

const T = (f) => KALEM.reduce((t, k) => t + f(k), 0);
console.log("duzen".padEnd(12) + "cesitlilik".padStart(11) + "ortak arac".padStart(11) +
  "ise yaramaz".padStart(13) + "uyum".padStart(6) + "engel mesru".padStart(13) +
  "engel alisk.".padStart(14) + "secenek bakimi".padStart(16) + "net".padStart(6));
for (const d of DUZEN) {
  const c = (k) => cesit(k, d.kip(k));
  console.log(d.ad.padEnd(12) + `${T(c)}`.padStart(11) +
    `${KALEM.filter((k) => c(k) <= 2).length}/10`.padStart(11) +
    `${KALEM.filter((k) => c(k) >= 3).length}`.padStart(13) +
    `${T((k) => uyum(k, d.kip(k)))}`.padStart(6) +
    `${T((k) => engel(k, d.kip(k), true))}`.padStart(13) +
    `${T((k) => engel(k, d.kip(k), false))}`.padStart(14) +
    `${SECENEK * (T(c) - KALEM.length)}`.padStart(16) +
    `${T((k) => net(k, d.kip(k)))}`.padStart(6));
}

const fark = T((k) => uyum(k, "duvar")) - T((k) => uyum(k, "korkuluk"));
console.log(`\nkorkuluk ile duvarin farki: duvar 10 mesru gereksinimi engelleyip ortak arac ` +
  `degerini ${fark} is gunu artirir — engellenen gereksinim basina ${(fark / 10).toFixed(1)} ` +
  `is gunu, oysa bir gereksinimi engellemenin bedeli ${MESRU} is gunu`);
console.log("kalem basina en iyi kip — " + KIPLER
  .map((x) => `${x}: ${enIyi.filter((y) => y.kip === x).length}`).join(", "));
for (const x of KIPLER) {
  const g = enIyi.filter((y) => y.kip === x);
  if (g.length) console.log(`  ${x}: ` + g.map((y) => `${y.ad} (${y.n})`).join(", "));
}
```

```
duzen        cesitlilik ortak arac  ise yaramaz  uyum  engel mesru  engel alisk.  secenek bakimi   net
duvar                10      10/10            0    80           10             6               0    -6
korkuluk             19       9/10            1    49            0             6              36     7
ontanimli            25       6/10            4    35            0             0              60   -25
serbest              49       0/10           10     0            0             0             156  -156
karma                17       9/10            1    60            2             6              28    10

korkuluk ile duvarin farki: duvar 10 mesru gereksinimi engelleyip ortak arac degerini 31 is gunu artirir — engellenen gereksinim basina 3.1 is gunu, oysa bir gereksinimi engellemenin bedeli 8 is gunu
kalem basina en iyi kip — duvar: 2, korkuluk: 5, ontanimli: 3, serbest: 0
  duvar: taban imge (3), gizli deger deposu (2)
  korkuluk: gosterge adlandirmasi (11), dagitim adimi sirasi (-1), sinama esigi (-2), veri deposu surumu (-9), yedek araligi (-5)
  ontanimli: gunluk bicimi (14), dil surumu (-1), ag kurali bicimi (-2)
```

Tekdüze düzenlerin hepsi ya zarar eder ya çok az kazanır. Duvar **−6**, öntanımlı **−25**, serbest
**−156** iş günü verir; tek pozitif tekdüze düzen korkuluktur (**+7**). Serbest düzenin sayısı
tartışma bırakmaz: on kalemin **hepsinde** ortak araç işe yaramaz hâle gelir ve 156 iş günü yalnız
seçenek bakımına gider.

Öntanımlı kipin sonucu daha şaşırtıcıdır. Hiçbir meşru gereksinimi, hiçbir alışkanlığı engellemez —
ve buna rağmen duvardan **19 iş günü daha kötüdür**. Nedeni ortadaki iki sütundur: çeşitliliği
25'e çıkarır, ortak aracı dört kalemde bitirir ve 60 iş günü seçenek bakımı ödettirir. **Hiçbir
şeyi engellememek bedava değildir.**

Korkuluk ile duvarın farkı tek bir satırda sayılır. Duvar, korkuluğun izin verdiği on meşru
gereksinimi engelleyerek ortak araç değerini 49'dan 80'e, yani **31 iş günü** yükseltir. Engellenen
gereksinim başına bu **3,1 iş günü**dür; oysa bir meşru gereksinimi engellemenin bedeli 8 iş
günüdür. **Duvar, aldığının iki buçuk katından fazlasını ödemektedir.** İki kipin engellediği
alışkanlık sayısı ise aynıdır (6): korkuluk da alışkanlığa istisna vermez. Korkuluğun duvardan
farkı yalnız meşru gereksinimlerdedir, ve bunun karşılığında çeşitliliği 10'dan 19'a çıkarma
bedelini (36 iş günü) öder.

Karma düzen kararı kalem başına verir ve **+10** ile en yükseğidir. Dağılım şudur: iki kalemde
duvar, beş kalemde korkuluk, üç kalemde öntanımlı, **hiçbir kalemde serbest**. Duvarın kazandığı
iki kalem `taban imge` (11) ve `gizli deger deposu` (10) — ortak araç değeri en yüksek olanlardan
ikisi. Bu iki kalemde zorunluluk **bir meşru gereksinimi engellemeye değer**, çünkü ortak aracın
tam değeri engelleme bedelini aşar. Kalan sekiz kalemde değmez. Kip seçimi bir yönetim tercihi
değil, kalemin ortak araç değeri ile engellenen gereksinim sayısı arasındaki bir hesaptır.

## Özet

- On kalem dört kipte koşturuldu: çeşitlilik duvarda 10, korkulukta 19, öntanımlıda 25, serbestte
  49; ortak aracın verdiği değer sırasıyla 80, 49, 35 ve 0 iş günüdür.
- Serbest kipte ortak araç on kalemin hepsinde işe yaramaz hâle gelir; öntanımlı kipte dört
  kalemde, korkulukta bir kalemde, duvarda hiç.
- Duvar on meşru gereksinimi ve altı alışkanlığı engeller; korkuluk aynı altı alışkanlığı engeller
  ama meşru gereksinimlerin hiçbirini engellemez.
- Duvarın korkuluktan aldığı fark 31 iş günü ek ortak araç değeridir, engellenen gereksinim başına
  3,1 iş günü — bir gereksinimi engellemenin 8 iş günlük bedelinin altında.
- Tekdüze düzenlerde net: duvar −6, korkuluk +7, öntanımlı −25, serbest −156 iş günü. Hiçbir şeyi
  engellemeyen öntanımlı düzen duvardan 19 iş günü daha kötüdür.
- Kalem başına en iyi kip seçildiğinde net +10 olur: iki kalemde duvar, beş kalemde korkuluk, üç
  kalemde öntanımlı, hiçbir kalemde serbest.

## Sonraki Adım

Dört derste platform bir maliyet hesabı, bir işletme biçimi, bir kapsam ve bir kip seçimi olarak
ölçüldü. Dördünde de ortak bir varsayım vardı: bir ekip bir şey istediğinde **platform ekibinden
biri onu yapıyor**. Kip tablosunda öntanımlı bir seçeneği değiştirmek, kapsam tablosunda yola
girmek, istek tablosunda bir yeteneği almak — hepsi bir insanın elinden geçiyordu. Sonraki ders bu
varsayımı kaldırır: aynı istek kümesi bir talep kuyruğunda ve kendi kendine hizmet düzeninde
koşturulur; bekleme süresi, platform ekibinin kesintisi ve kendi kendine hizmetin kendi bedeli —
arayüz yazma işi, yanlış kullanım ve geri alınamayan işlem — sayılır.
