Engin Özkurt
7 min readNov 19, 2024

IBM watsonx Code Assistant (WCA) ile Geliştirici Deneyimini İyileştirme!

Herkese Merhaba,

Bu yazıda sizlere, IBM’in 15 Kasım’da genel kullanıma sunmuş olduğu “watsonx Code Assistant” çözümünden bahsedeceğim.

Bugün yerli ve yabancı bir çok işletmede sıkça duyulan bir endişe, üretken yapay zeka teknolojilerinin, çalışanların verimliliğini aşacağı ve birçok işi gereksiz hale getireceği yönünde. Yapay zeka bizi işssiz mi bırakaca? :) Bu endişe, geçmişte otomaston ve sanayileşme gibi büyük teknolojik devrimlerde de yaşanan kaygılara benziyor. Ancak bu tür kaygıları günümüzden örneklerle daha iyi değerlendirebiliriz.

Örneğin;

  • Hibrit elektrikli araçlar üreten otomotiv şirketleri,
  • Apple’ın iPhone üretim ve teslimatını destekleyen büyük ölçekli fabrikalar.

Bu sektörlerde teknoloji, instan gücünü tamamen ortadan kaldırmadı. İnsanlar işin merkezinde yer almaya devam ediyor, ancak işleri teknolojiyle destekleniyor ve daha verimli hale getiriliyor.

Aynı durum, yapay zeka için de geçerli olacak. Yapay Zeka, BT profestonellerinin yeteneklerini geliştirecek ve işlerini destekleyecek, ancak insan uzmanlığının yerini tam anlamıyla alamayacak. IDC’nin araştırmalarına göre, üretken yapay zeka sayesinde otomasyon artacak olsa da, şirketler kritik beceri eksiklikleriyle karşılaşmaya devam edecek. Bu eksikliklerin işletmelere maliyetinin 6,5 trilyon doları aşması bekleniyor. Bu nedenle, mevcut yazılım geliştirme ekiplerinden daha fazla verim alınması gerekecek. Gartner’a göre, BT yazılım mühendislerinin %90'ı, iş süreçlerinde yapay zeka destekli araçları kullanacak.

Sonuç olarak, IBM üretken yapay zekanın mevcut BT iş gücünü tamamen ortadan kaldıracağına inanmıyor. Ancak yapay zekayı etkin şekilde kullanan profesyoneller, bu teknolojilerden faydalanmaya çalışanların yerini alacak. OpenAI’ın ChatGPT’yi piyasaya sürmesinden sonra, pazarda rekabet eden büyük dil modelleri (LLM) ve üretken yapay zeka tabanlı asistanlar hızla yagınlaştı. Ancak bir LLM’i eğitip devreye almak bir şey, onu iş dünyası için somut ve faydalı hale getirmek ise tamamen başka bir şeydir.

Teknolojilerin sürekli geliştiği bir dönemde, IT çalışanlarını bu değişime ayak uyduracak şekilde güncel tutmak, kurumsal organizasyonlar için uzun süredir devam eden bir zorluktur. Pandemi sonrası oluşan koşulların, uzaktan ve hibrit çalışma modelleri, dijital dönüşümün hızlanması, zor ekonomik koşullar ve tüm sektörlerdeki emeklilik oranlarının artışı, IT beceri açığının daha da büyümesine yol açmaktadır.

IDC’nin araştırmalarına göre;

  • %51 den fazla organizasyon, IT beceri eksikliğinin olumsuz etkilerini hissetmeye başladıklarını bildiriyor.
  • 2024 yılının sonuna kadar, dünya genelindeki organizasyonların %90'ının bu sorunla mücadele etmesi bekleniyor.
  • Bu durum, kaçırılan gelir hedefleri, rekabet gücününün azalması, kalite kontrol sorunları ve gecikmiş donanım ve yazılım teslimatları nedeniyle küresel ekonomiye 6.5 trilyon dolar dan fazla maliyet yaratabilir.

IBM watsonx Code Assistant (WCA), generative AI tabanlı kod asistanı ürünlerinin amiral gemisidir. Tüm WCA ürünleri, IT ekiplerine doğal dil talepleri veya mevcut kaynak kodlara dayalı olarak yapay zeka önerileriyle yüksek kaliteli kod oluşturma desteği sağlar. AI önerileri, VS Code ve Eclipse gibi popüler entegre geliştirme ortamları üzerinden sorunsuz şekilde entegre edilir.

IBM Granite platformu, çok modelli bir taklaşımla kod, dil, runtime, coğrafi veri işleme gibi alanlarda ileri düzey yetenekler sunar. Özellikle Granite 8b modeli, 8 milyar parametre ve 128K context window size’ına sahip olup Java, C, C++, Python, Go, JavaScript ve TypeScript gibi kapsamlı bir programlama dili setinde eğitim almıştır. Şu anda 116'dan fazla yazılım dilini desteklemektedir.

