Left of the Loop: Who’s on the Hook?

Bir programcı veya teknoloji lideri olarak, genellikle “kabına sığan” sorumluluk sistemlerimizle karşı karşıya geliyoruz. “Agentler” veya “otomatikleştirme” terimi bu sorumluluk sistemimizde bir dönüm noktası oldu. Ama sorumluluk gerçekten değişti mi?

Bu makalede Simon Schrottner, otomatikleştirme ve sorumluluk arasındaki ilişkiyi incelemektedir. “Sol Loop” adlı dizide 12. makale olan “Kimin Sorumluluğunda?” başlığını incelediğimizde bu sorunun cevabını arayacağız.

Sistemlerimizde bir “kamça” gibi bir kavram vardır. Bu “kamçı” her ne kadar “sol loop”ta olsun veya bir programcı tarafından el ile geliştirilip hata yapılırsa da; aslında sorumluluk hep “takım” üzerinde durmuştur. Hata üretim aşamasında bu team’e yönelen soruların aksine, üretim öncesi tüm aşamalarda sorumluluk hep takımdı.

Hem otomatikleştirme hem de bu gibi “sol loop” sistemleri bu sorumluluğu ortadan kaldırmaz; aksine team’in işleyişinin daha etkin ve doğru hale getirilmesi için çalışır. Team, üretim öncesi hataları yakalamak için bir spec oturumunda yanlış bir varsayım yakalama imkânına sahip olur. Üretim hataları yakalanabilir ki bu durum üretimi durdurmanın fiyatını düşük tutar. İşte otomatikleştirme ile sorumluluğun neye dönüşeceğine dair bu örnek.

Daha iyi bir örnek de CI/CD (geliştirme ve dağıtım süreçleri) otomasyonu için verilebilir. Bu otomatikleştirme ile geliştiriciler hata yapmadan kendilerinin eliyle üretim yapmıyor ve dağıtıyorlar. Ancak team’in sorumluluğu ortadan kalkmış değildir. Sorumluluğun neye göre değiştiğine dair bu örnekten çıkardığım sonuç budur.

Aynı CI/CD örneğini agent teknolojisiyle karşılaştırmakta fayda var. Agentler, sürekli ve kararlar alabilir. Ancak, bu kararlar agentin kendisi tarafından veriliyorken CI/CD pipeline, yalnızca belirlediğimiz bir süreç tekrar eder. Bir pipeline, ne gibi kararlar alabilir ki? İşte sorun burada. Burada team’in neye nasıl sorumlu olduğunu göz ardı eden yanlış bir varsayım vardır.

Bu gibi agent teknolojisiyle üretim aşamasını daha akıcı hale getirmenin, üretim öncesi hatayı yakalamayı kolaylaştırması bir “sol loop” uygulaması olarak gösterilebilir. Bu şekilde team, hatayı üretim öncesi bir konuşma maliyetiyle yakalayabilir. İşte burada team’in işleyişinin ne gibi değişimlere uğradığına dair bir örnek daha. Team’in sorumluluğu asla ortadan kalkmamıştır.

Dahası team’in hata içerikleri de dahil olmak üzere her türlü hataya karşı daha etkin hale gelmesini sağlamak için bu otomatikleştirme sistemleri bir oylumu daha fazla ortaya koymaktadır. Bu gibi bir “sol loop” uygulaması, team’in işleyişimizin ne gibi değişimlere uğrayacağını görebildiğimiz bir örnektir.

Bu gibi “sol loop” uygulamalarında da team’in sorumluluğu ortadan kalkmamıştır. Burada da takım’ın hatayı yakalamasının ne gibi faydalara dönüştüğünden bahsettiğimiz örneklere bakınca team’in işleyişimizin ne gibi değişimlere uğradığı görülmektedir.