SDLC içinde AI Uygulamaları

Mehmet Ali EROL
Ford Otosan
Published in
4 min readNov 8, 2023
DALL·E 3ile oluşturulmuştur. Prompt : software developer and ai writing code together. vector style

Bu yazıda sizlere kendi yazılım yaşam döngümüzde kullandığımız AI çözümlerden bahsedeceğim.

Yazılım geliştirme; mimari tasarımlar, engin teknoloji okyanusundan seçimler ve sürekli farklı problemlere aranan çözümlere ek olarak tekrar eden işler ile defacto olmuş, kendini kanıtlamış adımların yeniden kullanılmasını da barındırıyor.

Bu tekrar eden yapıları paketler, ortak dll’ler ve code generator’lar ile çözmeye çalışıyoruz. Örneğin, her seferinde arama ya da sıralama algoritmalarını kodlamıyoruz, bunun için hazır metotlardan faydalanıyoruz.

Yukarıdaki iş yapış şekilleri biz geliştiricileri oldukça hızlandırırken tabi ki dezavantajları da beraberinde getiriyor. Bize özel çözümler ürettikçe bunların yeni gelen kişilere, rotasyon sürecinde olanlara ya da bir süre sonra takımın kendisine dahi yabancı görünmesi sonucu ile hepimiz karşılaşmışızdır.

AI tam da bu noktalarda bize avantaj sağlıyor. Özellikle mevcut kodun refactor edilmesi, tekrar eden işlerin otomatik yazılması, unit test önerileri, mevcut kodun açıklanması, defacto olmuş çözümlerin önerilmesi vs.

Google Bard ya da OpenAI Chat GPT ücretsiz şekilde bize yukarıdaki bir çok fonksiyonaliteyi sunuyor. Bu araçları kullanmıyorsanız, daha önce denemediyseniz hemen şimdi yazının devamını okumadan denemeye başlamalısınız. İstediğiniz dilde istediğiniz kodu verebilen, bunları nasıl çalıştırabileceğinizi adım adım yazan, dilediğinizde çözümü farklı bir dil ya da platforma dönüştürebileceğiniz eşsiz bir deneyim sunuyor. Henüz emekleme aşamasında bile olmadığını da bilmeliyiz yani büyük bir hızla yeteneklerini artıyor bu sistemlerin.

AI ile yarışmak ya da kendimizi kıyaslamak anlamsız bir konu, onunla bütünleşik çalışmayı ve ondan maksimum faydayı elde etmeyi öğrenmeliyiz. Aynı zamanda temel bilgilerimize odaklanmamız ve framework geliştiriciliği kısmını AI tool’lara bırakmamız da yerinde bir strateji olabilir.

GenerativeAI araçlarını kullanırken her zaman dikkatli olmak gerekiyor, bu ücretsiz alt yapılar ile iletişime geçerken verdiğiniz her türlü bilginin 3. kişilerin eline geçmesi ya da modeli eğitme aşamasında kullanılmasını kabul etmiş oluyorsunuz.

Bu nedenle private çözümler yani verdiğiniz bilgilerin paylaşılmadığı alt yapılar şirketler için daha mantıklı bir hale geliyor.

Copilot Your AI Pair Programmer

Alttaki detaylardan önce yapılan araştırmayı okumanızı öneririm. Kullanan geliştiricilerin üretkenliklerinde artışlar ve neler hissettiklerine dair araştırma sonuçlarına aşağıdaki link ile ulaşabilirsiniz.
https://github.blog/2022-09-07-research-quantifying-github-copilots-impact-on-developer-productivity-and-happiness/

Copilot gibi çözümler bireysel kullanılabildiği gibi şirketler tarafından enterprise olarak da kullanılabiliyor ve bu durumda bilgilerinizin paylaşılması ya da model eğitilirken kullanılması gibi durumlar söz konusu olmuyor.

Copilot ile IDE içerisinden ayrılmadan yukarıda bahsettiğim fonksiyonların tümü karşılanabiliyor ve eğer şirket olarak kullanıyorsanız, github enterprise hesap üzerinden kullanıma dair metrikleri ve ne kadar fayda elde ettiğinizi görme şansınız oluyor.

Özellikle junior ve mid seviye arkadaşların çok sayıda soru sorma ihtiyaçlarının olması ve genelde çekindikleri için, kendileri çözmeye çalışırken çok vakit harcaması çok bilindik bir senaryo olarak karşımıza çıkıyor. AI ile bu noktada bir çok sorunun cevaplanması ve kalitesel anlamda iyileşmenin sağlanması mümkün hale geliyor.

Tabii ki prompt yapacak kişinin doğru soruları sorması ve çıktıları bir filtreden geçirerek kodun içerisine kabul etmesi, gerekli gördüğü yerleri revize etmesi oldukça önemli. Bu noktada da code review süreçleri önem kazanıyor.

CI-CD aşamalarını iyi oturtmak ve code review yapılmadan kodun ilerlemesinin önüne geçmek olmazsa olmaz bir durumdur. Bu noktada da AI bize destek olabiliyor.

Chat GPT — Azure Pull Request Code Review

Dall-E 3 ile oluşturulmuştur.
DALL·E 3 ile oluşturulmuştur.

Azure devops kullanıyorsanız ve code review aşamasında size destek olacak (destek kısmı önemli, geliştiriciye destek olacak ikinci bir göz olarak düşünebilirsiniz) bir sanal ekip arkadaşı oluşturmanız çok kolay.

Takımdan bir kişi pull request açtığında Build Validation olarak ekleyeceğiniz bir CI içerisinde yukarıdaki linkte bulunan azure devops eklentisini kullanarak otomatik kodları ChatGPT’ye review ettirebilir ve sonucunda ilgili pull request içerisine yorumlar eklemesini sağlayabilirsiniz.

Sonuç olarak Copilot bize AI ile birlikte kod yazma deneyimi sunarken ChatGPT ile de bu kodları review etme şansı elde ediyoruz. AI dan aldığımız destek ile daha az kod ve daha fazla kontrol ile kaliteyi artırarak bakım maliyetlerinin azalmasını ve geliştiricinin daha değer yaratan konulara odaklanmasını sağlıyoruz.

Not: Azure cognitive servisler altında gpt 3.5 turbo api’sini kullanarak review işlemlerini yaptığınızda, 3. kişiler ile veri paylaşımı ya da model eğitimi gibi konularda da aklınızda soru işareti kalmasına lüzum olmuyor.

Sonraki aşama olarak azure üzerinde kendi bilgilerimiz ile eğiteceğimiz bize özel bir AI oluşturarak geliştiricilerin işini biraz daha kolaylaştırmayı hedefliyoruz.

Kaynaklar :

https://bard.google.com/chat

https://chat.openai.com/

--

--

Mehmet Ali EROL
Ford Otosan

Software Developer, Chapter Lead, Impovisional Theater Actor