Ders 12 / 17
Denetçi ve Uyum Rollerinin İşlevi
Bağımsız güvencenin çıkar ayrımı cinsinden ölçülmesi: 24 kontroldeki 17 gerçek bulgunun öz denetimde yalnız 3'ünün görünmesi ve görünmeyen 14 bulgunun 12'sinin bağımsızlık nedeniyle gizli kalması, uyum işlevinin 8, bağımsız iç denetimin 17, örneklemli dış denetimin 9 bulgu görmesi, tam ayrımın 14 bulgu ortaya çıkarırken 72 denetim günü, 19,2 ek iş günü ve 48 ek kanıt kalemi getirmesi ve gören bulgu ile birim gün sıralamalarının tam ters çıkması.
İçindekiler
Önceki dersin bütün sayıları bir kabule dayanıyordu: dolu denen hücreler gerçekten doludur, kayıt ürettiği söylenen yordam gerçekten üretir. Bu kabulün kaynağı bellidir — tabloyu dolduran, belgeleri yazan ve kayıtların üretildiğini bildiren taraf aynı taraftır. Konu boyunca ölçülen her şey kurumun kendi beyanı üzerinde koşturuldu.
Bu ders o kabulü kaldırır ve bağımsız güvenceyi ölçer. Bağımsız güvence bir sıfat değildir; iki boyutu olan sayılabilir bir düzenlemedir. Birincisi derinlik: bulgunun görülmesi için ne kadar teknik inceleme gerekir — kayda bakmak yeter mi, ikinci bir kaynakla karşılaştırmak gerekir mi, yoksa işi bağımsız olarak yeniden koşturmak mı gerekir. İkincisi bağımsızlık: bulguyu raporlayacak kişinin, bulgunun sahibiyle arasındaki mesafe. Bir bulgu ancak iki koşul birden sağlandığında görünür.
- CE39. Kontrol kümesi 24 kalemdir ve altı ekibe dağılmıştır; 17’sinde gerçek bir uygunsuzluk vardır. Küme ve bulgular kurgudur.
- CE40. Her bulgunun bir derinlik gereksinimi (1 kayıttan görülür, 2 çapraz karşılaştırma ister, 3 bağımsız yeniden koşum ister) ve bir bağımsızlık gereksinimi (0 kim bakarsa görür, 1 ayrı ekip ister, 2 ayrı raporlama hattı ister) vardır.
- CE41. Dört güvence düzeni karşılaştırılır: öz denetim (derinlik 1, bağımsızlık 0), uyum işlevi (2, 1), bağımsız iç denetim (3, 2), dış denetim (3, 2 ama örneklemli).
- CE42. Dış denetim kontrollerin yüzde 40’ına bakar ve örneklemini kanıt kalemi en çok olan kontrollerden seçer.
- CE43. Kontrol başına denetim günü düzene göre 0,5 ile 4,0 arasındadır (kurgu).
- CE44. Ayrım uygulandığında her kontrol bir ek onay adımı (0,4 gün) ve bağımsızlık düzeyi başına bir devir yükü (0,2 gün) getirir; her bağımsız inceleme dönemde iki ek kanıt kalemi üretir.
- CE45. Kısmi ayrım, kanıt hacmi en yüksek
nkontrolde bağımsız denetim, kalanında öz denetim uygulamaktır.
// rol/guvence.mjs — bagimsiz guvence duzenlerinin gordugu bulgu. // MODELDIR: bolgesel olcum agi (kurgu); kontroller, bulgular ve gunler kurgudur. export const satir = (s) => s.trim().split("\n").map((l) => l.trim().split("|")); export const gen = (B) => (...h) => h.map((v, j) => (j ? String(v).padStart(B[j]) : String(v).padEnd(B[0]))).join(""); // kod | sahip ekip | bulgu var mi | derinlik (1-3) | bagimsizlik (0-2) | kanit kalemi export const KONTROL = satir(` K01|altyapi|evet|1|0|240 K02|altyapi|evet|2|1|180 K03|altyapi|hayir|1|0|60 K04|altyapi|evet|3|2|48 K05|altyapi|evet|1|1|365 K06|uygulama|evet|2|0|52 K07|uygulama|hayir|1|0|12 K08|uygulama|evet|3|1|310 K09|uygulama|evet|1|2|30 K10|uygulama|hayir|2|1|24 K11|kimlik|evet|2|2|120 K12|kimlik|evet|1|0|48 K13|kimlik|hayir|3|1|4 K14|kimlik|evet|3|2|365 K15|veri|evet|1|1|365 K16|veri|hayir|2|0|30 K17|veri|evet|2|2|12 K18|veri|evet|3|0|4 K19|saha|evet|1|2|18 K20|saha|hayir|1|1|9 K21|saha|evet|2|1|3 K22|tedarik|evet|3|2|3 K23|tedarik|hayir|2|2|2 K24|tedarik|evet|1|0|1`) .map(([kod, ekip, bulgu, d, b, kalem]) => ({ kod, ekip, bulgu: bulgu === "evet", d: +d, b: +b, kalem: +kalem })); // duzen | gorebildigi derinlik | tasidigi bagimsizlik | kontrol basina gun | orneklem orani export const DUZEN = satir(` oz denetim|1|0|0.5|1 uyum islevi|2|1|1.5|1 bagimsiz ic denetim|3|2|3.5|1 dis denetim|3|2|4.0|0.4`) .map(([ad, d, b, gun, ornek]) => ({ ad, d: +d, b: +b, gun: +gun, ornek: +ornek })); export const BULGU = KONTROL.filter((k) => k.bulgu); // Dis denetim orneklemi: kanit kalemi en cok olan kontroller secilir (model varsayimi). export const kapsam = (z) => z.ornek === 1 ? KONTROL : [...KONTROL].sort((a, b) => b.kalem - a.kalem).slice(0, Math.round(KONTROL.length * z.ornek)); export const goren = (z) => kapsam(z).filter((k) => k.bulgu && k.d <= z.d && k.b <= z.b); if (import.meta.url === `file://${process.argv[1]}`) { console.log(`model: ${KONTROL.length} kontrol, ${BULGU.length} gercek bulgu, ` + `${DUZEN.length} guvence duzeni`); const y = gen([22, 10, 10, 12, 12, 9, 13]); console.log("\n" + y("guvence duzeni", "kapsam", "goren", "gormeyen", "goren %", "gun", "gun / bulgu")); for (const z of DUZEN) { const g = goren(z), gun = kapsam(z).length * z.gun; console.log(y(z.ad, kapsam(z).length, g.length, BULGU.length - g.length, (100 * g.length / BULGU.length).toFixed(1), gun.toFixed(1), g.length ? (gun / g.length).toFixed(2) : "-")); } const z2 = gen([14, 12, 12, 13, 13]); console.log("\n" + z2("bagimsizlik", "bulgu", "oz denetim", "uyum islevi", "ic denetim")); for (const b of [0, 1, 2]) { const kume = BULGU.filter((k) => k.b === b); console.log(z2(`duzey ${b}`, kume.length, ...DUZEN.slice(0, 3).map((z) => kume.filter((k) => k.d <= z.d && k.b <= z.b).length))); } const gizli = BULGU.filter((k) => !goren(DUZEN[0]).includes(k)); console.log(`\noz denetimde gorunmeyen ${gizli.length} bulgunun ` + `${gizli.filter((k) => k.b > 0).length} tanesi bagimsizlik, ` + `${gizli.filter((k) => k.b === 0).length} tanesi derinlik nedeniyle gorunmuyor`); const sG = [...DUZEN].sort((a, b) => goren(b).length - goren(a).length).map((z) => z.ad); const sV = [...DUZEN].sort((a, b) => (kapsam(a).length * a.gun) / (goren(a).length || 1) - (kapsam(b).length * b.gun) / (goren(b).length || 1)).map((z) => z.ad); console.log(`goren bulguya gore : ${sG.join(" > ")}`); console.log(`birim gune gore : ${sV.join(" > ")}`); }
model: 24 kontrol, 17 gercek bulgu, 4 guvence duzeni guvence duzeni kapsam goren gormeyen goren % gun gun / bulgu oz denetim 24 3 14 17.6 12.0 4.00 uyum islevi 24 8 9 47.1 36.0 4.50 bagimsiz ic denetim 24 17 0 100.0 84.0 4.94 dis denetim 10 9 8 52.9 40.0 4.44 bagimsizlik bulgu oz denetim uyum islevi ic denetim duzey 0 5 3 4 5 duzey 1 5 0 4 5 duzey 2 7 0 0 7 oz denetimde gorunmeyen 14 bulgunun 12 tanesi bagimsizlik, 2 tanesi derinlik nedeniyle gorunmuyor goren bulguya gore : bagimsiz ic denetim > dis denetim > uyum islevi > oz denetim birim gune gore : oz denetim > dis denetim > uyum islevi > bagimsiz ic denetim
İlk tablonun ilk satırı dersin ana sayısıdır. Kontrolü kuran ekip kendi kontrolünü denetlediğinde 17 gerçek bulgunun üçü görünür; 14’ü hiç raporlanmaz. Bu, kötü niyet varsayımı gerektirmez: aynı ekip aynı varsayımlarla bakar, aynı kaydı aynı biçimde okur ve kendi tasarımının dışında bir soru sormaz. İkinci tablo bunu nedenine ayırıyor — görünmeyen 14 bulgunun 12’si bağımsızlık, ikisi derinlik nedeniyle gizli kalıyor. Sorun ağırlıklı olarak yetkinlik değil, konumdur.
İkinci tablonun satırları bunu ayrıntılandırıyor. Bağımsızlık düzeyi 0 olan beş bulgunun üçü öz denetimde görülüyor; düzey 1 ve düzey 2 bulgularının hiçbiri görülmüyor. Uyum işlevi — ayrı bir ekip ama aynı yönetim hattı — düzey 0 ve 1’i açıyor, düzey 2’nin yedisini hâlâ göremiyor. Yedi bulgu yalnız ayrı raporlama hattıyla ortaya çıkıyor. Bir bulgunun görülmesi için gereken bağımsızlığı belirleyen şey bulgunun büyüklüğü değil, kimin işini yanlış göstereceğidir.
Son iki satır kursun ölçü eksenini bu derse taşıyor ve iki sıralama tam ters çıkıyor. Gören bulguya göre bağımsız iç denetim birincidir; birim güne göre sonuncudur. Öz denetim gördüğü bulgu başına 4,00 gün harcıyor, bağımsız iç denetim 4,94. Bu sayı tek başına okunduğunda öz denetimi verimli gösterir; oysa öz denetimin ucuzluğu gördüğü üç bulganın en kolay görülenler olmasının yan ürünüdür. Kolay bulguları bulup zorları hiç aramayan bir düzen, bulgu başına maliyette her zaman kazanır. Bir güvence düzenini yalnız birim maliyetle seçmek, körlüğü ödüllendirir.
Ayrımın Bedeli ve Kısmi Ayrım
// rol/ayrim.mjs — cikar ayriminin ortaya cikardigi bulgu ve getirdigi ek is. import { KONTROL, DUZEN, BULGU, gen, goren, kapsam } from "./guvence.mjs"; const ONAY = 0.4; // ayrimdan sonra kontrol basina ek onay adimi (gun, kurgu) const DEVIR = 0.2; // ekipler arasi devir (gun/kontrol, kurgu) const KAYIT = 2; // her bagimsiz inceleme donemde 2 ek kanit kalemi uretir (kurgu) const gun = (z) => kapsam(z).length * z.gun; const ekIs = (z) => (z.b === 0 ? 0 : kapsam(z).length * (ONAY + DEVIR * z.b)); const ekKayit = (z) => (z.b === 0 ? 0 : kapsam(z).length * KAYIT); const y = gen([22, 11, 14, 13, 12, 17]); console.log(`${KONTROL.length} kontrol, ${BULGU.length} gercek bulgu; oz denetimde ` + `${goren(DUZEN[0]).length} tanesi gorunuyor`); console.log("\n" + y("guvence duzeni", "goren", "ortaya cikan", "denetim gun", "ek is gun", "ek kanit kalemi")); for (const z of DUZEN) { console.log(y(z.ad, goren(z).length, goren(z).length - goren(DUZEN[0]).length, gun(z).toFixed(1), ekIs(z).toFixed(1), ekKayit(z))); } // Hibrit duzen: kanit hacmi en yuksek N kontrolde bagimsiz denetim, kalanda oz denetim. const sirali = [...KONTROL].sort((a, b) => b.kalem - a.kalem); const z2 = gen([16, 12, 12, 13, 13, 14]); console.log("\n" + z2("hibrit sinir", "bagimsiz", "goren", "kacan", "denetim gun", "gun / bulgu")); for (const n of [0, 6, 12, 18, 24]) { const bagimsiz = new Set(sirali.slice(0, n).map((k) => k.kod)); const g = KONTROL.filter((k) => k.bulgu && (bagimsiz.has(k.kod) ? k.d <= DUZEN[2].d && k.b <= DUZEN[2].b : k.d <= DUZEN[0].d && k.b <= DUZEN[0].b)); const toplam = n * DUZEN[2].gun + (KONTROL.length - n) * DUZEN[0].gun; console.log(z2(`${n} kontrol`, n, g.length, BULGU.length - g.length, toplam.toFixed(1), (toplam / g.length).toFixed(2))); } // Ekip basina gizli kalan bulgu const ekipler = [...new Set(KONTROL.map((k) => k.ekip))]; const gorunen = new Set(goren(DUZEN[0]).map((k) => k.kod)); const z3 = gen([12, 10, 10, 12, 14]); console.log("\n" + z3("ekip", "kontrol", "bulgu", "gorunen", "gizli kalan")); for (const e of ekipler) { const k = KONTROL.filter((x) => x.ekip === e), b = k.filter((x) => x.bulgu); console.log(z3(e, k.length, b.length, b.filter((x) => gorunen.has(x.kod)).length, b.filter((x) => !gorunen.has(x.kod)).length)); } const enGizli = ekipler.map((e) => ({ e, n: KONTROL.filter((x) => x.ekip === e && x.bulgu && !gorunen.has(x.kod)).length })).sort((a, b) => b.n - a.n)[0]; console.log(`\noz denetimde en cok bulgusu gizli kalan ekip: ${enGizli.e} (${enGizli.n} bulgu)`); console.log(`tam ayrim ${goren(DUZEN[2]).length - goren(DUZEN[0]).length} bulgu ortaya ` + `cikariyor; bedeli ${(gun(DUZEN[2]) - gun(DUZEN[0])).toFixed(1)} denetim gunu, ` + `${ekIs(DUZEN[2]).toFixed(1)} ek is gunu ve ${ekKayit(DUZEN[2])} ` + `ek kanit kalemi`);
24 kontrol, 17 gercek bulgu; oz denetimde 3 tanesi gorunuyor guvence duzeni goren ortaya cikan denetim gun ek is gun ek kanit kalemi oz denetim 3 0 12.0 0.0 0 uyum islevi 8 5 36.0 14.4 48 bagimsiz ic denetim 17 14 84.0 19.2 48 dis denetim 9 6 40.0 8.0 20 hibrit sinir bagimsiz goren kacan denetim gun gun / bulgu 0 kontrol 0 3 14 12.0 4.00 6 kontrol 6 8 9 30.0 3.75 12 kontrol 12 12 5 48.0 4.00 18 kontrol 18 14 3 66.0 4.71 24 kontrol 24 17 0 84.0 4.94 ekip kontrol bulgu gorunen gizli kalan altyapi 5 4 1 3 uygulama 5 3 0 3 kimlik 4 3 1 2 veri 4 3 0 3 saha 3 2 0 2 tedarik 3 2 1 1 oz denetimde en cok bulgusu gizli kalan ekip: altyapi (3 bulgu) tam ayrim 14 bulgu ortaya cikariyor; bedeli 72.0 denetim gunu, 19.2 ek is gunu ve 48 ek kanit kalemi
Birinci tablo ayrımın bedelini üç ayrı kaleme bölüyor ve üçü farklı yerlerden çıkıyor. Tam ayrım 14 bulgu ortaya çıkarıyor; karşılığında 72 denetim günü, 19,2 ek iş günü ve 48 ek kanıt kalemi getiriyor. Denetim günü denetçinin işidir; ek iş günü kurulan tarafın işidir — ek onay adımları ve ekipler arası devir, denetçiye değil, kontrolü işleten ekibe düşer. Ek kanıt kalemi ise üçüncü derste sayılan yüke doğrudan eklenir: bağımsız inceleme kendi kaydını üretir ve o kayıt da saklanır, derlenir, örneklenir. Bağımsızlık ücretsiz değildir ve faturasının üçte biri denetlenen tarafa çıkar.
Dış denetim satırı bunun yanında ilginç bir karşılaştırma veriyor. Bağımsız iç denetimle aynı derinliği ve aynı bağımsızlığı taşıyor, ama örneklemi kontrollerin yüzde 40’ıdır ve 17 bulgunun dokuzunu görüyor. Örneklem kanıt hacmine göre seçildiği için sistematik bir eğilim taşıyor: çok kayıt üreten kontroller görülüyor, az kayıt üreten kontroller görülmüyor. Kanıt hacmi ile bulgunun önemi arasında bir bağ olmadığı için bu, kapsamı daraltmanın en sessiz biçimidir.
İkinci tablo kısmi ayrımı tarıyor ve eğri düz değil. Altı kontrolde bağımsız denetim uygulamak bulguyu üçten sekize çıkarıyor ve bulgu başına maliyeti 4,00’ten 3,75’e düşürüyor — hem tam öz denetimden hem tam ayrımdan iyidir. Sınır 12’ye çıkınca birim maliyet başlangıç değerine dönüyor, 18 ve 24’te yükseliyor. Nedeni açıktır: ilk eklenen kontroller kanıt hacmi en yüksek olanlardır ve içlerinde bulgu yoğunluğu fazladır; sonraki eklemeler gitgide daha az bulgu getirir. Bağımsızlık azalan verim gösterir, ama kalan beş, üç ve sıfır bulgu farkı da gerçektir; hangisinin kabul edileceği bir karardır ve bu kararın sayısı yazılmalıdır.
Son tablo ayrımın nerede en çok işe yaradığını gösteriyor. Öz denetimde altyapı, uygulama ve veri ekiplerinin üçer bulgusu gizli kalıyor; tedarik ekibinde yalnız bir bulgu gizli kalıyor. Ayrımı bütün kuruma aynı anda uygulamak gerekmiyor — bulgu yoğunluğunun ve gizlilik derecesinin yüksek olduğu ekiplerden başlamak, aynı günle daha çok bulgu çıkarır. Bunun bilinmesi için de bir ölçüme gerek vardır ve o ölçüm ancak bir kez bağımsız yapıldıktan sonra elde edilir.
Özet
- Bağımsız güvence iki boyutlu bir düzenlemedir: derinlik bulgunun ne kadar inceleme istediğini, bağımsızlık raporlayanın sahiple arasındaki mesafeyi verir. Bulgu ancak iki koşul birden sağlandığında görünür.
- Kontrolü kuran ekip kendi kontrolünü denetlediğinde 17 gerçek bulgunun yalnız üçü görünüyor; görünmeyen 14 bulgunun 12’si bağımsızlık, ikisi derinlik nedeniyle gizli kalıyor.
- Uyum işlevi düzey 0 ve 1 bulgularını açıyor ama düzey 2’nin yedisini göremiyor: bir bulgunun gerektirdiği bağımsızlığı belirleyen şey büyüklüğü değil, kimin işini yanlış göstereceğidir.
- Gören bulgu sıralaması ile birim gün sıralaması tam ters çıkıyor: öz denetim bulgu başına 4,00, bağımsız iç denetim 4,94 gün harcıyor. Öz denetimin ucuzluğu, yalnız kolay bulguları görmesinin yan ürünüdür.
- Tam ayrım 14 bulgu ortaya çıkarıyor ve üç kalem bedel getiriyor: 72 denetim günü, 19,2 ek iş günü ve 48 ek kanıt kalemi. Ek iş günü denetçiye değil, kontrolü işleten ekibe düşer.
- Kısmi ayrım azalan verim gösteriyor: altı kontrolde bağımsız denetim bulguyu 8’e çıkarıp birim maliyeti 3,75’e düşürüyor; 24 kontrolde bulgu 17’ye çıkıyor ama birim maliyet 4,94’e yükseliyor.
Sonraki Adım
Konu burada kapanıyor. Başında bir sorun vardı: önceki konunun sıralaması kurumun kendi diliyle yazılmıştı ve dışarıdan okunamıyordu. Yedi ders bir ortak dil kurdu ve o dilin bedelini saydı — beş işleve bölünmüş bir olgunluk ölçüsü, kapsamı yazılan bir belgelendirme döngüsü, kontrolü gereksinime bağlayan bir matris, veri türüne bağlanan ek kontroller, kalem kalem sayılan haklar, kanıt üreten ve üretmeyen belge düzeyleri ve bulguyu görünür kılan bir çıkar ayrımı. Her birinin sayısı yazıldı ve her birinde aynı şey görüldü: eşleme bir iddiadır, kanıt ayrı bir kalemdir.
Bu ortak dilin bir sınırı var ve bütün konu boyunca sessizce duruyordu. Olgunluk düzeyi bir tarihte hesaplandı, belge bir tarihte verildi, kontrol kümesi bir dönem için örneklendi, kanıt dosyası bir denetim için derlendi. Hepsi yılda bir kez doğru olan bir fotoğraftır. Aradaki her gün yeni bir açık açılıyor, bir yama penceresi kaçıyor, eğitimden sonra düzelen davranış eski hâline dönüyor ve tatbikat edilmemiş bir kurtarma planı sessizce eskiyor. Fotoğrafın doğru olması, iki fotoğraf arasındaki 364 gün hakkında hiçbir şey söylemez.
Sonraki konu Program Yönetimi bu 364 günü ölçer: açık akışının hızıyla düzeltme kapasitesinin
farkını, yama penceresi daraldıkça yakalanan açık ile artan kesintiyi, farkındalık ölçütünün kaçıncı
haftada eski değerine döndüğünü, tatbikatta tutmayan plan kalemini ve davranışı hiç değiştirmeyen
ölçütü.
İlerlemeni kaydetmek ve not almak için Giriş yap
Notlarım
Not almak için giriş yapmalısın.