BT liderleri, tercih ettikleri araçları kullanarak organizasyonel ve coğrafi sınırlar arasında etkili bir şekilde çalışabilen işlevler arası ekipleri mümkün kılmak için çabalar.
CIO, insan yönetimi ve ekip oluşturmaya yönelik olumlu bir yaklaşımla birlikte doğru araçlar, yapılar ve metodolojilerle yazılım geliştiriciler için olumlu bir çalışma ortamı yarattığında inanılmaz şeyler olur.
Iterate.ai’de araştırma ve geliştirmeden sorumlu başkan yardımcısı John Selvadurai yıllar önce yazılım geliştirici olarak çalışmaya başladığında, geliştirici deneyimi kimsenin umurunda değildi. “Benim gibi geliştiricilerin, koşullar ne olursa olsun sadece lanet olası kodu yazması bekleniyordu. Herhangi bir sorunum olursa, onları kendim çözmem gerekiyordu… ya da sadece onlara katlanmam gerekiyordu” diyor.
Durum şimdi çok farklı. “Bugün, bir geliştirici işini olabildiğince verimli ve etkili bir şekilde yapmak için yeterli araçlara sahip değilse, bu kesinlikle kabul edilemez – olması gerektiği gibi. Kuruluşlar, geliştiricinin nasıl hissettiğine ve araçlarının ne kadar hızlı, kolay ve duyarlı olduğuna odaklanmalıdır” diyor Selvadurai.
Geliştiriciler, kariyer yollarını belirli kuruluşlara yönlendirme eğiliminde olduklarını, çünkü bu kuruluşlarda bulunan geliştirici deneyimi ve araç ortamıyla çalışmaktan heyecan duyduklarını söylediler. Birçoğu için “geliştirici deneyimi en az maaş ve yan haklar kadar önemli hale geldi” diyor.
İyi bir geliştirici deneyimi, gelişmiş geliştirici ve kullanıcı üretkenliği anlamına gelebilir. Microsoft’a göre, geliştirici deneyimi, bir geliştiricinin bir değişikliği uygulamak için gereken temel görevleri gerçekleştirmesinin ne kadar kolay veya zor olduğunu ifade eder. Olumlu bir geliştirici deneyimi, bu görevlerin ekibin başarması için nispeten kolay olduğu anlamına gelir.
Geliştirici ihtiyaçlarını belirleme
Microsoft, geliştirici deneyiminin dört aşamasını tanımlar. İlk olarak, yazılım geliştiricilerin kodlamada yaptıkları değişikliklerin sözdizimi hatası ve derleme hatası içermediğini doğrulayabilmeleri gerektiğini söylüyor. Ardından, test aşamasında, geliştiricilerin gönderdikleri kodun tüm otomatik testleri geçtiğini doğrulaması gerekir. Bir sonraki aşama, kodun konuşlandırılmış bir ortamda nasıl çalıştığını test etmek için uçtan uca simülasyonu içerir. Ardından, bir yazılım geliştiricinin bir hata ayıklayıcı eklediği, kesme noktalarını ayarladığı ve kaynak kodun içinde neler olup bittiğini görmek için kodda adım adım ilerlediği hata ayıklama aşaması vardır.
Microsoft, iyi bir geliştirici deneyimini artan hız ve kalite ile ilişkilendirir. Bu, geliştiricilere, bir geliştirici veya test ortamı oluşturmak için gereken süreyi azaltmak gibi katma değeri olmayan etkinliklere daha az zaman harcama fırsatı vermek anlamına gelir.
Codilime mühendislik direktörü Krzysztof Wróbel, geliştirici deneyiminin üç ayağını öneriyor: kullanılabilirlik, bulunabilirlik ve güvenilirlik.
Confluent’in küresel saha CTO’su Kai Waehner, BT liderlerinin en iyi geliştirici deneyimini sunabilmelerini sağlamak için çabalarken hangi uygulama programlama arabirimlerinin (API’ler), yazılım geliştirici kitlerinin (SDK’ler), yazılım kitaplıklarının ve kod bağımlılıklarının rol oynadığını incelemesi gerektiğini savunuyor. .
“Geliştiricilerin artık mikro hizmet mimarileri ve veri ağı gibi teknolojilerden yararlanabilmesiyle, geliştirici deneyimi yolculuğunun belirli bir noktasında belirli bir ihtiyaca yönelik çözümler sunmak için daha fazla alan var” diyor.
Waehner için, gelişmiş geliştirici deneyimi sunmaya yönelik bir yazılım geliştirme ortamı, en iyi uygulama geliştirme araçlarını seçmekten daha fazlasını gerektirir.
“Bir sorun için belirli teknolojilerin, API’lerin ve SDK’ların doğru kombinasyonunu belirlemek ve dağıtmakla ilgili. Oradan, bunları geliştiricileriniz için tutarlı bir referans çerçevesinde birleştirebilirsiniz” diyor. “Geliştirici deneyimi ortamının, geliştirme ekibinin yanı sıra söz konusu projenin becerilerini, niyetlerini ve boyutunu yansıtması gerektiğinden, bu her şirket için benzersiz bir zorluktur.”
Esnek ve basit
Confluent’e göre 2023 veri akışı raporu“sistem standardizasyonu” Birleşik Krallık’taki BT karar vericilerinin %45’i için yüksek bir önceliktir ve bu tutarlılığın yapı taşları, geliştirici deneyiminden sorumlu karar vericiler, mühendisler ve geliştiriciler tarafından atılır (Bakınız Lego Group yazılım geliştirme tutarlılığını nasıl sağlıyor kutusu).
Waehner için esneklik ve basitlik arasında bir denge vardır ve daha az deneyimli ekip üyelerinin ihtiyaç duyabileceği erişilebilirlikten ödün vermeden uzman geliştiricilere ihtiyaç duydukları özel araçları sağlar.
Venafi’de yerel bulut çözümlerinin başkanı Matt Barker ve Venafi’nin baş çözüm mimarı Steve Judd, yazılım geliştiricilerin genellikle bir projede bir sonraki adımın ilerlemesinden önce tamamlanması gereken sonsuz küçük görevlerin uzun süreli sorunuyla uğraştığını söylüyor.
Bilgisayarlar ilk icat edildiğinden beri şirketler, self servis araçlar oluşturarak bu yükü azaltmaya çalıştı. Barker ve Judd’a göre, günümüzün daha hızlı geliştirme ve maliyet etkinliklerini artırma ihtiyacıyla birlikte, self servis araçların geliştirici deneyimini nasıl geliştirebileceğine ve yeniliği nasıl hızlandırabileceğine odaklanılıyor.
“Kuruluşlar, geliştiricilerin aralarından seçim yapabileceği onaylanmış ürünlerden oluşan bir satış makinesi sağlayarak, geliştiricilerin standartlaştırılmış şablonlar ve hizmetler kullanmasını sağlayabilir” diyorlar.
Süreçler ve portallar
Bir geliştiricinin zamanının %80’i kod incelemeleri ve destek biletleri gibi etkinliklere harcanabilir. Perforce CTO’su Rod Cope, “Süreçler, kod yazmayla ilgili tüm faaliyetlerin bir parçasıdır” diyor. Cope’un deneyimine göre bu ek yük, evrensel olarak yeterince anlaşılmamıştır.
Örneğin, BK hükümetinin SafeIT programından geliştirilen, güvenli, emniyetli kodlamaya ilişkin Misra kılavuzunu ele alalım. Cope, “Pek çok geliştirici, elektronik tabloları veya Word belgelerini doldurmak için hâlâ çok zaman harcıyor, ancak yıllardır ağır işleri kaldırabilecek araçlar var” diyor.
Deneyimine göre, ekip liderlerinin kodlama dışı çabanın nerede otomatikleştirilebileceğini veya en azından daha az hantal hale getirilebileceğini görmek için bakması gereken başka alanlar var. “Bu ek yükün mümkün olduğunca çoğunu ortadan kaldırmak, minimum düzeyde yapmak için acele etme isteğini azaltır. Bunun yerine, kullanıcıların gerçekten istediği sağlam bir şey yaratmaya odaklanacak kapasite ve enerji var” diye ekliyor.
Cope’a göre, bir şeyleri aramak veya organizasyonun başka bir yerinde var olan bir tekerleği yeniden icat etmek için hala çok fazla zaman harcanıyor. Cope, BT liderlerini geliştiricilerin, geliştirici portalları kurmak gibi her şeyi arayabilecekleri tek bir yer olduğundan emin olmaya çağırıyor.
Topluluk bağlantıları
Geliştirici deneyiminin BT karar vericileri tarafından sıklıkla dikkate alınmayan yönlerinden biri, belirli bir geliştirici aracı etrafındaki geliştirici topluluğunun boyutu ve gücüdür. Iterate.ai’den Selvadurai, belirli bir geliştirici aracının topluluk yönünün, sağladığı deneyimin hafife alınan ve temel bir yönü olduğuna inanıyor. “Herhangi bir inceleme sürecinde yaptığım ilk kontrollerden biri bu” diyor.
Selvadurai’ye göre, yazılım geliştiricilerin aynı tür sorunlar üzerinde çalışan insanlardan oluşan bir toplulukla bağlantı kurma ve sorunları çözmede birbirlerine yardım etme yeteneği, geliştirici deneyiminin merkezinde yer alıyor. “Bir geliştirici takılırsa, sorunları çözmede yardım ve destek almak için topluluk forumlarında her zaman soru sorabilir” diyor.
Bu nedenle, BT liderlerinin geliştirici deneyimini geliştirmek için uygulamaya koyabilecekleri bir dizi araç ve teknoloji olsa da, geliştiricilerin işbirliği içinde sorun çözme ve geniş bir yazılım geliştirici topluluğunun parçası olabilmeleri çok önemlidir.