Biz bu yazıyı kaleme alırken Türkiye’nin önemli kurumlarında, büyüyen kobilerde, teknoparklarda, startup ve internet girişimlerinde sayısız özel yazılım projesi devam ediyor. Fikirler, hayaller, gerçek ihtiyaçlar, mecburiyetler, aciliyetler eşliğinde uzun uzun ve sabırla yazıyoruz.

Yazılım sektörü daha fazla gözle görünür bir iş olsaydı ortalık gerçekten büyük bir şantiye alanı gibi görünürdü. Yeni girişimlere, yenilenmelere, yeni versiyonlara ve bu sefer bambaşka olmayı sağlayacak iddialı çıkışlara doğru gizliden gizliye derinden geliştirmeler halindeyiz. Yazıyoruz, sabırla tamamlanmasını bekliyoruz, bu sefer çok güzel olacak diyoruz. Projeler bir taraftan laboratuvar koşullarında yazılım mimarisinin öğretileri ile abartılı sayılabilecek yorumlara göre üretiliyor bir taraftan da işi akışında toparlamaya çalışan özverili çabalar eşliğinde birinci faz hedeflere yetişmeye çalışılıyor.

Yazılım bitmeyen bir süreçtir” ama bazı projeler hiç tamamlanamıyor bile. Bazı projelerin ömrü çok kısa. Gün yüzüne çıktıktan sonra ya amaca hizmet veremeyeceği fark ediliyor veya sürdürülemez olduğu anlaşılıyor. Bazı projelerde hedeflenen ile ortaya çıkan arasındaki fark yazılımcılar, kullanıcılar ve yatırımcılar arasında büyük uçurumları tamda lansman yapılacakken, final sahnesindeyken anlaşılıyor.

İşte bu yazıda bu bambaşka üretim yolculukları için başarı ve başarısızlık hikayelerine konu olan kritik noktaları kaleme almaya çalıştım.

Analizden çalmayın.

Kimi projelerde iki ileri bir geri gel gitler eşliğinde dalgalanıyor. Bitmek bilmeyen revizyonlar, aslında tam olarak öyle kastedilmeyen ayrıntılar ve kapsamı allak bullak eden istisnalar. Ah o ihmal edilse de sonra nasıl olsa bir çaresine bakarız diyeceğimiz istisnalar. Ah o neden bunu en başında hesaba katıp düşünmedik diye pişman olduğumuz istisnalar… 

İstisnalar tam bir yol ayrımı ve abartıdan uzak sağduyulu analistler eşliğinde rota belirlenmeli. Kapsamı yazıp çizmek, hedeflenen çıktıları somutlaştırmak aslında kısaca ne istediğini bilmek…

Bir yazılım projesinin belki de başına gelebilecek en güzel şey en başından netleştirilmiş olmasıdır. Sonuçta netleştirilen tariflerin matematiği kurulabilir. Planlama ve analizden çalınan her vakit, yazılım projelerinde misliyle geri döner. O yüzden maliyet bahanesiyle analizden kaçmak çok daha pahalı bir yolculuktur.  

Bugün yazılımda senaryoyu, kilometre taşlarını, diyagramları ve ilişkisel bütünlüğü görselleştirmek ve ekip arasında bilgiyi taşımak için harika araçlardan faydalanmak gerekli.

Doğru proje ekibi kurun ve onlara iyi bakın.

İyi bir ekip projenin en temel parçası. İşi bilen, deneyimli ve çalışkan bir ekibiniz varsa yazılım üretmek inanılmaz keyifli bir hale gelebilir. İyi bir ekip için takımın doğru oyunculardan kurulması ve doğru motivasyon eşiklerinin tanımlanması gerekli. Takım liderleri ve az deneyimli yazılımcı dengesinin iyi kurulması gerekir.

AR-GE gerektiren bölümler ve can alıcı kritik kurguları tasarlayan kişilerle, tekrar eden bölümleri kodlayan kişileri ayrıştırmak gerekiyor. Arka tarafta dönen karmaşayı ve senaryoları (backend diyelim) yazılım kodlarına dönüştüren ile Ön tarafta son kullanıcıların temas ettiği ekranları ve etkileşimleri (frontend diyelim) kodlayan kişilerin ayrışmasında fayda var. Bazen de bu iki parçayı birbirine kaynaştıran ve iki açıdan da bakabilen insanlar gerekiyor (fullstack developer diyelim).

