Yazılım Geliştirme Trendleri 2017/1: Sürekli İnovasyon & Açık Kaynak
Yazılım teknolojilerinde çok sert ve hızlı gelişmelerin olduğu bir dönemden geçiyoruz. Ve öyle gözüküyor ki bu geçici bir dönem değil. Sürekli inovasyon kalıcı ve standart oluyor. Yaşanan gelişmelerin büyüme hızının da büyüdüğünü (büyümenin ivmelendiğini) gözlemleyebiliyoruz.
Eskiden, öğrenilen bir teknik/yöntem/pattern, güncelliğini uzun süre (4–5 yıl) koruyabiliyordu. Örneğin ASP.NET Webforms öğrenen birisi, uzun süre piyasada modern sayılabilecek mimariler tasarlayabiliyor veya modern sayılabilecek bir mimaride kendisine iş bulabiliyordu. Artık böyle bir teknikten/yöntemden veya patternden bahsetmek mümkün değil.
Burada bahsettiğim değişim, sürekli bir yenisi çıkan — aynı şeyi öyle değil de böyle yapan — framework’ler değil, daha temeldeki, ayak uydurmadığınızda ürün kalitemizin geride kalacağı paradigma değişiklikleri.
İtici Güç: Ekosistemin Aşırı Büyümesi ve Yeni Nesil İşbirliği
Gücünü yazılımdan alan firmaların piyasa değeri her geçen gün artıyor. Amerikan borsalarında üst sıraları neredeyse domine ettiler. Rekabet avantajı yazılım olan firmalar endekslerde sürekli üst sıralara tırmanıyor. Asıl rekabet alanı yazılım olmayan (geleneksel) firmalar bile, yazılımı artık birincil rekabet alanı olarak belirlemeye başladı. Tüm şirketler daha iyi ürün geliştirmenin olmazsa olmazının yazılım olduğunu farkında. Pizzacısından araba üreticisine kadar tüm şirketler, yazılım üzerine ARGE faaliyetlerini hızlandırıyor, kaynaklarını arttırıyor.
Rekabet alanlarını yazılım becerilerinde gören firmalar, en büyük yatırımı da yazılım alanlarına yapıyor. Google, Facebook, Netflix, IBM, Intel, Microsoft, Walmart, Amazon gibi devler, eş zamanlı olarak yüzlerce projeyi fonladıkları gibi, birçok zaman bir araya gelerek işbirliği yapıyor ve birlikte projeler geliştiriyorlar.
Dev şirketler işbirliği yaparken, çoğu zaman bu işbirliğinin zeminini “Açık Kaynak Kod” ve “Standart Spesifikasyonlar” oluşturuyor. Çoğu zaman bu işbirlikleri, diğer açık kaynak kodlu yazılım örgütlenmelerine (Apache Software Foundations, Eclipse Foundation, Mozilla Foundation, Linux Foundation…) de sıçrıyor. Projeler kimi zaman el değiştiriyor, liderlikler değişiyor.
Ancak en önemlisi, bu özgür ortam, bir alandaki gelişmelerden, kısa sürede başka alanlarda da istifade edilmesine ortam sağlıyor. V8 gelişirken V8 tabanlı Node, Node gelişirken Node tabanlı Electron gelişitiriliyor.
Artık şirketler teknolojiye sahip olmanın değil, ona hakim olmanın (ondan yararlanabilmenin ve onu geliştirebilmenin) ve liderliğini yapabilmenin yarışı içerisinde.
O kadar geniş bir cephe oluştu ki, kimsenin aklına artık bir cephenin (Veritabanı, Mobil, Security ..) sahibi olabilmek gelmiyor. O cephede doğru ata (doğru projelere) bugünden nasıl oynarım, geleeğin teknolojilerinde bugünden nasıl konum alabilirim, onun stratejisini yapıyorlar. Şirket, vizyonları ve hedefleri doğrultusunda hangi projeleri desteklemeliyiz, hangilerini yakından izlemeliyiz, hangilerini aktif kullanmalı, hangilerine liderlik etmeliyiz gibi soruların cevapları şirketlerin stratejilerini oluşturuyor.
Hem ekosistemin büyük bir hızla büyümesi, hem de ekosistemdeki işbirliği anlayışının öne geçmesi, yazılım teknolojisinin benzersiz bir hızla gelişiyor olmasına neden oluyor. Bu da yazılım geliştirirken kullandığımız herşeye büyük bir hızla yansıyor.
Sürekli İnovasyon ile Değişen İdeal Yazılımcı Profili
Diller, patternler, paradigmalar, veri türleri, saklama biçimleri, mimariler ve protokoller değişiyor. Tüm değişiklikler daha iyi ürünler geliştirilmesini sağlıyor.
Ancak gelişmeler o kadar hızlı ve geniş bir alanda seyrediyor ki, “javascript fatigue” gibi yeni kavramlar ortaya çıktı. Bazı yazılımcılar bu yenilikleri takip etmekte ciddi anlamda zorlanıyor. Sürekli öğrenme süreci kimilerini fena halde yıpratıyor. Buna farklı nedenler öne sürerek karşı çıkıyorlar. Bir defa öğrenip, yüz defa uygulamak istiyorlar. Malesef bu dönem artık sona erdi/eriyor.
Sürekli öğrenme artık bir norm. Bunu başaramayan, zamanının büyük bir bölümünü yeni teknikleri öğrenmeye ve deneyimlemeye ayırmayan (veya ayıramayan) geliştiriciler, büyük bir hızla geride kalıyor. Legacy code’un yerini, Legacy coder’lar alıyor. Bu yüzden bu yeni dönemin en başarılı yazılımcıları, kendi kendine ve hızlı öğrenme kapasitesine sahip olan, gelişmeleri sürekli takip eden, okumayı seven, kendini güncel tutan, meraklı ve sabırlı kişiler.
**
Eğer sıfırdan yazılım kariyerine başlamak istiyorsanız, 3 aylık yoğun ve hızlandırılmış programlar düzenliyorum. Bilgi için: https://www.yenikodyazilimkursu.com/
—
Test Invite online sınav sistemi ile tanışın: İşe alım sınavları, Genel Yetenek Testleri ve İngilizce Seviye Tespit Testleri
Video kayıtlı ve zorunlu tam ekran ile güvenli online sınavlar yapmak için: https://www.testinvite.com/lang/tr/online-sinav-sistemi.html