Murat Uysal

girişimci / matematik mühendisi / yazılım uzmanı / hislerim ve deneyimlerimden yazılar

Bir yazılım projesini sıfırdan başlarken doğru başlamak nasıl mümkün

İlginçtir, yazılım projeleri genelde saç baş yoldurur kodlarla doludur. En mükemel büyük projelerde dahi bu durumu gördüğüm günden sonra bu mesleğe bakışım çok değişti. Yapılan onca plana programa rağmen berbat kodlar ile hayatımızı önemli derecede etkileyen işler yapılmaktadır.

Bunun en temel nedeni başta birşeyleri doğru öngörememiş olmak elbette. Ancak tek sorun bu olsa idi ve biz gerçekten herşeyi doğru yapsaydık çözüm noktası bu olurdu. Ancak değil, biz gerçekten kötü kod yazarak projeleri tamamlıyoruz. Sonra da süper projeler olarak lanse ediyoruz. Alakası bile yok hepsi gerçekten kendi içinde kötü kodlarla doludur.

Başlarken doğru başlamadığınızda doğru bitmesi de imkansızdır. Doğru başlamamak derken neyi söylüyorum mesela, parametrik olması gereken yerler parametrik olmalıdr. Yazılım değiştirmeye kapalı geliştirmeye açık olmalıdır. Bir istek gelince kodu değiştiriyorsanız bu kötü kodlamanın sonucudur.

Örneğin bir yazılım projesinin temelinde olmazsa olmaz şeyler vardır. Sistem ayarları bölümü ve loglama mekanizması en önemli iki modüldür bence. Çünkü elbette hatasız kod yazılmayacaktır ve bir hata olduğunda onu çözmek için her kritik adımı loglamak gerekir. Ayar yönetimi de yazılımın anlık olarak kriz anlarında bizi koruyacak bir emniyet subabıdır. Örneğin bir eticaret sitesinde satışları geçici olarak durdurmak isteyebilirsiniz. Bu durumda bir tuşla bunu yapabilir olmanız gerekir.

Dil desteği de temel bir modüldür. Bu modül de olmazsa olmazdır ve gerçekten her alan her field dil desteğine sahip olmalıdır.

Cache mekanizması da hayati öneme sahiptir. Doğru alanı doğru cache ile tuttuğunuzda projeniz gerçekten verilmli çalışır.

Bildirim modülü de en önemli diğer modüldür. Örneğin sistemde stok azaldığında o sistemi kullananlara bilgi gidebilmelidir. Bir kullanıcı kendisine sistemin neler söylediğini görebilmesi gerekir. Bu sebeple de bildirim modülü çok değerlidir.

Ayrıca kritik hatalar veya hack girişimi şüphesi olan işlem denemelerinde teknik ekibe otomatik mail giden bir mekanizma da olmazsa olmaz bir özelliktir.

Yetkilendirme de temel özelliktir. Bir projenin her sayfasına istediğim zaman bir role yetki verip o yetkiyi alabilmeliyiz. Bu sayede düzenle ekle ve sil gibi tüm adımların erişim kontrolleri sağlanabilir. Ayrıca bu rol yetkileri hangi zaman diliminde kime verilmiş veya alınmış yine loglamak gerekir.

Bir projeyi bu standart özellikler gözetilerek geliştirmek oluşacak problemlerin çok daha hızlı çözülmesini sağlayacaktır. Ancak maalesef genellikle projeler ana özelliklere odaklanarak başlanıldığı için sonradan bu hayati kurguları yazılıma kazandırmak hem zor olmakta hem de yazılımın ana özelliklerinde de aksamaya sebep olabilmektedir.

Doğru başlanmış kaliteli projelerde çalışma hayali ile yazılım mesleğimize devam etmek istemesek de hayatın gerçekleri bizi bu şekilde çalışmaya mahkum etmiştir. Doğru projelerde kodlamak üzere teşekkürler.
Comments are closed