Az Kod Çok İş Yapar Mı?

Emrah Önder
Jan 26 · 6 min read

Yanlış hatırlamıyorsam 2001 yılıydı, programlama öğrenmeye ilk adımlarımı attığım yıl. Lise 2’nin ikinci dönemindeki bilgisayar dersi müfredatının bir parçası olarak Pascal mavi ekranıyla tanışmamdan bu yana yirmi yıl geçmiş, vay be!

Bilmeyenler ve özleyenler için o şirin mavi ekran

Geçenlerde bunun üzerine biraz düşündüm, bir insan için uzun, insanlık için ise çok küçük bu yirmi yıl içinde neler değişmişti gönül verdiğim sektörde.

“Aman kütüphaneyi eklemeyi unuttum”, “vay virgül eksik kalmış satır sonunda”, “hele hele bak şuna aynı kodu 10 kere yazmışım” gibi uzayıp gidebilecek bir listeden seçip beğenebileceğimiz türlü zorluklar artık bir hayli uzak. Nesne yönelimli geliştirme (Object-oriented Development), servis yönelimli mimariler (Service-oriented architecture) derken insanlık daha az çaba ile daha hızlı, daha sorunsuz yazılım geliştirme hayalini gerçekleştirme tutkusundan hiçbir zaman vaz geçmeyecek gibi görünüyor.

Tüm bunları düşünürken fırsat bu ya, Netsis’teki son yöneticim, sevgili abim Stefano Tito ile denk gelip sohbet ettik. Eskiden arada buluşur yemek yer, teknoloji konuşurduk lakin, malum pandemi bunu küçük bir ekrana sıkıştırmak zorunda bırakır oldu.

Neyse laf lafı açarken onun zaten uzun süredir üzerinde çalıştığı ve büyük emek verdiği bir konuya “No Code / Low Code” konusuna geldik. Ara ara üzerine düşünmüştüm ancak endüstriyel yazılım geliştirmenin gideceği bu yön üzerine çok da fazla kafa yormadığımı fark ettim. Başladım araştırmaya…

No Code / Low Code

Öncelikle kavramları biraz inceledim. No code ifadesini nasıl Türkçe’ye çevirebiliriz bilmiyorum ama “Hiç kod” desek fena olmaz, Low Code için de “Düşük kod” deniyor ancak bence “Az kod” demek daha doğru olur.

Hiç kod yaklaşımında, geliştirici, herhangi bir programlama diline ve bu dilde kod geliştirmeye gereksinim duymadan, işi için gerekli uygulamayı, -örneğin bir mobil uygulamayı- sağlanan ortam üzerinde sürükle-bırak gibi basit bir işlemle yapabiliyor. “Low code — az kod” kavramına gelirsek aslında mantık neredeyse aynı, ek olarak eğer ihtiyaç duyuyorsanız yazdığını ek kodları da çalıştırmanıza olanak sunuyor. Az kod platformlarda geliştirme sürecinde esneklik daha fazla diye özetleyebiliriz temel farkı.

Peki bu uygulama ya da program geliştirme işini kim yapıyor? Vatandaş geliştiriciler (Citizen Developer) yani Excel, Word ya da Powerpoint kullanabilen herhangi bir ofis çalışanı!

“Nasıl yani?” dediğinizi duyar gibiyim. Programları yazılım geliştiriciler, yazılım mühendisleri vs. geliştirmiyor muydu? Evet, geleneksel süreçte bu iş için programlama dillerini bilen, genel mimariyi kurgulayabilen, çıkabilecek muhtemel sorunları çözme becerisine sahip uzmanlara ihtiyaç var ve pek tabii de ciddi bir zamana.

Rekabetin her geçen gün arttığı perakende gibi sektörlerde değil günlerin, dakikaların bile rakiplere karşı avantaj ya da dezavantaj sağladığını düşünecek olursak bir uygulamanın maliyetini de anlamış oluruz.

Programın konusu olan işi, süreci bilen ancak yazılım geliştirme konusuna hâkim olmayan analist ya da şirket sahibi ile yazılım geliştirmeye hâkim ancak hedefteki işi bilmeyen yazılımcının çok hızlı çözümler üretmesi ciddi bir paradoksa neden olmuyor mu?

