Biliyorum, epeyce bir süredir ortalarda yoktum. Tatlı ve tatsız birçok olaydan sonra yeniden yazmaya başlamayı umuyorum. Bu arada, hepimiz gibi ben de yapay zeka araçlarının çalışma alışkanlıklarını nasıl değiştirdiğini, bize nerelerde güç kattığını ve nerelerde fark etmeden bir şeyler götürdüğünü düşünmek için bolca fırsat buldum.
Hatta bir ara bu araçlarla o kadar yüksek tempoda çalışmaya başladım ki, günün sonunda bırakın konuşmayı, düşünmeye bile enerjim kalmıyordu. Eminim benzer bir dönemden geçenleriniz vardır.
Yapay zeka hakkında yazılabilecek hemen her şeyin yazıldığını da düşünüyorum. Ama beni biliyorsunuz; bir konuda yeterince dayak yemeden, biraz hata yapmadan ve neyin gerçekten işe yaradığını kendi gözlerimle görmeden üzerine ahkam kesmeyi pek sevmiyorum.
Bugün X’te gördüğüm bir paylaşım ise bir süredir kafamda dolaşan parçalardan birkaçını yerine oturtmama yardımcı oldu.
Cümleyi okuyunca yapay zekadan çok, kariyerim boyunca yaşadığım bir sorun aklıma geldi: İşi kendiniz yapmak yerine başkasına yaptırmaya başladığınızda ortaya çıkan o garip kontrol kaybı hissi.
Nihayetinde yapay zekayla çalışırken yaptığımız şey de bundan çok farklı değil. Karşımızda bu kez bir insan olmayabilir ama özellikle Agent’larla çalışmaya başladığımızda, işi yapan kişi olmaktan çıkıp işi tarif eden, yönlendiren, kontrol eden ve gerektiğinde müdahale eden kişiye dönüşüyoruz.
Yani bir bakıma yönetici oluyoruz.
Hakimiyeti neden kaybediyoruz?
Yöneticilik yaparken, projenin fikir aşamasından başlayıp takımların oluşturulduğu, neyi neden ve nasıl yapacağımızı detaylıca tartıştığımız bir “Inception” aşaması oluyor. Bu noktada henüz ortada çok fazla kod yok, ana fikrin nasıl şekillendiğine, hangi kararların neden alındığına tanık oluyoruz. Hatta yönetici olarak bu aşamada işin oldukça içinde olmamız da mümkün.
Ancak bir sonraki aşamada teknik derinlik artmaya başlıyor. İlk başta birlikte kurguladığımız plan, gerçek hayatın acımasızlığı ile karşılaştıkça yavaş yavaş evriliyor ve bazen hiç beklemediğimiz yerlere gidiyor. Çünkü uygulamaya geçtikçe ilk fikrimizin eksiklerini, hatalarını ve yanlış kabullerini görmeye başlıyoruz. Yeni kararlar alınıyor, bazı tercihlerden vazgeçiliyor, daha önce hiç düşünmediğimiz problemler ortaya çıkıyor.
Üstelik bunların önemli bir bölümü artık sizin dahil olmadığınız konuşmalarda gerçekleşiyor.
Bir mühendis başka bir mühendisle konuşuyor. Bir pull request sırasında yeni bir karar alınıyor. Planladığınız mimarinin bir parçası değişiyor. Başlangıçta basit görünen bir problem için yeni bir servis ortaya çıkıyor. Siz bütün bunların özetini belki haftalık toplantıda birkaç dakikada dinliyorsunuz ama takım o noktaya gelmek için saatlerce düşünmüş, tartışmış ve onlarca küçük karar vermiş oluyor.
Proje büyüdükçe bu kararlar birikiyor.
Ve bir gün fark ediyorsunuz ki fikir ortaya çıktığında belki de odadaki en fazla bilgiye sahip insanlardan biriyken, artık projenin bütününü kafasında taşıyan kişi siz değilsiniz.
İşte benim “hakimiyeti kaybetmek” dediğim his tam olarak burada başlıyor. Aslında burada kaybettiğimiz şey projenin kontrolünden ziyade projenin her detayını zihnimizde tutabilme becerimiz. Çünkü hala proje bizim sorumluluğumuzda, alınan kararları okuyoruz, biliyoruz ve takımın nereye gitmek istediğini de anlıyoruz.
Çünkü bir noktadan sonra takımın üretme hızı, bizim bütün bu üretimi takip edip anlayabilme hızımızı geride bırakmaya başlıyor. Sanırım hakimiyeti kaybettiğimizi hissettiğimiz an da tam olarak burası. Üretme hızı, anlama hızını geçtiği zaman. Yapay zeka ise bu makası daha önce hiç görmediğimiz kadar hızlı açıyor. Yeri geliyor bir kaç saat içinde binlerce satır kod üretmeye başlıyor.
Bu tabii ki yeni bir problemin de doğmasına sebep oluyor çünkü eskiden bir şeyi üretirken aynı zamanda onu öğreniyorduk. Bir özelliği geliştirirken yanlış kararlar verip, geri döndüğümüzde kodu değiştirir, kütüphanenin dokümantasyonunu okuyup neden beklediğimiz gibi çalışmadığını anlamaya çalışırdık. Bu deneyim yazılımcının tecrübe kazanmasına sebep olan bir süreçti, fakat şimdi görüyoruz ki bunlar üretim sürecini yavaşlatan zaman kayıpları olarak görülmeye başlandı.
Böylece geldiğimiz noktada artık üretim ile anlama birbirinden ayrılmaya başladı.
Agent’a ne istediğimizi tarif ediyoruz ve kısa bir süre sonra karşımıza çalışan yüzlerce, hatta bazen binlerce satır kod geliyor. Testler geçiyor, uygulama çalışıyor ve hatta ilk bakışta ortaya çıkan iş bizim yazacağımızdan daha derli toplu bile olabiliyor. Fakat kodun ortaya çıkması için gereken düşünsel yolculuğu biz yapmadığımız için ortaya “Cognitive Debt” yani “Bilişsel Borç” çıkıyor.
Son dönemde literatürde çok kullanılan bu terim, teknik borçtan biraz farklı. Teknik borçta sistemin içinde ileride dönüp düzeltmemiz gereken bir borç bırakıyoruz, ancak Bilişsel Borçta ise borç kodun içinde değil bizim anlayışımızda birikiyor.
Yazdığım ürün bugün çalışıyor ama neden çalıştığını, neden bu şekilde tasarlandığını veya yarın bir yerini değiştirdiğimizde başka nerelerin etkileneceğini anlamak için gelecekte harcamamız gereken zihinsel emeği bugünden ertelemeyi tercih ediyoruz. Bir bakıma Yapay Zeka sadece hızlı kod yazdırmıyor, bugün düşünmemiz gereken bazı şeyleri gelecekteki kendimize borç olarak bırakmamıza da izin veriyor.
Peki yöneticiler bu hakimiyet kaybını nasıl çözüyor ve bunu Agent’lara nasıl uygularız?
Belki de çözümü sandığımızdan daha uzun süredir biliyoruz.
Yöneticiler yıllardır aynı problemle uğraşıyor. Takım büyüdükçe her konuşmada bulunamaz, yazılan her satırı okuyamaz, verilen her kararın parçası olamaz hale geliyorlar. Buna rağmen iyi yöneticiler bir süre sonra çok önemli bir şey öğreniyorlar: Hakimiyet her detayı bilmek demek değil, doğru detayları bilmek demektir.
İyi bir yönetici işi delege eder ama sorumluluğu delege etmez. Takımına ne yapılacağını en ince ayrıntısına kadar tarif etmek yerine, sınırlarını ve beklentilerini netleştirir. Her karara dahil olmak yerine hangi kararların kendisine gelmesi gerektiğini belirler. İş bittikten sonra ne olduğunu anlamaya çalışmak yerine, yol boyunca doğru kontrol noktaları oluşturur. Belki Agent’larla çalışmayı da böyle öğrenmemiz gereklidir.
Agent’a bir görev verip saatler sonra önümüze bıraktığı binlerce satır kodu incelemeye çalışmak yerine, daha işe başlamadan nasıl bir yol izleyeceğini detaylıca konuşmak, büyük değişiklikleri küçük parçalara ayırmak, hangi mimari kararları kendi başına verebileceğini, hangilerinde bize dönmesi gerektiğini belirlemek, testleri yalnızca kodun çalışıp çalışmadığını doğrulamak için değil, Agent’ın hareket edebileceği sınırları çizmek için kullanmak. Kısacası Agent’ı daha iyi kontrol etmeye değil, onu daha iyi yönetmeye çalışmak.
Çünkü yapay zeka ile birlikte yazılım geliştirirken yaşadığımız değişim belki de yalnızca kullandığımız araçların değişmesinden ibaret değildir. Yıllar önce yöneticiliğe ilk geçtiğimde öğrenmek zorunda kaldığım o rahatsız edici dersi, şimdi bir kez daha öğreniyorum: Bir işi başkasına devrettiğinizde, o işi sizin yaptığınız kadar yakından bilemezsiniz.
Bu ilk başta hakimiyet kaybı gibi hissettiriyor olabiliyor, ama belki de kaybettiğimiz hakimiyet değil, hakimiyetin eski tanımıdır.
İyi bir yönetici olmanın yolu takımındaki herkesin yaptığı her şeyi bilmekten geçmiyorsa, iyi bir Agent kullanıcısı olmanın yolu da Agent’ın yazdığı her satırı zihnimizde tutmaktan geçmiyor olabilir.
Yani asıl sorun her şeyi bilmek değil, neyi bilmeniz gerektiğini bilmektir diyebiliriz.



Uzun süredir yoktun umarım herşey yolundadır :) Hepimizin kanayan yarası, özellikle bir işten bir işe hızlıca geçtikce hem yoruluyor hem de 'bilişsel yükümüz' artıyor gibi hissediyorum. Güzel noktalara parmak basmışsın eline sağlık.