Yazılımda tamamlanan iş parçalarının gerçekten hedefle ne kadar örtüştüğünü teknik açıdan denetlemek bir üretim kültürü olarak yazılım geliştirme sürecine egemen olmalı. Testleri sonraya bırakmak birde ilgili parçayı kodlayan yazılımcıya yaptırmak en sık yapılan hatalardan birisi. İyi yazılımcılar bile iyi tester değildir.

Burada en çok dikkat çekmek istediğim şey: Yazılım ekibinde ortalama kaliteyi artıran “yetenekli oyuncular”, diğer arkadaşların da performansını yukarı taşıyor. Vasat ve heyecanını kaybetmiş yazılımcılar ekibinde motivasyonunu aşağıya çekiyor. Unutmamak gerekir ki yazılım, tutku ve heyecan ile yapılabilen bir iştir.

Kimi projeleri geliştirirken kilit roldeki adamlar oyundan düşer. İşin en başından bu yana bütün derinlemesine bilgi kaynağı ve derinlemesine detay yumağı hafızadan eksilir.

Böylesi kopuşların projeyi ne kadar geri götüreceğini kestirmek gerçekten çok zor. Meslek hayatımda böyle durumlar için dokümantasyon ile süreci yazılı hale getiren ve yolculuğun izini tutanlara pek rastlamadım. Projenin kapsamı genel olarak ekibe yayılıp sindirilmediği için kopukluğun hasarı bazen “yıkıcı” olur bazen de “sil baştan” dedirtir. Proje takımını risklere önlem alacak şekilde en baştan doğru kurmak dokümantasyonun kurtarıcı katkısını hafifletebilir ama yine de analize, planlamaya ve dokümante etmeye alışmamız gerekiyor.

Güncel Teknoloji, Yazılım Mimarisi 

Yazılım üretirken kullandığımız teknoloji bileşenlerini tercih etmek son derece zor. Neyi seçerseniz bir süre sonra, tercihinizin neden olduğu avantaj ve handikaplar öteki seçeneklere doğru insana ‘acaba’ dedirtiyor. Burada tek doğrunun olmadığını bilmek lazım. Yeter ki seçeneklerin kapasitelerini tanıyarak yarının geçerliliklerine göre uygun seçimler yapılmış olsun. Yeter ki dünyadaki geçmiş deneyimlerden faydalanarak, projenin ölçeği ile eşleşen seçimler yapılmış olsun.

Yazılım mimarisi konusunda danışmanlık alan, kullanılacak teknik metodolojiler üzerine yıllanmış deneyimlerden faydalanan hiç kimsenin pişman olduğunu görmedim. Sadece mevcut bilgisine yaslanarak yola devam edenlerin geri döndüğüne defalarca şahit oldum.

Yazılım geliştirme hızla yenilenen bir ekosistem. Amerika’yı en baştan keşfetmemek, başka akıllardan faydalanmak, hazır yapıları sıfırdan üretmemek, dünyada başarısı ispatlanmış trend kullanımları devreye almak (best practice), açık kaynak kodlardan yararlanmak kaçınılmaz. Aynı şekilde yazılım kodlarının okunurluğu, kalitesi (solid prensipleri vb.), sürdürülebilirliği ve performansının ölçülmesi gerekiyor. Yazılım ekibi tamamlanan iş parçalarını teknik testten geçirmeyi erteledikçe, riski büyütüyor demektir. Test ve ölçümleme (devops, optimizasyon vb.), iş kültürü olarak merkeze konulmalı.

Kullanışlı değilse olmamış demektir.

Bugün sıkça kullandığımız yazılımlar bizi bazı kalite seviyelerine alıştırdı. Mobil uygulamalar ve global yazılım araçları sunduğu pratik ve akıllı etkileşimlerle standartları yükseltti ve geliştirilen çözümler bu seviyenin uzağında kaldığında kolayca kendini ele veriyor. Bu yüzden tasarım ve arayüz etkileşimi bamteli haline geldi.

Hızlı ve akışkan olmayan, pratik kullanım konforu sunmayan yazılımlar yaşayamıyor. Bu yüzden yazılımcıların “çalışıyor işte” dediği fonksiyonun sadece doğru çalışması değil hızlı, anlaşılır ve doğru tepkiler eşliğinde “kıvamlı çalışması” gerekiyor. Bugün ekip halinde kullanıcı deneyimi dikkate alınmadan yapılan işler geçersizdir.