Çözüm şu olabilir mi: Yazılım geliştirme deneyimi olmayan ama işi çok bilen ve analiz edebilen bir vatandaş veri analisti (Citizen data analyst) ile daha önce bahsettiğim vatandaş geliştirici(ler) ile kafa kafa verip belki birkaç gün içinde bir uygulama geliştirip müşterilerinin kullanımına sunsa? Derin bir veritabanı bilgisine ihtiyaç duymadan temel komutlarla veri işleyip anlamlandıran vatandaş veri bilimcileri (Citizen data scientist) desteği ile uygulamaları, programların geleceği hızlıca belirlense?

Sanırım hiç kod / az kod platformların hedefini bir önceki paragrafta özetledim. Yani bir stok takip programındaki ya da müşterilerinize kampanyalarınızı göstereceğiniz mobil uygulamadaki ufak bir değişiklik için günlerce, aylarca neden bekleyesiniz ki? Dilediğiniz an oturup kendiniz değiştirmek güzel olmaz mı?

Karşılaştırma

Geleneksel yöntemler az koda karşı!

Lafı daha fazla uzatmadan ufaktan geleneksel yazılım geliştirme süreci ile az kod platformlarındaki geliştirme sürecini karşılaştıralım. Diyelim ki bir firmanın IT müdürüsünüz ve firmanızdaki stoklarınızı ERP sisteminizde tutuyorsunuz. Çalışanlarınıza mobil bir cihaz dağıtıp stokların kontrolünü sağlamak istiyorsunuz. ERP yazılımının da bir API arayüzü olduğunu varsayalım.

Geleneksel Yazılım Geliştirme Süreciyle ilerleyelim.

  • Gereksinimleri belirleyecek iş analistlerini belirle.
  • Gereksinimleri analistin toplamasını bekle.
  • Analistlerin gereksinimlerin yazılım ekibiyle bir araya gelerek hangi teknoloji (native / hibrid) ile yapılabileceği konusunda anlaşmasını bekle.
  • Seçilen mimarinin kısıtlarının ortaya çıkması ile gereksinimleri tekrar düzenle ya da çıkar.
  • Hedef teknolojiyi geliştirecek yazılım kadrosu yoksa bu çalışanları işe al ya da kirala
  • Geliştirme ortamları için gerekli donanım ve yazılımları satın al ya da kirala, bunların bakım ve amortisman gibi diğer ek yükleriyle uğraş.
  • Eğer ek bir front-end framework seçildiyse bunun ek zorluklarıyla mücadele et
  • Yazılım geliştirilmesi sürecinde yazılım versiyonlama araçları (Mesela Git) gibi ek araçların kurulumunu ya da satın alınması yönet
  • Yazılan kodun temiz ve yeniden kullanılabilir olmasını sağla
  • CI/CD süreçlerini kurgula ve yönet
  • Defalarca revize edilecek arayüz tasarımlarını konusunda firma içinde anlaşmayı sağla
  • Bir sürü test yazarak, giderek büyüyen yazılımın düzgün çalıştığına emin ol.
  • API’nizin yayınlanmış arayüzlerini veya şanslıysanız seçtiğiniz dilde desteklenen bir kitaplığı kullanarak entegre edin.
  • Testler geçene kadar tekrarlayın.
  • Güvenlik, performans, kalite ve kullanıcı kabulü için test edin.
  • Kullanım raporları için ek yazılımlar hazırla ya da üçüncü parti uygulamalar entegre et ve bunların güncel kalmasını sağla.
  • Uygulamanın kullanım ömrü sonuna kadar dağıtın, yama yapın, izleyin, güncelleyin.
  • Her yeni istek için bu saydıklarımın bazılarını tekrarlayın.
  • Ara ara yazılım ekibinizden kimsenin ayrılmaması için dua edin.