IBM watsonx Code Assistant (WCA)’ı rakiplerinden ayıran özellikler nelerdir?

1- Kod Anlama: WCA, birçok proglama dili üzerinde eğitilmiştir ve müşterilerin kodlarını derinlemesine anlayarak bu bilgiyi uygulama ve çalışma ortamlarına entegre eder.

2- Analiz ve Planlama: Kullanıcılar, mevcut uygulama kodlarını üretken yapay zeka analizle inceleyip sonraki adımları planlayabilir.

3- Kod dönüşümü ve optimizasyon: Operasyon ekipleri, IBM Granite’ın en iyi uygulama modellerine dayanarak önerilen optimize edilmiş tasarım ve mimarisiyle kod bloklarını hızla dönüştürebilir.

4- Doğrulama ve Dağıtım: Yöneticiler, otomatik olarak oluşturulan birim testleriyle sonuçları doğrulayabilir ve uygulama hizmetlerini otomatik süreçlerle devreye alabilir.

5- Yaşan Döngüsü Boyunca Bakım: Uygulama veya kod yaşam döngüsü boyunca üretken yapay zeka, runtime’daki içgörülerle operasyonları sağlıklı bir şekilde sürdürür.

Sonuç olarak; üretken yapay zeka destekli kod yaşam döngüsü yönetimi, büyük dil modellerinin tek başına başaramayacağı seviyelere ulaşmayı sağlar. Bu yaklaşım, WCA’ı günümüzdeki diğer kod asistanlarından ayıran temel özelliktir.

IBM Granite kod modelleri, kod geliştirme ve modernizasyonu gibi görevler için kullanılan yalnızca kod çözücü özelliğine sahip modellerden oluşan bir seridir. Bu modeller, 116 farklı programlama dilinde yazılmış kodlarla eğitilmiştir ve 3 milyar ile 34 milyar parametre arasında değişen boyutlarda sunulmaktadır. Granite kod modelleri, geniş kullanım alanlarıyla dikkat çekerken, özelleştirilmiş WCA çözümleri, belirli framework veya dillerde derinlemesine uzmanlık gerektiren durumlarda üstün performans sunar. Bu farklılaşma, IBM’in hem geniş kapsamlı hem de hedefe yönelik yapay zeka destekli çözümler sağlama konusundaki esnek yaklaşımını ortaya koyar.

Günümüzün hızla değişen teknoloji dünyasında, kurumsal organizasyonlar iki temel zorlukla karşı karşıya: yapay zeka destekli uygulamaların hızlı benimsenmesini yönetmek ve mevcut iş akışlarını modernize etmek. Bu talepleri etkili bir şekilde karşılamak için, üretken yapay zeka ve kod assistanlarının yalnızca kod yazmaktan fazlasını yapması gerekir. Kod yaşam döngüsünün tamamını desteklemeleri şarttır.

WCA, yazılım geliştirme sürecine yapay zeka desteğiyle güçlü bir başlangıç sunar. Doğal dilde verilen basit komutlarla, kurumsal organizasyonların belirlenmiş kodlama standartlarına uygun yüksek kaliteli kodlar üretir. VS Code veya Eclipse gibi entegre geliştirme ortamlarında (IDE), geliştiricilerin yazarken yada yorum satırlarıeklerken tercihine göre otomatik tamamlama özelliği sağlar.

WCA, zaman ve kaynak kaybına yol açan rutin görevleri standartlaştırır, kolaylaştırır ve otomatikleştirir. Yeni veya değiştirilmiş her bir kod satırı için gerekli yönetim ve destek görevlerini hızlandırır. Kod doğrulama işlemleri, unit test oluşturma ve kod açıklaması gibi akışlarını daha da optimize eder. 15 Kasım itibariyle, kod açıklama özelliği C, C++, Go, Java, JavaScript ve Typescript gibi birinci öncelikli dillerde kullanılabilir durumdadır. Java gibi eski kodları güncellemek için üretken yapay zekadan faydalanarak, eksiklikleri tespit eder ve otomatik çözümler önerir. Ayrıca, uygulama kodlarıyla doğrudan IDE içinde sohbet ederek kod işlevlerini özetlemek ve temel şablonları oluşturmak mümkündür.

Kurumsal Java uygulamalarını yöneten organizasyonlar için eski uygulamaları modernize etmek büyük bir değer sunar. WCA, monolitik yapılardan mikro hizmetlere geçişi hızlandırarak Java uygulamalarını daha verimli çalıştırma ortamlarına taşır. Üretken yapay zeka destekli önerilerle uygulamaları modernize etmek, otomatikleştirmek ve uygun ölçekte yeniden düzenlemek mümkündür.