İyi tasarlanmış kullanışlı platformlar kendisini sevdirir, kullanıcının sistem ile bağını güçlendirir, toleransı artırır, atfedilen değeri artırır.

Dışarıdan bakan bir göz

İnşaat sektöründe yüklenici firma ile denetçi firmanın başka başka olması gibi yazılım projelerinde üretici ekip ile denetimde bulunan ekibin ayrışmasının büyük avantajlar sağladığına inanıyorum.

Projenin takvimi, ilerleme hızı, tamamlandığı düşünülen parçaların kontrolü, kodların denetimi, uygulamanın başka platformalar üzerinde test edilmesi, üretim boyunca standartlara bağlı kalınması gibi birçok açıdan sürecin dışardan bakan bir gözle denetlenmesi yüksek performans katkıları sağlıyor. Projede yolun neresinde olduğumuz ve hangi hızla devam ettiğimizin düzenli olarak kontrol edilmesi herkese iyi gelecektir.

Sadece hayata geçirmek değil, sonrasında iyi yaşatmak.

Yazılım projelerinde yazılımcılar, kullanıcılar ve yatırımcıların odağında işin bitmesi vardır. İşin başarıyla bitmesi şüphesiz çok güçlü bir motivasyon olmakla birlikte birde doğacak bebeğin nasıl yaşayacağı ve sağlıklı büyümesi için hangi koşulların sağlanması gerektiğinin de hesaba katılması gerekli.

Bütün enerjisini işin bitmesine kadar ayarlayanlar, asıl işin yazılım bittikten sonra başladığını gördüğünde sürecin devamını taşıyamıyor. Yazılım bittiğinde diğer birimlerin devreye girmesiyle birlikte gerçekle yüzleşmiş oluyoruz. Pazarlama, reklam, iş geliştirme, insan kaynakları, iletişim, yatırım gibi başka başka disiplinler ile süreci test ederiz. O yüzden hatırlarız ki “yazılım sadece yazılımdan ibaret değildir.”

Dönüşüm vakti 

Bir de er ya da geç hazırlanmış tamamlanmış, kullanıma geçmiş, hizmet sağlamış işler var. Yatırımın karşılığını az veya çok sunan hayata geçen işler. Böyle projelerde bir süre iş gördükten sonra, yaşlanıyor ve yenilenmeyi bekliyor. Adeta sıvası dökülüyor, çatısı akıtıyor ve etraftaki modern seçenekler içinde beni yenile diye bağırıyor.

Bir taraftan da yaşlanan yazılımların bazıları süreç içerisinde geçirdiği evrimlerden sonra öylesine kompleks, öylesine kritik bir hal alıyor ki kimse dokunmaya yenilemeye cesaret edemiyor.

Dönüşümün nasıl sağlanacağı, dataların aktarılması, zamanında ön görülüp kullanılmayan bölümlerin projeden çıkartılması ve güncel ihtiyaçlara göre revize edilen senaryoların sisteme eklenmesi gibi bir çok başlık ancak deneyimli mühendislerle yürütülmeli. Projeleri evrimleştirirken dışardan bakan bir göz ve danışmanlar ile çalışmak, kapsamın çerçevenin netleştirilmesini, proje takvimini ve nihayetinde maliyetleri öngörülebilir hale getiriyor.

RİTMA olarak proje ekibinin kurulması, ilave yazılımcı kaynağı sağlama, iş analizi ile projelendirme çalışmalarının yürütülmesi, yazılım ekran tasarım ve arayüz geliştirme çalışmaları gibi bir çok başlıkta hizmet sağlıyoruz. Proje denetimi yaparak yolculuğun hedefin neresinde olduğunu, yapılan çalışmaların bağımsız denetimini sağlıyoruz. Saha tecrübemizle projeleri hızlandırıyoruz, zaman kazandırıyoruz. Projenin yazılım kalitesinin denetlenmesi ve uzun yıllar boyunca çalışacak güçlü sistemlerin kurulmasında aktif rol üstleniyoruz.

Bizim işimiz ayrıntıların özenle birbirine bağlanmasıyla oluşuyor. İşimizi seviyoruz. Yüksek hedefli projelerin güçlü yazılım partneriyiz.

Bankacılık, Telekomünikasyon, Bilişim sektörlerinde yazılım uzmanlığı ve yöneticiliği yaptı. Ritma Teknoloji'nin kurucu yöneticisi. Türkiye'den global yazılım markaları çıkacağına inanıyor.

Instagram