SaaS Proje Geliştirmek

SaaS Nedir ?

Bununla ilgili internetten bir çok makale bulabilirsiniz. Ben çok basit bir kaç cümle ile anlatmaya çalışacağım. Türkçesi Hizmet olarak yazılım olan (Software as a Service)  yazılımların hizmet olarak sunulmasıdır. Ben bir hesap makinesi yapıp bu programı kullanıcıya sunmak yerine, hesaplama işlemi yapan kendi sunucumda bir servis yayınlıyorum ve kişilerin bu servise bağlanarak hesaplama işlemlerini yapmalarını sağlıyorum. Ve bunu kullanım süresi veya kullanım miktarına göre ücretlendiriyorum. Yazılımı hizmet olarak sunmuş oldum. Günlük hayatta farkında bile olmadan pek çok SaaS ürün kullanıyoruz. Bunlara örnek olarak, Spotify, Netflix, Microsoft Office 365, Google Uygulamaları (GSuite, G.Drive, Gmail…) verilebilir.

SaaS Mimarisinin Olmazsa Olmazları

Bir SaaS projesinin yürütülebilmesi için takip edilmesi gereken önemli elementler vardır. Kullanıcıların kendini güvende hissetmesi, verilerinin karışmaması, kaybolmamasına veya çalınmasına karşı güvenmesi gerekir. Diğer bir yandan kullanıcılar para ödediği bir hizmetten destek almak ister, bu hizmetin gelişmesini ister ve hizmete her yerden erişebilmek ister. Kullanıcılara hizmeti sorunsuz sunmak için bir veya birden fazla dikkat edilmesi gereken elementler vardır.

Gerekli Tasarım Elementleri

  • Multi-tenancy: Bir yazılım kopyası, tüm müşterilere, tüm hizmeti eşzamanlı olarak sunabilmeli. Multi-Tenancy Mimarisi hakkında bilgi edinmek için burayı okuyabilirsiniz.
  • Scalability: Bir proje boyutlandırılabilir olmalıdır. Yeni özellikler eklenebilmeli veya gerektiğinde özelliklerin çıkarılabilmesi gerekmektedir. Bunlar yapılırken de sistemin çalışmaya devam etmesi gerekmektedir. Bununla ilgili burayı okuyabilirsiniz.
  • Discoverability: Bir hizmeti sunarken olabildiğinde kolay erişilebilir olmalı. Kullanıcılar herhangi bir ek kurulum yapmadan veya zorlu bir yükleme süreci olmadan hizmete erişebilmeli
  • Reachability: Hizmet yazılımı tüm potansiyel müşteriler tarafında kullanılabiliyor olmalı. Yani yazılımsal veya donanımsal gereksinimler olabildiğince geniş bir yelpazeyi kapsamalı ki daha fazla kişi tarafından erişilebilir olsun.
  • Security: Hizmetin tüm kullanıcılar ve verileri için yeterli düzeyde güvenlik korumasını sağlaması gerekir. Kullanıcıların kişisel verileri şifrelenerek depolanmalı ve yetkisiz erişimlere karşı koruma altına alınmalıdır. Aksi takdirde ciddi sonuçlar doğurabilir.
  • Customization:  Çok kullanıcılı bir hizmette tüm kullanıcıları mutlu etmek için onlara kişiselleştirebilme imkanları sunmalısınız. Kullanıcıların hizmetinizi sevmesi ve bağlılıklarını arttırması için yazılımı kendilerine uygun hale getirebilmeliler.
  • Support: Kullanıcılara destek sağlanmalı. Problemlerine çözümler üretilmeli.

Proje Nasıl Geliştirilmeli ?

Geliştirme süreci çok önemlidir ve gerekli tasarım elementlerini sağlayacak bir mimari izlenmelidir. Bu konuda yardımcı olabilecek bazı yazılım geliştirme yöntemleri aşağıdaki gibidir:

  • Waterfall Model: Yazılım geliştirme süreci analiz, tasarım, kodlama, test, sürüm ve bakım gibi safhalardan oluşur. Aşamalı bir şekilde ilerlenen bir yöntemdir. Her aşama bittiğinde bir sonrakine geçilerek ilerlenir. Detaylar için burayı ziyaret edebilirsiniz.
  • Spiral Model: Spiral model, risk odaklı bir yazılım geliştirme süreci modelidir. Belirli bir projenin benzersiz risk modellerine dayanarak; sarmal model,  bir veya daha fazla işlem modelinin öğelerini benimsemeye yönlendirir.
  • Rapid application development: Bu yöntem, genel olarak yazılım geliştirmeye yaklaşırken, planlamaya daha az vurgu yapar ve uyarlamalı bir sürece daha fazla vurgu yapar. Prototipler genellikle tasarım özelliklerine ek olarak veya hatta bazen kullanılır.
  • Agile: Bu yöntem, gereksinim ve çözümlerin kendi kendini organize etmeye odaklıdır. Müşteriler veya kullanıcıların ihtiyaçlarına, taleplerine göre şekillenen bir yazılım geliştirme yaklaşımıdır. Sürekli iyileştirmeyi savunur, değişime hızlı ve esnek yanıt vermeye odaklanır.

Bunların dışında pek çok geliştirme yaklaşımı bulunmakta. Günümüzde en popüler olan yöntem ise Agile’dır. Bu yöntemler ihtiyaçlarınıza, ekibinize veya proje standartlarınıza göre değiştirilip kişiselleştirilebilir. Bu yöntemler sadece birer yaklaşımdır, dışına çıkalamaz katı kurallar değildir.

label, , , ,

Add a Comment

E-posta hesabınız yayımlanmayacak. Gerekli alanlar * ile işaretlenmişlerdir