Yazılım Geliştirmenin Üç Aşaması

Reengen
reengen
Published in
2 min readMar 15, 2018

Kod yazmaya başlamadan önce aklımızdan pek çok şey geçer: Hangi yazılım kütüphanelerini kullanmalı? SQL mi NoSQL mi? Veritabanı şeması nasıl olmalı? Çok istek gelebilir diye nasıl bir önbellek yapısı kurmalı? Mikroservis mimarisi mi kullanmalı? Kod nasıl organize edilmeli? Ve daha neler neler…

Bu soruların cevapları önemli tabii ki ama kullanıcı gereksinimlerinin sürekli değiştiği bir zamanda yaşıyoruz. Çoğu zaman çözmeye çalıştığımız sorunlar net bir şekilde tanımlanmamış oluyor. Bu yüzden bütün planlamaların başta yapıldığı geleneksel ’’planla > kodla > test et’’ yazılım geliştirme modeli artık pek tercih edilmemekte. Bunun yerine müşterilerden sık sık geri bildirim alınan ve bu geri bildirimlere göre şekillendirilen yazılımlar geliştiriyoruz. Bu da bizi, teknik kararların bir kısmının sonraya bırakılabileceği bir sürece götürüyor:

Fotoğraf Ash Edmonds

Aşama 1: Önce bir çalışsın
Bu aşamayı Stephen King’in yeni bir kitabın ilk taslağını yazma tarzına benzetiyorum. King, ilk taslakları, cümle yapısına, güzel kelimeler kullanmaya aldırmadan yazabileceği en hızlı şekilde bitirmeye çalıştığını söylüyor. Önemli olan, sonuç ham da olsa, ortaya evrilip çevrilebilecek bir ürünü hızlı şekilde çıkarmak.

Yazılım geliştirmede de mimariye, kodun güzelliğine çok takılmadan kullanıcılara gösterebileceğimiz bir prototipi bir an önce çıkarabilmeliyiz. Varsın bazı yerler hatalı, performans kötü olsun. Bütün bunlar ileride düzeltilebilir. En iyi kod yazılmamış koddur derler. Kullanıcılardan gelen geri bildirimlere göre daha önce bizi zorlayacağını düşündüğümüz bazı yerler üzerinde uğraşmaya gerek kalmayabilir, daha önce hesaba katmadığımız büyük işler de çıkabilir.

Aşama 2: Doğru çalışsın
İlk aşamayı başarı ile atlattıysak, artık hatalı ve eksik yerleri düzeltme zamanı gelmiş demektir. Bu aşamada; arayüz kullanıcı dostu hale getirilmeli, otomatik testler kullanılarak her durumda doğru verileri döndüğümüze emin olunmalı, hata durumlarında “bilinmeyen bir hata oluştu” tembelliğine düşmeden kullanıcılara düzgün hata mesajları çıkmalı, güvenlik ihlallerine karşı gerekli korumalar eklenmelidir. Burası genelde en çok zaman harcanan aşamadır. Kolay gelsin!

Aşama 3: Hızlı çalışsın
Benim şahsen en sevdiğim aşama burası. Artık kullanıcılardan gelen geri bildirimlerle şekillendirilmiş, doğru çalışan bir yazılımımız var; ama muhtemelen performans konusunda bazı sorunlar yaşamaya, ya başladık ya başlayacağız. Optimizasyon zamanı!

Performans optimizasyonları yazılım geliştirenlerin ilk yapmak istedikleri şeylerin başında gelir; ama son aşamaya kadar beklememizin bir nedeni var: Geliştirdiğimiz yazılım olgunlaşmadan, kullanıcılar tarafından gerçek dünyada kullanılmadan, yazılımda nelerin yavaş, nelerin hızlı çalışacağını önceden öngörmek çok zordur. Dahası, bir yazılımı hızlandıralım diye bazı yerlerini istemeden bozmak kolaydır. O yüzden öncelikle yaptığımız değişikliklerin sonuçlarını karşılaştırmada kullanabileceğimiz oturmuş bir yazılımın olması çok önemlidir.

Evet, sadece üç aşamada iyi bir yazılım geliştirmek mümkün. Mesele, daha ilk günden kodu da güzel olsun, hızlı da çalışsın diye içimizde bas bas bağıran mükemmeliyetçi sesi kulak ardı edip mükemmelliğe aşama aşama ulaşmanın daha verimli olduğunu hatırlamak.

Author: Aycan Gulez, CTO at Reengen

--

--

Reengen
reengen

Energy IoT Platform is a PaaS Analytics Solution for Global Energy & Utilities Industry