Real-time AI code recommendations

Gerçek zamanlı yapay zeka destekli kod önerileri, yazılım geliştirme yaşam döngüsünü devrim niteliğinde bir şekilde değiştiriyor, programcıların daha hızlı ve verimli kod yazmalarını sağlıyor. WCA ’nın önerileri, projenin bağlamına ve stil konvansiyonlarına göre özelleştirilir, böylece kod, mevcut desenlerle ve organizasyonel standartlarla uyumlu hale gelir. WCA’nın kod geliştirme yetenekleri, IBM Granite büyük dil modelleri (LLM) tarafından desteklenir ve bu modeller, geniş bir programlama dili yelpazesinde sağlam destek sunar. WCA’nın öne çıktığı “Tier 1” diller arasında Python, Java, JavaScript, TypeScript, C, C++, ve Go yer alır. WCA, bugün 116'dan fazla programlama dilini desteklemektedir

Chat with your code

WCA, visual studio (VS) Code içinde sorunsuz bir şekilde entegre edilmiş bir chatbot arayüzü sunar. Bu entegrasyon sayesinde, geliştiriciler artık asistanlarına mevcut araçlarıyla birlikte doğrudan erişim sağlayabilirler. WCA’nın entegre geliştirme ortamlarına yerleştirilmesi, geliştiricilerin halihazırda çalıştıkları ortamda daha sezgisel ve verimli bir kod yazma deneyimi sunar. Bu, organizasyon genelinde verimlilik artışına doğrudan yansır ve aynı zamanda yazılım geliştirme süreçlerinde “code scrum” ve agile yöntemlerden alışık olabileceğimiz, fikir alışverişine dayalı bir çalışma tarzını yansıtır.

Bu entegrasyonun en önemli avantajlarından biri, geliştiricilerin artık doğrudan WCA ile dinamik konuşmalar yapabilmesi ve bu sayede bir soruna yeni yaklaşımlar geliştirebilmeleri veya kodlama zorluklarını birlikte çözebilmeleridir.

Understand your codebase

Kurumsal şirketlerin kod yapılarını anlamak, özellikle karmaşık veya kötü dökümante edilmiş uygulamalarla çalışırken verimli geliştirme ve bakım için esastır. WCA, uygulama kodunun amacı ve işlevselliği hakkında net içgörüler sağlar. WCA, bir düğmeye basarak GENAI tarafından oluşturulan açıklamalar sunar, böylece geliştiriciler uygulamanın ne yaptığını daha iyi anlayabilirler. Bu özellik, ekiplerin güncellemeler sırasında etkilenebilecek veya güncellemesi gereken harici bağımlılıkların kapsamlı bir görünümünü elde etmelerine yardımcı olur ve ayrıca, misyon kritik uygulamalardaki tüm kod değişikliklerini özetleyerek ekiplerin neyi devreye aldıklarına güvenmelerini sağlar. Yeni ve mevcut sistemlerin daha iyi anlaşılması, müşterilerin zamandan tasarruf etmelerine ve daha kritik görevlerle ilgilenmelerine yardımcı olur.

Modernize enterprise Java code

Uygulama modernizasyonu ve otomasyon çözümleri, monolitik, belgelenmemiş ve genellikle teknik kısıtlarla dolu olan Java kodlarını ele alacak kadar güçlü olmalıdır. IBM watsonx Code Assistant (WCA), kurumsal Java uygulamalarıyla çalışan ekipler için maliyetleri, riskleri ve değer sağlama süresini önemli ölçüde azaltır. Müşteriler, generatif AI kullanarak Java uygulama çalışma zamanını tam olarak anlayabilirler. Bu sayede gen AI, müşterilere çeşitli kod açıklamaları sağlar: yükseltmeler sonrası kod değişikliklerinin özetlenmesi, yapılandırma oluşturma, API önerileri ve çalışma zamanı içgörüleri

References:

Engin Özkurt
Engin Özkurt

Written by Engin Özkurt

𝘚𝘦𝘯𝘪𝘰𝘳 𝘚𝘪𝘵𝘦 𝘙𝘦𝘭𝘪𝘢𝘣𝘪𝘭𝘪𝘵𝘺 𝘌𝘯𝘨𝘪𝘯𝘦𝘦𝘳 / 𝘌𝘹-𝘔𝘪𝘤𝘳𝘰𝘴𝘰𝘧𝘵 /𝘖𝘱𝘪𝘯𝘪𝘰𝘯𝘴 𝘩𝘦𝘳𝘦 𝘢𝘳𝘦 𝘮𝘺 𝘰𝘸𝘯.

No responses yet