Yapay zeka çağında Extreme Programming’e (XP) yeniden bakmalı mıyız?
(hyperact.co.uk)- Yapay zeka destekli kod üretimi ve platform inovasyonu sayesinde geliştirme hızı patlayıcı biçimde arttı, ancak proje çıktıları hâlâ zayıf ve başarısızlık oranı yüksek
- Sorun hız değil, doğrulama ve hizalanma eksikliği; XP ise kasıtlı kısıtlar aracılığıyla öğrenmeyi, hizalanmayı ve kalite artışını teşvik ediyor
- Özellikle yapay zeka ajanları kod üretimi, düzenleme ve dağıtımı hızlandırdıkça, doğrulanmamış karmaşıklık artışı ve güvenlik açıkları daha ciddi hale geliyor
- XP, basitlik, iletişim, geri bildirim, saygı, cesaret gibi insan merkezli değerlere ve küçük partiler, sürekli entegrasyon, otomatik testlere vurgu yapıyor
- Hızlı çıktının sıradan hale geldiği bir çağda XP, yazılımın nihayetinde insanlar için olduğu ilkesini yeniden hatırlatan bir metodoloji
Yazılım üretim hızındaki ivmelenme ve sınırlar
- Son dönemde yapay zeka araçları ve çeşitli geliştirme platformlarındaki yeniliklerle kod üretiminin eşiği ciddi biçimde düştü ve hız önemli ölçüde arttı
- Birkaç prompt ya da API çağrısıyla ürün, özellik ve altyapının tamamı hızla üretilebiliyor
- Ancak artan verimliliğe rağmen genel proje başarı oranlarında kayda değer bir iyileşme görülmüyor
- Standish CHAOS raporu ve McKinsey raporları gibi kaynaklar, BT projelerinin çoğunun başarısızlıkla sonuçlandığını ya da bütçeyi aştığını hâlâ sıkça vurguluyor
- Yani yalnızca kod üretim hızının artması, yazılım teslimat sonuçlarını otomatik olarak iyileştirmiyor
Neden asıl sorun output değil
- Yazılım geliştirmedeki darboğazın kodu girme ve çıkarma hızı olmadığı defalarca kanıtlandı
- Yüksek seviyeli dillerin benimsenmesi, framework ve paket yöneticilerinin yaygınlaşması, DevOps ve serverless yaklaşımının büyümesi, geliştirme platformlarının ilerlemesi ve yapay zeka ile kod üretimi gibi art arda gelen hızlandırma dalgaları yaşandı
- CHAOS raporuna göre output hızlansa da nihai sonuçlar tutarsız kalıyor ve beklentilerin altında
- Önemli olan basit hızlanma değil, daha akıllı kısıtlar
- XP, acele etmeden öğrenme, hizalanma ve niyetli geliştirme yoluyla doğru yönü buldurmaya çalışan bir pratikler bütünü
XP’nin rolü: hıza karşı denge unsuru
- Sınırsız hızlanma, öğrenme, hataları fark etme ve yön düzeltme fırsatlarını ortadan kaldırma sorununu doğurur
- Extreme Programming (XP), ekibin doğru yönde hareket etmesini sağlamak için kasıtlı sürtünme ve kısıtlar getirir
- En bilinen pratiklerden biri: eşli programlama, çıktıyı bilerek yarıya indirir
- Eşli programlama çıktı miktarını yarıya indirebilir, ancak ortak anlayış, güven, kalite ve ekip içi yetkinlik artışı gibi olumlu etkileri iki katına çıkarabilir
- XP, işbirliği biçiminin kendisini değiştirir ve ekip yetkinliğini güçlendirmeye, yön duygusu kazandırmaya yatırım yapar
Yapay zekayla birlikte XP’nin işaret ettiği sorunların derinleşmesi
- Yapay zeka kod üretimini neredeyse zahmetsiz hale getirdikçe, yeterince doğrulanmamış yazılımın kitlesel üretimi riski büyüyor
- Özellikle birden fazla ajanın kodu otomatik ürettiği, iyileştirdiği ve dağıttığı agentic AI sistemlerinde risk keskin biçimde artıyor
- Kısıtsız otomasyon sistemleri, doğrulanmamış mantığı katman katman biriktirerek karmaşıklığı ve güvenlik açıklarını kötüleştiriyor
- Son araştırmalar, LLM’lerin bağlam penceresi uzadıkça doğruluğun bozulduğunu gösteriyor
- Başını ve sonunu iyi işlerken ortadaki kısım genelleme ve hatalara daha açık hale geliyor
- Sonuç olarak bakım maliyeti yüksek ve kolay kırılan kodlar ortaya çıkıyor; XP de bu tür düzensiz entropiyi önlemek için doğmuştu
Yazılım hâlâ insanın alanı
- Yapay zeka ilerlese de yazılımın insanın insan için, kurum içi iletişim ve kültür içinde ürettiği bir şey olduğu gerçeği değişmiyor
- Teslimattaki başlıca engeller otomasyon düzeyi değil; hizalanma, paylaşılan bağlam, net sonuçlar, kullanıcı doğrulaması gibi insan temelli unsurlar
- XP’nin temel değerleri:
- Simplicity: karmaşıklığı azaltma
- Communication: ekip bütünlüğünü koruma
- Feedback: öğrenme ve uyumu yönlendirme
- Respect: güven ve psikolojik güvenlik inşa etme
- Courage: şeffaflığı ve değişim kapasitesini destekleme
Özellik fabrikasından gerçek değer teslimine
- Başarılı ekipler, hızın kendisinden çok akış (flow) ve geri bildirime öncelik verir
- XP’nin küçük partiler, sürekli entegrasyon, otomatik testler, ortak sahiplik gibi pratikleri uyarlanabilirliğe ve kullanıcı odaklılığa katkı sağlar
- İleride kod üretimi daha da hızlandıkça bu yöntemler kalite, risk ve niyet yönetimi için vazgeçilmez olacak
Geçmişten alınacak dersler
- CHAOS raporu istatistikleri:
- 1994: Projelerin %16’sı zamanında ve bütçe içinde başarılı oldu
- 2012: Bu oran %37’ye yükseldi
- 2020: Yeniden %31’e geriledi
- 20 yılı aşkın yenilik ve değişime (agile, DevOps, cloud-native, yapay zeka vb.) rağmen genel güvenilirlik yalnızca 14 puan arttı
- Sorun yalnızca araç zinciriyle çözülemiyor
- Doğru metodolojinin önemi yeniden doğrulanıyor
Bundan sonra ne gerekiyor
- 1. Output artık kısıt değil: Kod üretme kapasitesi, doğrulama ve hizalanma hızını geçmiş durumda
- 2. Sonuç odaklı yetkinliklerin güçlendirilmesi: geri bildirim, net ürün yönü, güçlü işbirliği ve iyi tasarım kritik
- 3. Daha insani süreçlere ihtiyaç var: Yapay zeka ilerlese de sürekli teslimat işbirliğine dayanır
- Gerçekten etkili bir Product Operating Model’in insan—işbirliği, netlik, akış—merkezli bir işletim yapısından doğduğu vurgulanıyor
- Teknik inovasyondan (platformlardan) çok, ekip stratejisi, operasyon ritmi ve mühendislik pratikleri kusursuz biçimde hizalandığında yapay zeka çağında sürdürülebilir bir yazılım teslim ortamı kurulabilir
Sonuç: Yapay zeka çağında XP gerekli mi?
- Evet
- Güçlenen araçlar karşısında insan merkezli pratikleri sabitleyecek bir çerçeveye ihtiyaç var
- XP; ekip odağı, empati, ortak anlayış ve doğru hedefe yönelim sağlar
- Salt çıktı hızına değil, anlamlı yön duygusuna ve ekip içi hizalanmaya odaklanır
- Yapay zekanın hızlandırdığı ve sınırsız üretimin mümkün olduğu bu çağda XP, yazılımın insan işi olduğunu hatırlatan nadir metodolojilerden biri
1 yorum
Hacker News görüşleri
Extreme Programming'in yaratıcısı Kent Beck, yapay zeka ile kodlama konusunda çeşitli deneyler yapıyor
Augmented Coding Beyond the Vibes gibi yazılarda yapay zekanın programlamada nasıl kullanılabileceğini sorguluyor
ChatGPT kodlamada faydalı şekilde kullanılmaya başladığında, becerilerinin %90'ının artık değersiz hale geldiğini, kalan %10'ununsa o kadar daha değerli olduğunu söylediğini hatırlıyorum
90% of my skills are now worth 0
Ben test öncelikli XP geliştirme yaklaşımının, yapay zekanın kod üretip bunu doğrulamasında faydalı hale geldiği bu çağda daha da değerli olduğunu düşünüyorum
Özellikle bunun AI araçlarının kod üretmesini kolaylaştırdığını hissediyorum
Son zamanlarda AI ile kodlama konusunda aklıma takılan şeylerden biri, eski raporların veya rehberlerin depoda kalması
Örneğin bu rapor da oluşturulduğu andaki koda dayanan, AI tarafından üretilmiş bir rapor
Böyle ara çıktıları geçmişte bırakmanın ne anlamı var bilmiyorum
Özellikle _updated_v2_from_2025 gibi biriken dosyalar bana çok anlamlı gelmiyor
Örnek1, Örnek2
XP'nin tek gerçek çevik metodoloji olduğunu düşünüyorum
Çevik, zamanla içi boşaltılarak anlamını yitirdi
Yapay zeka ile programlama geri bildirim döngüsünü hızlıca kapatmaya yardımcı oluyor ama her kod parçası için devasa birim testleri gerektiğini düşünmüyorum
İnsanlar XP'nin özünü yeniden anlarsa — benim için bu geri bildirim döngüsü — ve LLM tabanlı ajan sistemleriyle daha sıkı geri bildirim döngüleri kurmak mümkün olursa, bunun yazılım mühendisliğinde büyük bir ilerleme olacağını düşünüyorum
XP ile başlayıp XP'yi takıntılı biçimde uygulamış biri olarak artık SCRUM tarzı organizasyonlarda çalışmak bana zor geliyor
SCRUM büyük ölçüde XP'den türedi ama artık sanki geriye yalnızca anlamsız ritüeller kalmış gibi
İdeal senaryonun, iki geliştiricinin aynı branch üzerinde AI ajanlarıyla birlikte pair programming yapması olduğunu düşünüyorum
Pair planning, review, geliştirme ve testin doğal biçimde tekrarlandığı ideal bir geri bildirim döngüsü bu
XP dönemindeki birim testlerle bugünün testleri arasında fark vardı
O zamanlar bunlar özellik düzeyinde testlerdi, yöntem başına testler değildi
Her şeyin, yapay zekanın geri bildirim döngüsünü ne kadar doğru kapatabildiğine bağlı olduğunu hissediyorum
Kodun yarısını kullanıcıya teslim etmemek (= prodüksiyona vermemek) çevik değildir diye düşünüyorum
Ekibimiz tamamen eski Pivots ve Thoughtworks kökenli kişilerden oluşuyor
Pair programming, TDD ve müşterinin ekip içinde yer alması bizim için temel uygulamalar
IDE içinde AI'ı da 2 yılı aşkın süredir aktif biçimde kullanıyoruz
Ama bu yıl şaşırtıcı şekilde, 'AI ile herkesin ayrı ayrı çalıştığı' bir model yerine, tam tersine herkesin (4 kişi) tek bir projede senkron kalıp tek bir işe yoğunlaştığı 'mobbing' yapmaya başladık
Claude Code yazmayı kolaylaştırırken, dört kişi aynı anda gerçek zamanlı olarak birlikte çalışıyor
Bu, XP ile AI'ın kusursuz biçimde birleştiği en eğlenceli, en yüksek odaklı ve en etkili deneyimdi
XP'yi tamamen unutmuştum
Bir kısmı bugün zaten sıradanlaşmış durumda, geri kalan kısımlarsa bugünün ölçütleriyle son derece yabancı görünebilir
Özellikle de LLM kullanıp fazla düşünmeden 1000 satırdan fazla kod dökmeden önce mutlaka bir kez durup düşünmek gerektiğini vurgulamak isterim
Kişisel olarak XP'deki en yabancı görünen kısmın ne olduğunu düşündüğünüzü merak ediyorum
Bunu herkesin AI ile pair programming yapması gerektiği şeklinde anlamamak lazım
Bir ekip arkadaşıyla pair programming yapınca birbirinizin düşünme biçimini ve kodun bağlamını paylaşırsınız
Ama AI ile pair programming yaptığınızda, prompt'u kapattığınız anda AI her şeyi unutur
Bu yüzden burada tartışılan XP, 1990'lardaki gibi hâlâ 'insanlar arasında' yapılan XP
AI bunun içine bir miktar girebilir ama çekirdek yine insan merkezli
Açıkça kalıcı çıktılar bırakmazsanız böyle olur
Belgeleri yetersiz yeni kodu keşfederken LLM ile birlikte öğrendiklerinizi belge veya ajan dosyaları olarak depoya bırakırsanız anlamlı olabilir
Ben ise tam tersine, AI ile pair programming yapmıyorsanız bunu yanlış yaptığınızı düşünüyorum
Aslında insanlar arasında pair programming yaparken bile gelecekteki benliğim çoğu zaman bugünkü hatıraların hepsini unutuyor
Belgeleme odaklı bir eşli çalışmaya yönelmek lazım
Kısacası LLM ile birlikte XP tarzı pair programming mutlaka uygulanmalı
Kesin biri çıkıp Extreme Vibing (XV) kursu satmaya çalışacaktır
Extreme Programming, TDD, pair programming, CI ve geri bildirim gibi bağımsız olarak da işe yarayabilecek birçok kavramı bir araya getiren bir paradigma
Bunların her biri bağlama göre faydalı olabilir ama her parçayı her zaman aynı anda kullanmak gerektiğini düşünmüyorum
Bu yüzden XP'nin tek ve tamamlanmış bir kavram olarak gücünü kaybettiğini düşünüyorum
Bugün çoğu ekip XP'nin yalnızca bazı bölümlerini uyguluyor ve neredeyse hiçbir organizasyon gerçek anlamda XP'nin tamamını uygulamıyor
Çevik konusunda ise büyük şirketler çoğunlukla uygulamaların %90'ından fazlasını yaklaşık %70 sadakatle uyguluyor
Gerçekte, Çevik Manifesto'da anlatılan yaklaşımı %100 uygulayan tek bir şirket bile görmedim; en iyi örnekler bile ancak %90 civarındaydı
Ama temel pratiklerin hepsi tek bir paradigmanın altında toplandığı için organizasyonların kendilerine 'çevik' demesi kolaylaştı
Bu yüzden yalnızca “çeviğe geçiyoruz” demek çok daha kolay hale geldi
XP kitabının felsefe, ilkeler ve pratikler olarak ayrılmasının sebebi bu
O kitaptaki en etkileyici cümlelerden biri, pratik olmadan değerlerin ölü olduğu, değerler olmadan pratiklerin ise boş olduğuydu
Sonuçta nihai amaç best practice ezberi değil; ekibe inisiyatif verip kendi süreçlerini tanımlamalarını, iyi tasarlanmış ve güvenilir yazılım üretmelerini sağlamak
XP'nin biraz 'karışık bir araç çantası' gibi görünmesinin nedeni de, aslında tam olarak böyle proaktif ekiplerin seçip kullandığı araçlardan oluşması
Ben gerçekten de yukarıda anılan pratikleri (TDD, pair programming, CI, geri bildirim) prodüksiyon kodunda her zaman uyguluyorum (koşullar izin verdiğinde)
Hangi durumda bunların 'yanlış' sayılabileceğini merak ediyorum
90'lardaki takıntılı çeviklik anlayışından bu noktaya gelmiş olmamızın ciddi bir ilerleme olduğunu düşünüyorum
Artık AI destekli iş akışları çoğaldığı için, sadece çıktı miktarını artırmaya değil, gerçek kullanıcı sonucu elde etme olasılığını yükseltecek şekilde yazılım süreçlerine bakmaya daha çok odaklanmalıyız
XP'nin bunun için iyi bir başlangıç noktası olduğunu düşünüyorum (ama mutlaka varış noktası değil)
Extreme Programming (XP), kısa iterasyonlar, hızlı geri bildirim ve basit tasarıma odaklanan; pair programming, TDD ve CI gibi pratikleri temel alarak değişime hızla uyum sağlamayı amaçlayan çevik bir metodolojidir
Mümkün olduğunca küçük ve hızlı üretip müşteriyle birlikte yinelemeli öğrenmeyi ve kalite optimizasyonunu önceliklendirir
~ GPT5 in perplexity
Son zamanlarda AI ile birlikte waterfall'un yeniden yükselişe geçtiğini düşünmeye başladım
Waterfall aslında hiçbir zaman ortadan kaybolmadı
Waterfall'un geri dönmesi üzücü
Waterfall çoğu durumda doğru yaklaşım değil
Eski bir Pivot çalışanı ve XP hayranı olarak buna katılıyorum
Aşağıdaki yorumuma da bakın
Hâlâ XP uyguluyorum