Az kod platformlarıyla geliştirme

  • Gereksinimleri belirleyecek iş analistlerini belirle.
  • Gereksinimleri analistin toplamasını bekle.
  • Seçtiğiniz platformun görsel geliştirme ekranı üzerinden uygulama ekranlarını hızlıca tasarlayıp onaya sun hemen ardından uygulamanın iş akışlarını, veri modellerini hızla çıkar.
  • API lerinizi genellikle otomatik bağla
  • Gerekirse, front-end için istediğin kodları hızlıca ekle
  • Kullanıcı kabulü için test et
  • Değişiklik ve yeni özellik talebi gelirse hızlıca yapıp tek bir tıklama ile güncellemeleri canlıya al.

Gelecek

Güzel görünüyor değil mi? Peki gelecek var mı bu işte, bir de ona göz atalım.

  • Sektörün önde gelen araştırma ve danışman firması Gartner’ın Eylül 2020’de yayınladığı “Magic Quadrant for Enterprise Low-Code Application Platforms” raporuna göre, 2023 yılına kadar orta ve büyük ölçekli firmaların uygulama geliştirme faaliyetlerinin %50'den fazlası artık az kod platformları üzerinden sağlanacak. Pandemi süreciyle beraber artan çevrimiçi hizmetler sayesinde bu orana daha erken ulaşılacağını düşünüyorum.
  • Nasdaq’ta işlem gören az kod girişimi Appian’ın piyasa değeri şu an yani Ocak 2021 itibariyle 14 Milyar $ seviyesinde ve artıyor.
  • Az kod alanına Salesforce Lightning Platform ile yatırım yapan lider CRM şirketi Salesforce, Eylül 2018’de yayınlanan Business Value of Building Apps on the Salesforce Lightning Platform,” raporuna göre yatırımın geri dönüşünü 5 yılda %545 olarak almıştır. Ayrıca aynı raporda şu çarpıcı ayrıntılar da yer alıyor:

* Geliştirilen neredeyse 6 kat daha fazla özellik

* %29 daha yüksek verimlilik, BT uygulama geliştiricileri

* %72 daha az hata

* %83 daha az plansız arıza süresi

* %57 daha hızlı BT geliştirme yaşam döngüsü

* Kuruluş başına yılda 3,74 milyon ABD doları daha yüksek gelir

  • Piyasa araştırmaları ile bilinen “Grand View Research firmasının Ağustos 2020 yılında, 2019 yılı baz alınarak yayınladığı “Low Code Application Development Platform Market Analysis & Segment Forecast to 2027” başlıklı rapora göre az kod piyasasının toplam değeri 2017’de 4.32 milyar USD iken, bu rakamın 2027’de 86.92 milyar USD’ye çıkması bekleniyor. Bu da 10 yılda pazarın en az 20 kat büyüyeceği anlamına geliyor.

Örnekleri arttırma ve detaylandırmak mümkün ancak bu dört madde pazarın geleceği konusunda fikir vermiştir diye düşünüyorum.

Geleneksel yazılım geliştirme yöntemleri ölüyor mu?

Şüphesiz ki az kod yaklaşımı kökten yazılım sektörünü dönüştürmeyecek ve hangisini kullanacağımızı ihtiyaçlarımız belirleyecek. Bu noktada Matrix üçlemesindeki Morpheus ile Neo arasındaki şu ünlü kırmızı hap mavi hap sahnesi geliyor aklıma:

Mavi Hap mı Kırmızı Hap mı?

Tarafı seçmek tamamen bizim seçimimiz olacaktır. Bir sonraki yazımda da dünyadan ve ülkemizden az kod girişimlerini paylaşacağım.

Kodcular

Bu yayın yazılım üzerine üretilen blogların bir araya…

Medium is an open platform where 170 million readers come to find insightful and dynamic thinking. Here, expert and undiscovered voices alike dive into the heart of any topic and bring new ideas to the surface. Learn more

Follow the writers, publications, and topics that matter to you, and you’ll see them on your homepage and in your inbox. Explore

If you have a story to tell, knowledge to share, or a perspective to offer — welcome home. It’s easy and free to post your thinking on any topic. Write on Medium

Get the Medium app

A button that says 'Download on the App Store', and if clicked it will lead you to the iOS App store
A button that says 'Get it on, Google Play', and if clicked it will lead you to the Google Play store