LOW CODE UYGULAMA GELİŞTİRME

Geçen ayki yazımızda “low code” ve “no code” kavramlarından bahsetmiş ve günümüz programlama dünyasında yeni yeni yer almaya başlayan bu programlama metodları konusunda okuyucuların ilgisini çekmeye çalışmiştık. Bu yazımızda da öncelikle “low code” uygulama geliştirme konusunda biraz daha detaya girmeye çalışacağız.

“Low Code” uygulama geliştirme platformları kısaca, hedeflenen işleri gerçekleştirmek için hazırlanan algoritmaları somut hale getirecek genellikle standart yazılım parçacıklarının önemli ölçüde görsel araçlar kullanılarak ve minimum kodlama yapılarak tasarlanması, gerçekleştirilmesi ve kullanıma sunulmasına yarayan yazılım geliştirme ortamlarıdır. Görsel araçlar yaklaşık 20 yıldır yazılım geliştirme platformlarında kullanılıyor. Bu sistemlerde yazılımlar satır satır yazılmıyor, daha önceden bir fonksiyonu gerçekleştirmek üzere hazırlanmış kod parçacıklarının görsel bir objeye bağlanarak kullanılabilir hale getiriliyor. Bu kod parçacıkları normal olarak genel temel fonksiyonları yerine getirmek üzere hazırlanmış, çok özel kod yazmaya gerek olmadan birçok uygulama içinde ortak olarak kullanılabilen kod kütüphaneleri şeklinde düzenlenebiliyor. Özel durumlarda ise yazılımcılar tarafından uygun kodlama yapılır fakat bu sistemlerin adlarından da anlaşılacağı gibi özel kod yazmaya duyulabilecek gereksinim minimuma indirilmiştir. Böylece uygulama geliştirme zamanı azalıyor, daha güvenilir ve hataların çok daha kolay bulunabileceği veya sonradan gerekebilecek değişikliklerin de ana tasarıma kolaylıkla eklenebileceği bir yapı kurulmuş oluyor.

Yapılan araştırmalara göre birçok iş uygulamasının yapısı birbirine çok benzer olarak kurgulanıyor ve uygulamaya özel yazılması gereken kodun miktarı toplam yazılan kodun %10-15’i civarında oluyor. Bu durumda yazılması gereken kodun %85’i tekrarlanan kod parçacıklarından oluşuyor. Bu şekilde bir yaklaşımla deneyimli yazlımcıların değerli zamanı standart tekrarlayan kodlarla uğraşarak harcanmıyor ve uygulamaya özel yazılan farklı kodlara daha fazla yoğunlaşıp çok daha kaliteli kodun çıkmasına yardımcı olunuyor. Aynı zamanda yazılımcılar için de sıkıcı standart kodlarla uğraşmaktansa daha yeni ve kendilerini geliştirebilecekleri kod yazmak motivasyonlarında da olumlu etki yapıyor. Bu şekilde bir yaklaşım, kod yazma maliyetlerinde genellikle problem yaratan ama hem yazılımcı hem de şirket için yedekli çalışmanın verdiği rahatlıkla paralel programlama tekniği gibi daha maliyetli metodolojilerin de aynı anda kullanılabilmesine imkan sağlıyor. Sonuç olarak “low code” sistemlerini kullanmak yazılımcıların değerlerini düşürmüyor, tam tersine yeni nesil yazılım dilleri ile deneyimlerinin artmasına neden oluyor, yazılım geliştirme takımlarının daha hızlı ve güvenilir uygulama yaratmalarına liderlik etmelerine neden oluyor.

Bu platformlara yapılan en büyük eleştiri, uygulama yazılımlarının karışıklığı ve tekrarlayan kodların oranının sanıldığı kadar az olmaması olarak dillendiriliyor. Belki özel, niş sayılabilecek uygulamalarda bu durum sözkonusu olabilir ama hemen her şirketin kullandıkları web tabanlı uygulamalarda, portal uygulamalarında hatta birçok mobil uygulamalarda tektarlayan kod miktarı oldukça yüksektir. Zaten sektöre bakıldığında da bu gerçeğin yansımaları görülebilir. Mesela her türlü mobil platform için tek kod üreten bir çok altyapı uygulaması mevcut, bunlar da bir anlamda low code uygulama geliştirme platformları olarak görülebilir. Birçok uygulama benzer API’lar yani uygulama programları arayüzleri kullanıyor ve genellikle de en yaygın birkaç standart üstüne kurulmuş. Bu araüzlerle ilgili kodların sürekli yeniden geliştirilmesine gerek yok, sadece gerekli iletişim parametrelerini tanımlamak yeterli oluyor, geri kalan kısmı low code platformu hallediyor.

OutSystems 2018 Uygulama geliştirme raporunda 1000’e yakın IT müdürü ile yapılan araştırmaya göre low code platformları en çok B2B ve B2C portallerinde, web uygulamalarında, intranet uygulamalarında, tüm mobil uygulamalarda ve varolan eski sistemleri yenileme ve değiştirme işlerinde rahatlıkla kullanıdığı belirtilmiş. Pazarda 80 den fazla low code platformunun da mevcut olduğunu tekrar hatırlatalım. Bunlar normal olarak yapabildikleri, yetenekleri ve kapasiteleri bakımından birbirinden farklılaşıyor, işin neviine ve beklentilere göre seçim yapmak gerekir. Çağımızda uygulama programlarına duyulan ihtiyaç hızla artmakta ve genellikle de yazılımcılarımız bu gereksinimlere çok değişik nedenlerden ötürü zamanında cevap vermekte pek başarılı olamıyorlar, bu durumlarda low code uygulama geliştirme platformlarını kullanma fikrini işlerini ellerinden alacak bir uygulama olarak değil işlerini daha hızlı ve sorunsuz yapmalarına destek verecek bir uygulama olarak görmeliler, bu herkes için daha faydalı bir yaklaşım olur. Esasında dünya bu konuda da çok önceden harekete geçmiş ve önemli yol almış, biz biraz arkadan geliyoruz ne yazık ki.