Sistem Analizi ve Tasarımı
Sistem bir bütün olarak ele alınmalıdır.
Sistem bileşenlerini ve rollerini tasarlayarak oluşturulmalıdır. Sistemi oluşturan süreçler, verileri, yazılımlar, donanımlar ve elbette kullanıcılar birlikte düşünülmelidir. Doğru ve bütünsel yaklaşım ile farklı teknolojiler uyumlu çalışır ve verimlilik artar.
Bu sebeple yazılım geliştirme projelerinin belki de en önemli noktası sistem analizidir. Bu işlem projede ne yapılacağını ve işin sınırlarını belirler. Görünen ve görünmeyen tüm maliyetleri bu aşamada alınacak kararlar belirler.
Müşteri beklentilerinin belirlenmesinde hiçbir zaman üst yönetim ile görüşmeler yeterli değildir. Geliştirilecek olan sistemin tüm kullanıcıları ile görüşme yapmak ve beklentilerini belirlemek ile işe başlarız. Bu aşamada müşterimiz ile aynı dili konuşmak için etkinliği kanıtlanmış yöntemleri kullanırız. Analiz aşamasında ve sistem tasarımı aşamasında aldığımız notlarla ve müşteri toplantıları ile UML diyagramları oluştururuz.
Müşterilerimizin bizi, bizim müşterimizi doğru anladığımızdan emin olmak için bir tasarım raporu oluşturur, müşterimiz ile birlikte bu raporun üstünden geçer ve projenin teknik detaylarını onaylarız.
İş Sürecinin Belirlenmesi
Müşterimizin işini önce dinler sonra yerinde izleriz. Notlar alır, formlar toplar ve veri akışını modelleriz. Müşterimizin iş sürecini sırasıyla tespit eder ve diyagram haline getiririz. Bu aşamada müşterimizin katacağı yeni fikirleri de toplar yeni iş sürecini tespit ederiz.
Bazen de müşterimiz yeni bir işe başlıyordur ve henüz kendisinin bile karar veremediği noktalar vardır. Bu gibi durumlarda değişikliklerin yönetilebilmesi için tasarımı olabildiğince değişken yapar ve müşterimize ayak uydururuz.
Arayüz Tasarımları
Her uygulamanın bir kullanıcısı vardır. Kullanıcıların yazılımlar ile haberleştiği arayüzlerin tasarlanması ve geliştirilmesi farklı bir uzmanlıktır. Farklı uygulama türlerinde kullanılan farklı teknolojilere hakim olmayı gerektirir.
Her türlü uygulama için arayüzlerin geliştirmesine başladan önce wireframeler (taslak çizimler) oluşturur ve müşterimiz ile paylaşır ve anlatırız. Aldığımız notlar beklentilerin aktarımı sırasında aktarılmamış detaylardır. Tüm notlarımızı alır çizimleri günceller ve ekran tasarımlarını neticelendiririz.
Sistem İlkeleri
Güvenlik, iş akışı vb. konularda ilkeler oluşturmak inisiyatif almayı ve dolayısıyla geliştirme sürecini kısaltır. Toplantılarda konuşulmamış konularda karar almamız gerektiğinde ilkelerle uyuşmasına katı bir önem gösteririz. Bu ilkeler işlem hızı, parola uzunluğu, kullanıcı yetkileri, veri paylaşımı, formatlar gibi çeşitli konularda olabilir.
Maliyet Yönetimi
Bir projenin geliştirme maliyeti buz dağının görünen kısmı gibidir. Ömür boyu maliyetin hesaplanabilmesi ve azaltılabilmesi bu aşamada alınan kararlara bağlıdır. Gizli maliyetler çoğu zaman projelerin başarısız olmasına sebep olur.
Donanım ve Haberleşme
Bir kamera, sıcaklık algılayıcı, bluetooth kulaklık veya otomatik kapı; donanımlar yazılımlar ile kontrol edilirler. Donanımlar üzerindeki gömülü yazılımlar diğer yazılımlarla haberleşebilir ve bir sistemin parçası olabilirler.
Veri İşleme
Bir kelime, bir görüntü, bir sayı veya hepsi birlikte veya tekil hepsi gerektiğinde işlenebilmelidir. Depolama, sorgulama, koruma vb görevleri yapılırken acemiliğe yer yoktur ve bazı durumların geri dönüşü yoktur.