GoSuda

AI Native Geliştirme Metodolojisi

By gosunuts
views ...

AI ve Geliştiriciler

Geliştiricilerin AI konusuna yaklaşımı karmaşıktır. Bunun nedeni, AI'ın benzeri görülmemiş bir üretkenlik artışı ve bilgi edinimi sağlaması, ancak aynı zamanda geliştirici rolünün kökten değişiyor olmasıdır. Kimi insanlar AI'ın AGI seviyesine evrilerek geliştiricilerin büyük çoğunluğunun yerini alacağını öngörürken, kimileri ise AI'ı abartılmış bir araç olarak nitelendirmekte ve geliştiricilerin asıl değerinin değişmeyeceğini savunmaktadır. Bu tutumlar ilk bakışta taban tabana zıt görünse de, AI'ı değerlendirirken geleneksel zihniyet kalıplarını kıstas alması bakımından şaşırtıcı derecede benzerdir.

Ancak buradaki mühim husus, AI'ı yargılamak veya değerlendirmek değildir. Asıl odak noktası, AI merkezli bir perspektifle geliştirme zihniyetinin nasıl dönüştürülmesi gerektiği ve bu değişim doğrultusunda geliştirici ile organizasyon rollerinin nasıl yeniden yapılandırılması gerektiğidir. Bu doğrultuda, AI geliştirme metodolojisi aşağıdaki 3 aşamalı analizle tasnif edilmiştir.

AI Bağımlı Geliştirme

AI bağımlı geliştirme, AI'ı karar mercii olarak konumlandıran ve çıktılarını eleştirel süzgecgeçirmeden kabul eden aşamadır. Bu aşamadaki geliştirici, AI'ı kendi fikirlerini organize eden ve hayata geçiren bir varlık olarak görür ve dahası karar ile sorumluluğu da devredebileceği bir ikame olarak benimser.

Bu yaklaşım, yüzeysel olarak üretkenliği olağanüstü düzeyde artırmış gibi görünür. Lakin pratikte, açıklanamayan ve sorumluluğu üstlenilemeyen kodlar hızla birikir. Bu şekilde üretilen kodlar söz konusu olduğunda, bir sorun çıktığında bu yapının neden bu şekilde kurulduğu veya hangi tercihin doğru olduğu konusunda hiç kimse kesin bir yargıya varamaz.

Bu aşamada AI yalnızca güven vermeyen çıktılar üretir, geliştirici ise bu çıktıları tüketen konumda kalır. Neticede hem AI hem de geliştirici tüketim odaklı bir şekilde harcanır ve gerçek yetkinlik hiçbir yerde birikmez.

AI Kullanan Geliştirme

AI kullanan geliştirme, daha maharetli geliştiricilerde gözlemlenen bir aşamadır. Bu aşamadaki geliştirici, AI'ı bir karar ikamesi olarak değil, üretkenliği artıran güçlü bir araç olarak değerlendirir. Bu aşamadaki geliştirici tasarım ile nihai kararın sahibi olarak kalır; kod üretimi, refactoring, debugging ve doküman özetleme gibi tekrara dayalı ve maliyetli görevleri AI'a devreder. Bu yöntem, geliştiricinin tekrara dayalı işlerinin oranını hatırı sayılır ölçüde azaltırken güveni muhafaza ederek üretkenliği dramatik biçimde artırabilir.

Ne var ki bu yöntem, tasarım bağlamının ve kararların döngüsel olarak aktarılamaması şeklinde yapısal bir kısıtlılığa sahiptir. Geliştirme yönü ve karar alma süreci yalnızca geliştiricinin bireysel düşünce dünyasında kalıp AI ile paylaşılmadığından, AI geliştiricinin değişimini ve gelişimini bünyesinde toplayamaz. Sonuç olarak tasarım bağlamı ve muhakeme yeteneği geliştiricide soyutlanmış olarak kalır.

Bu durum, geliştirici ile AI arasında bir öğrenme döngüsünün oluşmasını engeller ve AI kullanım becerisi geliştiricinin mevcut yetkinlik sınırlarını aşarak genişleyemez. Gelişim bireye mal olur ve zaman ilerledikçe geliştiriciler arasındaki yetkinlik uçurumu açılır. Ayrıca bu tür yetkinliklerin kurumsal düzeyde birikmesi veya yeniden üretilmesi güçleşir.

AI Native Geliştirme

AI native geliştirme, AI'a güvenme veya onu bir araç olarak kullanma aşamalarının ötesine geçerek; AI'ı geliştirme yapısına ve karar süreçlerine entegre eden, AI ile insanın karşılıklı etkileşim içinde birlikte geliştiği bir yapıyı ifade eder. Bu aşamada AI, geliştiricinin kararlarını ve bağlamını paylaşarak etkileşim kuran bir paydaş işlevi görür.

Bu yapının özü, AI ile geliştiricinin tek yönlü değil, çift yönlü bir döngü içinde çalışmasıdır. Geliştirici, tasarım niyetini ve karar dayanaklarını AI ile sürekli olarak paylaşır; AI da bu sayede geliştiricinin düşünce yapısını ve kurumsal context birikimini bünyesine dâhil eder. Neticede AI, yalnızca talepleri işleyen bir araç olmaktan çıkıp organizasyona özel alternatifler sunan, geliştiricinin kararlarını destekleyen ve düzelten bir yöne evrilir.

AI native geliştirme, belirli bir bireyin uzmanlığına veya pratiklerine bağımlı değildir. Ekip üyeleri değişse dahi AI context yapısı korunduğu takdirde, aynı probleme yönelik benzer perspektiften sorular yöneltilebilir ve geçmişteki tercihler ile bunların gerekçeleri temel alınarak daha nitelikli kararlar alınmaya devam edilebilir. Geliştirme yetkinliği bireye ait kalmaz, tüm organizasyona yayılarak kümülatif bir nitelik kazanır ve yinelenebilir hale gelir.

Nihayetinde AI native geliştirmenin hedeflediği şey, belirli bir mimari ya da geliştirme metodolojisi değil, AI ile insan muhakemesinin ve öğrenmesinin sürekli olarak pekiştirildiği geliştirme sürecinin kendisidir. Bu yapı içerisinde geliştirici ve AI birbirinin yerini almaz. Bunun yerine, aynı problem uzayını paylaşarak daha üstün kararları ve daha sağlam yapıları birlikte inşa eden bir ilişki biçimine evrilirler.