Ders 03 / 17
Risk Ele Alma Seçenekleri
Azaltma, aktarma, kabul ve kaçınma aynı 300 birimlik yıllık bütçede koşturulur: azaltma 22 kararla 2.746,71 birim düşürürken aktarma 243,00 ve kaçınma 656,04 birimde kalır, devir sözleşmesi 235 bileşen kaleminin 76'sını devralıp 3.507,70 birimi dışarıda bırakır, kaçınma varlık düzeyinde bir karar olduğu için 1.200 birimlik bütçede bile sıralamaya hiç giremez ve kabul edilen 3.021,90 birimin 1.699,81'i hiç açılmamış 25 kalemden gelir.
İçindekiler
Önceki iki ders listeyi kurdu ve iki ölçekle sıraladı, ama her kalem için tek bir karşılık tanıdı. Karşılık dörttür. Azaltma kontrol ekleyip olasılığı ya da etkiyi düşürür, aktarma kaybın bir bölümünü bir devir sözleşmesiyle başkasına yükler, kabul kalemi olduğu gibi taşır, kaçınma riski doğuran işten vazgeçer. Dördü aynı bütçeden harcanır ama farklı birimlerde tüketir. Bu ders ortak birime çevirir, dördünü aynı listede koşturur ve iki şeyi ayrıca sayar: aktarmanın devretmediği kalem ile kaçınmanın sıralamaya girememesi.
Dört Seçenek, Tek Birim
Azaltmanın bedeli bir kurulum ve bir bakımdır; kurulum bir kez, bakım her yıl ödenir. Aktarmanın bedeli yıllık bir primdir ve prim, devredilen riskin bir yükleme katsayısıyla çarpımıdır. Kaçınmanın bedeli vazgeçilen işin yıllık değeridir; kabulün bedeli de düşürdüğü risk de sıfırdır.
Ortak birim yıllık kurgu birimdir: kurulum bedeli üç yıla bölünüp bakım eklenir, prim ve vazgeçilen iş değeri zaten yıllıktır. Bu çevirim yapılmadan karşılaştırma sessizce bozulur.
- RY12. Katsayıların, bedellerin, devir yüklemelerinin ve bileşen dağılımlarının hepsi modeldir; birim kurgu birimdir.
- RY13. Kaçınma bedeli işten vazgeçmenin yıllık iş değeri kaybıdır;
-işaretli varlıkta iş bırakılamaz. - RY14. Devir sözleşmesi beş bileşenden ilk ikisini kapsar, üçünü kapsamaz.
- RY15. Bütün bedeller yıllık birime çevrilir: azaltmanın yıllık bedeli kurulumun üçe bölünmüşü artı yıllık bakımdır.
- RY16. Bütçe oran sırasına göre harcanır; alınmış bir kalem ikinci kez ele alınmaz. Kaçınma varlık düzeyinde bir karardır ve varlığın bütün kalemlerini birden kapatır.
// risk/secenek.mjs — ayni 47 kalem, dort ele alma secenegi. MODELDIR; gercek envanter, // gercek sozlesme ve gercek para birimi yok, butun bedeller yillik "kurgu birim"dir. // RY12: tehdit satiri: ad | siklik | maruziyet orani | azaltmanin dusurdugu oran | // kurulum bedeli | yillik bakim | devir yuklemesi ('-' devredilemez) | // bilesen dagilimi (yuzde): dogrudan / kesinti / duzeltme / bildirim / itibar export const TEHDIT = ` kimlik-ele-gecirme 0.30 0.35 0.70 40 9 1.35 30 15 20 20 15 zararli-kod 0.50 0.25 0.60 30 8 1.50 25 35 25 5 10 yanlis-yapilandirma 0.80 0.15 0.75 12 5 - 20 45 25 0 10 ic-kotuye-kullanim 0.10 0.40 0.40 55 12 1.80 35 10 15 20 20 hizmet-kesintisi 0.40 0.20 0.50 25 6 1.20 10 65 20 0 5 fiziksel-erisim 0.06 0.50 0.65 35 7 1.45 45 15 15 15 10 tedarik-zinciri 0.08 0.45 0.30 60 14 1.60 30 25 20 10 15` .trim().split("\n").map((r) => { const [ad, s, m, d, kur, bak, yuk, ...b] = r.trim().split(/\s+/); return { ad, s: +s, m: +m, d: +d, kur: +kur, bak: +bak, yuk: yuk === "-" ? null : +yuk, b: b.map(Number) }; }); // RY13: varlik satiri: ad | deger | maruziyet katsayisi | bedel katsayisi | // kacinma yillik bedeli ('-' isten vazgecilemez) | tehdit maskesi export const VARLIK = ` saha-dizustu 900 1.6 1.0 - 1111011 sube-ucu 600 1.2 1.0 - 1111110 sayac-toplayici 750 1.4 1.5 - 0111110 islem-sunucusu 1800 0.6 0.8 - 1111101 cevre-agi 1200 1.8 0.6 - 0011100 kimlik-dizini 2400 1.0 0.7 - 1011100 bulut-hesabi 2000 1.5 1.4 620 1011100 abone-veri-tabani 3000 0.4 0.9 - 1011100 saha-uygulamasi 1400 1.1 0.7 300 1111001 tedarikci-baglantisi 1000 1.3 1.2 260 1001101` .trim().split("\n").map((r) => { const [ad, v, m, bk, kac, maske] = r.trim().split(/\s+/); return { ad, v: +v, m: +m, bk: +bk, kac: kac === "-" ? null : +kac, maske }; }); export const BILESEN = ["dogrudan", "kesinti", "duzeltme", "bildirim", "itibar"]; // RY14: devir sozlesmesi ilk iki bileseni kapsar, ucunu kapsamaz. export const KAPSAM = [1, 1, 0, 0, 0]; export const KALEM = []; for (const v of VARLIK) for (const t of TEHDIT.filter((_, j) => v.maske[j] === "1")) { const risk = +(t.s * v.m * v.v * t.m).toFixed(2); // RY15: butun bedeller yillik birime cevrilir. Azaltmanin yillik bedeli kurulumun // uc yila bolunmusu arti yillik bakimdir; devir primi devredilen riskin yuklemelisidir. const azBedel = +(((t.kur / 3) + t.bak) * v.bk).toFixed(2); const pay = t.b.reduce((a, x, i) => a + x * KAPSAM[i], 0) / 100; KALEM.push({ v, t, risk, azaltma: { bedel: azBedel, duser: +(risk * t.d).toFixed(2) }, aktarma: t.yuk === null ? null : { bedel: +(risk * pay * t.yuk).toFixed(2), duser: +(risk * pay).toFixed(2), pay }, }); } for (const k of KALEM) for (const s of ["azaltma", "aktarma"]) if (k[s]) k[s].oran = +(k[s].duser / k[s].bedel).toFixed(3); // Kacinma varlik duzeyinde bir karardir: varligin butun kalemleri listeden cikar. export const KACINMA = VARLIK.filter((v) => v.kac !== null).map((v) => { const ks = KALEM.filter((k) => k.v === v); const duser = +ks.reduce((a, k) => a + k.risk, 0).toFixed(2); return { v, ks, bedel: v.kac, duser, oran: +(duser / v.kac).toFixed(3) }; }); export const TOPLAM = +KALEM.reduce((a, k) => a + k.risk, 0).toFixed(2);
Aynı Bütçede Dört Strateji
// risk/yaris.mjs — dort secenek ayni butcede kosar; kabul edilen kalan ayrica sayilir import { KALEM, KACINMA, TOPLAM, BILESEN, KAPSAM } from "./secenek.mjs"; const y = (g, ...s) => console.log(s.map((v, i) => (g[i] < 0 ? String(v).padEnd(-g[i]) : String(v).padStart(g[i]))).join("").trimEnd()); const AK = KALEM.filter((k) => k.aktarma); const aday = (L, alan) => L.map((k) => ({ ...k[alan], ad: alan, ks: [k] })); const enIyi = KALEM.map((k) => (k.aktarma && k.aktarma.oran > k.azaltma.oran ? { ...k.aktarma, ad: "aktarma", ks: [k] } : { ...k.azaltma, ad: "azaltma", ks: [k] })); const KARMA = [...enIyi, ...KACINMA.map((x) => ({ ...x, ad: "kacinma" }))]; // Butce oran sirasina gore harcanir; alinmis kalemi ikinci kez ele almak yok. const kos = (adaylar, butce) => { const alinan = new Set(); const sec = []; let h = 0, d = 0; for (const a of [...adaylar].sort((x, z) => z.oran - x.oran)) if (!a.ks.some((k) => alinan.has(k)) && h + a.bedel <= butce) { a.ks.forEach((k) => alinan.add(k)); h += a.bedel; d += a.duser; sec.push(a); } return { sec, alinan, n: sec.length, h: +h.toFixed(2), d: +d.toFixed(2), kalan: +(TOPLAM - d).toFixed(2) }; }; console.log(`${KALEM.length} kalem, toplam yillik risk ${TOPLAM} kurgu birim`); const A = [-10, 9, 10, 10, 10, 8]; console.log("\n1. secenek basina uygulanabilirlik ve oran (dusen risk / yillik bedel)"); y(A, "secenek", "birim", "en dusuk", "en yuksek", "ortalama", "karar"); for (const [ad, L, f, kapsam] of [["azaltma", KALEM, (k) => k.azaltma.oran, "kalem"], ["aktarma", AK, (k) => k.aktarma.oran, "kalem"], ["kacinma", KACINMA, (x) => x.oran, "varlik"]]) { const o = L.map(f); y(A, ad, L.length, Math.min(...o).toFixed(3), Math.max(...o).toFixed(3), (o.reduce((a, x) => a + x, 0) / o.length).toFixed(3), kapsam); } console.log("kabul 47 kalem, bedel 0, dusen risk 0: secilmeyen her kalemin varsayilanidir"); console.log("aktarma orani azaltmadan iyi olan kalem: " + `${AK.filter((k) => k.aktarma.oran > k.azaltma.oran).length}`); const B = [-22, 7, 10, 12, 13, 8]; console.log("\n2. 300 birimlik yillik butce, dort strateji"); y(B, "strateji", "karar", "harcanan", "dusen risk", "kabul edilen", "kalan %"); for (const [ad, L] of [["yalniz azaltma", aday(KALEM, "azaltma")], ["yalniz aktarma", aday(AK, "aktarma")], ["yalniz kacinma", KACINMA], ["karma", KARMA]]) { const r = kos(L, 300); y(B, ad, r.n, r.h.toFixed(2), r.d.toFixed(2), r.kalan.toFixed(2), ((r.kalan / TOPLAM) * 100).toFixed(1)); } const C = [-9, 8, 8, 15, 8]; console.log("\n3. aktarmanin devrettigi ve devretmedigi bilesen (38 devredilebilir kalem)"); y(C, "bilesen", "kapsam", "kalem", "tasidigi birim", "pay %"); const bil = (i) => +AK.reduce((a, k) => a + k.risk * k.t.b[i] / 100, 0).toFixed(2); for (const [i, ad] of BILESEN.entries()) y(C, ad, KAPSAM[i] ? "devir" : "kalir", AK.length, bil(i).toFixed(2), ((bil(i) / TOPLAM) * 100).toFixed(1)); const devir = BILESEN.reduce((a, _, i) => a + KAPSAM[i] * bil(i), 0); const bk = KALEM.length * BILESEN.length, dv = AK.length * KAPSAM.filter(Boolean).length; console.log(`${bk} bilesen kaleminin ${dv} tanesi devrediliyor, ${bk - dv} tanesi kaliyor; ` + `devredilen ${devir.toFixed(2)}, disarida kalan ${(TOPLAM - devir).toFixed(2)} birim`); const D = [-8, 7, 10, 11, 9, 9, 9]; console.log("\n4. karma strateji butce buyudukce: hangi secenek listeye giriyor"); y(D, "butce", "karar", "harcanan", "dusen risk", "azaltma", "aktarma", "kacinma"); for (const b of [300, 600, 900, 1200]) { const r = kos(KARMA, b); const say = (ad) => r.sec.filter((a) => a.ad === ad).length; y(D, b, r.n, r.h.toFixed(2), r.d.toFixed(2), say("azaltma"), say("aktarma"), say("kacinma")); } const r300 = kos(KARMA, 300); const bos = KALEM.filter((k) => !r300.alinan.has(k)); const bosRisk = +bos.reduce((a, k) => a + k.risk, 0).toFixed(2); const enTekil = bos.reduce((a, k) => (k.v.v * k.t.m > a.v.v * a.t.m ? k : a)); console.log(`\n5. 300 birimlik karma stratejide kabul edilen ${r300.kalan.toFixed(2)} birim`); console.log(`hic acilmayan ${bos.length} kalem ${bosRisk} birim, ele alinan ${r300.n} kalemin ` + `artigi ${(r300.kalan - bosRisk).toFixed(2)} birim`); console.log(`acilmayanlarin en buyuk tekil kaybi: ${enTekil.v.ad} / ${enTekil.t.ad}, ` + `yillik ${enTekil.risk.toFixed(2)}, tekil ${(enTekil.v.v * enTekil.t.m).toFixed(1)} birim`); const F = [-22, 8, 7, 9, 9]; console.log("\n6. kacinma neden hic secilmiyor (1200 birimlik butce)"); y(F, "varlik", "oran", "kalem", "onceden", "bedel"); const r1200 = kos(KARMA, 1200); for (const x of KACINMA) y(F, x.v.ad, x.oran.toFixed(3), x.ks.length, x.ks.filter((k) => r1200.sec.some((a) => a.oran > x.oran && a.ks.includes(k))).length, x.bedel);
47 kalem, toplam yillik risk 5768.61 kurgu birim 1. secenek basina uygulanabilirlik ve oran (dusen risk / yillik bedel) secenek birim en dusuk en yuksek ortalama karar azaltma 47 0.344 36.000 6.286 kalem aktarma 38 0.556 0.833 0.686 kalem kacinma 3 1.305 2.187 1.720 varlik kabul 47 kalem, bedel 0, dusen risk 0: secilmeyen her kalemin varsayilanidir aktarma orani azaltmadan iyi olan kalem: 5 2. 300 birimlik yillik butce, dort strateji strateji karar harcanan dusen risk kabul edilen kalan % yalniz azaltma 22 295.40 2746.71 3021.90 52.4 yalniz aktarma 4 291.60 243.00 5525.61 95.8 yalniz kacinma 1 300.00 656.04 5112.57 88.6 karma 22 295.40 2746.71 3021.90 52.4 3. aktarmanin devrettigi ve devretmedigi bilesen (38 devredilebilir kalem) bilesen kapsam kalem tasidigi birim pay % dogrudan devir 38 1008.57 17.5 kesinti devir 38 1252.34 21.7 duzeltme kalir 38 803.40 13.9 bildirim kalir 38 463.58 8.0 itibar kalir 38 489.92 8.5 235 bilesen kaleminin 76 tanesi devrediliyor, 159 tanesi kaliyor; devredilen 2260.91, disarida kalan 3507.70 birim 4. karma strateji butce buyudukce: hangi secenek listeye giriyor butce karar harcanan dusen risk azaltma aktarma kacinma 300 22 295.40 2746.71 22 0 0 600 36 595.93 3386.45 36 0 0 900 45 887.04 3579.51 42 3 0 1200 47 944.39 3611.37 42 5 0 5. 300 birimlik karma stratejide kabul edilen 3021.90 birim hic acilmayan 25 kalem 1699.81 birim, ele alinan 22 kalemin artigi 1322.09 birim acilmayanlarin en buyuk tekil kaybi: abone-veri-tabani / ic-kotuye-kullanim, yillik 48.00, tekil 1200.0 birim 6. kacinma neden hic secilmiyor (1200 birimlik butce) varlik oran kalem onceden bedel bulut-hesabi 1.669 4 3 620 saha-uygulamasi 2.187 5 3 300 tedarikci-baglantisi 1.305 4 2 260
Sayılar ölçüm sınıfındadır; girdileri RY12–RY16’dır.
Oranların Ayrıştığı Yer
Birinci tablo dört seçeneği tek sütunda karşılaştırıyor. Azaltmanın oranı 0,344 ile 36,000 arasında değişir, ortalaması 6,286’dır. Aktarmanın oranı 0,556 ile 0,833 arasındadır ve hiçbiri 1’i geçmez. Bu bir kusur değil tanımın kendisidir: prim, devredilen riskin yüklemelisidir ve yükleme birden büyüktür. Beklenen değer hesabında aktarma kaçınılmaz olarak kaybettirir.
Aynı satır aktarmanın ne için var olduğunu da gösterir: aktarma ortalamayı değil dağılımı satın alır ve oran sütunu dağılımı ölçmez. Kaçınmanın oranı 1,305 ile 2,187 arasındadır ve yalnız üç varlıkta uygulanabilir. Kabulün oranı tanımsızdır; kabul bir seçenek gibi görünür, ama seçilmeyen her kalemin varsayılanıdır.
Aynı Bütçe, Dört Sonuç
İkinci tablo 300 birimlik yıllık bütçeyi dört stratejiye harcıyor. Yalnız azaltma 22 karar alır ve riski 2.746,71 birim düşürür; toplamın yüzde 52,4’ü kabul edilmiş kalır. Yalnız aktarma aynı bütçeyle 4 karar alır ve 243,00 birim düşürür. Yalnız kaçınma tek karar alır, 300 birimi tek kalemde harcar, 656,04 birim düşürür.
Karma strateji her kalem için en iyi oranlı seçeneği alır ve sonucu yalnız azaltmayla aynıdır. Aktarmanın oranı beş kalemde azaltmadan iyidir, ama o beşin en yükseği 0,833 olduğu için bütçe onlara hiç ulaşmaz. Bir kalemde daha iyi olan seçenek, listenin tepesine giremediği sürece bütçede hiç görünmez.
Dördüncü tablo eşiği arıyor: 600 birimde 36 kararın hepsi hâlâ azaltmadır, 900 birimde ilk üç aktarma kararı girer, 1.200 birimde beş olur. Karar sayısı 45’ten 47’ye çıkarken düşen risk yalnız 31,86 birim artar.
Aktarmanın Devretmediği
Üçüncü tablo aktarmanın kapsamını bileşen kalemi olarak sayıyor. Bir olayın kaybı beşe ayrılır: doğrudan kayıp, kesinti, düzeltme emeği, bildirim yükümlülüğü ve itibar. Devir sözleşmesi ilk ikisini devralır, üçünü almaz.
Sayı iki biçimde çıkar. Kalem olarak 47 kalem beş bileşenle 235 bileşen kalemi üretir; sözleşme 76’sını devralır, 159’u kurumda kalır. Birim olarak devredilen 2.260,91, dışarıda kalan 3.507,70 birim.
Kalan üç bileşenin ortak yanı vardır: hiçbiri para ödemekle kapanmaz. Düzeltme emeği kurumun kendi zamanıdır, bildirim kurumun kendi işidir, itibar bir bedelle geri alınmaz. Aktarma bir kaybı devreder, bir işi devretmez.
Kaçınmanın Sıralamaya Girememesi
Altıncı tablo bu dersin yapısal bulgusunu veriyor. Kaçınmanın oranı üç varlıkta 1,305 ile 2,187 arasındadır ve aktarmanın her oranından yüksektir; buna rağmen 1.200 birimlik bütçede bile hiçbir kaçınma kararı seçilmez. Neden sayıdadır: kaçınma bir varlığın bütün kalemlerini birden kapatan tek bir karardır, ama sıralama kalem düzeyinde yapılır. Saha uygulamasının beş kaleminden üçü, kaçınmanın 2,187 oranından yüksek bir kalem kararıyla zaten alınmıştır; bulut hesabında dörtte üç, tedarikçi bağlantısında dörtte iki aynı durumdadır.
Sıralama kaçınmayı elemez, erişilemez kılar. Yanlış olan sıranın kendisi değil, sıralamanın hangi düzeyde yapıldığıdır: varlık düzeyinde bir seçenek ancak varlık düzeyinde bir listeyle karşılaştırılabilir.
Kabulün Sessiz Payı
Beşinci satır bütçe bittikten sonra ne kaldığını yazıyor. Kabul edilen 3.021,90 birimin 1.699,81’i hiç açılmamış 25 kalemden, 1.322,09’u ele alınmış 22 kalemin artığından gelir. İki sayı ayrı yazılır, çünkü ayrı sorulardır: ilki “bakmadık”, ikincisi “baktık ve yetmedi”.
Açılmayanların içinde en büyük tekil kaybı taşıyan kalem abone veri tabanındaki iç kötüye kullanımdır: yıllık 48,00 birim, tekil kaybı 1.200,0 birim. Yıllık değeri küçük olduğu için her iki sıralama da onu geriye atar; oysa devir sözleşmesinin dağılım açısından en çok işe yarayacağı kalem tam olarak budur. Seçim bu yüzden tek sütunla yapılamaz: oran ortalamayı, aktarma kuyruğu, kabul ikisinin de dışında kalanı taşır.
Özet
- Dört seçenek ortak yıllık birime çevrilmeden karşılaştırılamaz: kurulum bedeli üçe bölünüp bakım eklenir, prim ve vazgeçilen iş değeri zaten yıllıktır, kabulün bedeli sıfırdır.
- Aktarmanın oranı 0,556 ile 0,833 arasındadır ve hiçbiri 1’i geçmez; aktarma ortalamayı değil dağılımı satın alır.
- 300 birimlik bütçede yalnız azaltma 22 kararla 2.746,71, yalnız aktarma 4 kararla 243,00, yalnız kaçınma tek kararla 656,04 birim düşürür; karma strateji azaltmayla aynı sonucu verir.
- Devir sözleşmesi 235 bileşen kaleminin 76’sını devralır, 159’u kurumda kalır; 2.260,91 birim devredilir, 3.507,70 dışarıda kalır ve kalan üç bileşen para ödemekle kapanmaz.
- Kaçınma varlık düzeyinde bir karardır ve oranı yüksek olduğu hâlde 1.200 birimlik bütçede bile seçilmez: varlığın kalemlerinden birkaçı daha yüksek oranlı kalem kararlarıyla zaten alınmıştır.
- Kabul edilen 3.021,90 birimin 1.699,81’i hiç açılmamış 25 kalemden gelir; açılmayanların en büyüğü yıllık 48,00 birim yazan, tekil kaybı 1.200,0 birim olan kalemdir.
Sonraki Adım
Üç ders boyunca liste sabit kaldı: 47 kalem, on varlık, yedi tehdit. Her sıralama ve her bütçe bu listenin tam olduğunu varsaydı. Oysa her kalem bir varlık kaydından türedi ve o kayıtları bir envanter tuttu. Envanterde olmayan bir sunucu ya da bir ekibin kendi kurduğu bir servis hiçbir çifte girmez, hiçbir sıraya yazılmaz ve hiçbir bütçede yer tutmaz — kabul edilmiş bile sayılmaz, çünkü kabul en azından bir kaydı gerektirir. Sonraki ders envanter dışı kalemleri sayar ve tek bir soruyu ölçer: bu kalemler listeye girseydi sıralamanın kaç sırası değişirdi.
İlerlemeni kaydetmek ve not almak için Giriş yap
Notlarım
Not almak için giriş yapmalısın.