Karar Odaklı Geliştirme Manifestosu
Yazılım Zaten Karar Odaklıydı
Sadece Kararları Saklamayı Unuttuk
Modern yazılım kararlar üzerine kurulu.
Yayınlanan her özellik,
düzeltilen her hata,
geri alınan her deploy
bir kararla başlar.
Ama kod versiyonlanır, test edilir, saklanırken,
kararlar sessizce kaybolur.
Sorun Eksik Veri Değil
Yazılım ekipleri çoktan çok fazla veri topluyor: loglar, metrikler, analytics, dashboardlar.
Bir şey değiştiğinde, veri bize ne olduğunu söyler.
Ama bir şey bozulduğunda ya da beklenmedik şekilde iyileştiğinde, asıl soru her zaman şu:
Bunu neden yapmaya karar verdik?
Bu cevap nadiren kalıcı bir yerde bulunur.
Geliştirme Zaten Karar Odaklı
Karar Odaklı Geliştirme yeni bir metodoloji değil.
Bunların yerini almaz: Agile, Scrum, Kanban, DevOps, Lean
Sadece bir gerçeği kabul eder:
Yazılım geliştirme zaten kararlar etrafında döner. Sadece kararları birinci sınıf varlıklar olarak görmüyoruz.
Kodun Hafızası Var. Kararların Yok.
Kodla diff alabiliriz, geri alabiliriz, geçmişini denetleyebiliriz.
Ama kararlar dağınık halde: Slack konuşmalarında, Jira yorumlarında, toplantı notlarında, kurum kültüründe, insanların hafızasında.
İnsanlar ayrılınca,
kararlar da onlarla gider.
Geriye sadece bağlamsız kod kalır.
Her Karar Bir Hipotez
Hiçbir karar nötr değildir.
Her deploy dolaylı olarak şunu söyler: "Bunun X'i iyileştireceğine inanıyoruz", "Y metriğinin değişeceğini bekliyoruz", "Bu ödünleşmeyi kabul ediyoruz"
Yazılı olsun ya da olmasın,
her karar bir hipotezdir.
Karar Odaklı Geliştirme basit bir soru sorar:
Zaten deney yapıyorsak, neden onları hatırlamayı reddediyoruz?
Karar Odaklı Geliştirme Ne Değildir
Karar Odaklı Geliştirme şunlar değildir: analytics, A/B testi, kullanıcı davranış takibi, dashboardlar, canlı izleme
Bu araçlar şunu cevaplar: "Ne oluyor?"
Karar Odaklı Geliştirme şunu cevaplar: "Bu neden oldu ve bu kararı tekrar vermeli miyiz?"
Kararları Unutmanın Bir Bedeli Var
Kararlar unutulduğunda ekipler eski hataları tekrarlar, gerilemeler gizemli hissedilir, incidentler rastgele görünür, tartışmalar sonsuza dek döner.
Ekipler geçmiş kanıtları incelemek yerine fikir tartışır.
Veri eksik olduğundan değil, bağlam eksik olduğundan.
Hafıza Rekabet Avantajıdır
Karar bağlamını koruyan ekipler daha hızlı hareket eder, daha az tartışır, güvenle geri alır, doğru kararları savunur, kötü kararları tekrarlamaz.
Karar Odaklı Geliştirme kurumsal hafıza inşa etmekle ilgilidir, daha fazla dashboard değil.
İlke
Kod nasılı açıklar.
Veri neyi açıklar.
Kararlar nedeni açıklar.
Modern yazılım ekiplerinin her üçüne de ihtiyacı var.
Son Söz
Bize ne olduğunu söyleyen daha fazla araca ihtiyacımız yok.
Bunu neden yapmayı seçtiğimizi hatırlayan sistemlere ihtiyacımız var.
Mehmet Berkay Karataş
Afterchange Kurucusu