Yazılım şu an kullandığımız tüm dijital platformlarla kalmayıp, internetin icadından önce makinelerde de kullanılan çok değerli bir alandır. Yazılımla en basit makineler çalıştırılabilir, sonsuz veri saklanabilir ve hatta Mars’a roket gönderilebilir. Kullanım alanı fark etmeksizin yazılım, oldukça karmaşık bir çalışma alanıdır. Bunun için bazı yazılımcılar, tüm yazılım süreçlerine rehber olacak modeller geliştirmişlerdir.
Waterfall (Şelale) Modeli
Yazılım geliştirme süreçleri 1970 yıllarında Winston Walker Royce tarafından çıkarılmıştır. Winston Walker’ın ortaya çıkardığı bu süreçler aynı zamanda birçok mühendislik bölümüne de katkı sağlamıştır. Royce aynı zamanda, yazılım geliştirme süreçlerini bir yaşam döngüsü haline getiren ilk kişidir.
Royce, yaptığı yaşam döngüsüne ‘’Waterfall(Şelale)’’ ismini vererek bu döngünün aslında akan bir suya benzediğini düşünmüştür. Safhalar yukarıdan aşağı doğru ilerler ve biri eksik olursa bile yapılan işlemleri tamamlamak zorlaşır.
Bu aşamalar sırasıyla;
-Analiz,
-Tasarım,
-Kodlama,
-Test,
-Sürüm ve
-Bakım’dır.
Yazılım sürecinin ilk defa şematize edildiği bu metot oldukça fazla eleştiri almış, ardından farklı yaşam döngüleri ortaya çıkmıştır.
Royce’un Waterfall (Şelale) modelinin eleştirilmesinde belirli sebepler vardır. Bir safhadan diğer bir safhaya geçmek bu yöntemde oldukça zordur. Müşteriler en başlarda genel olarak ne istediğini bilmediği için süreç boyunca sık sık fikirleri değişebilmektedir. Bu yüzden tüm detaylar en baştan tanımlanmalı ve süreçler buna göre ilerlemelidir. Şelale modelinde süreç içinde oluşan değişiklikler genel olarak önemsenmez, modelin en çok eleştirilen tarafı da budur. İlerleyen süreçlerde değiştirilmek istenilen detaylar yüzünden projelerin çoğu silinip tekrar hazırlanır. Bu da projelerin genel olarak geç kalmasına yol açar. Başlangıçta yapılan hatalar geç fark edildiğinde de aynı problemlere yol açabilir.
Agile (Çevik) Model
Günümüzde en çok kullanılan yazılım geliştirme süreci ise ‘’Agile (Çevik)’’ modeldir. Agile çalışma modeli yazılımcının isteklerini ön plana çıkarır ve geri bildirimlerden beslenir. Dünyada en hızlı ve en güvenli model olarak kabul edilir. Dünyada birçok yazılım şirketi bu modeli kullanır. Bu modelin bu kadar popüler olmasını sağlayan özellikleri şöyle sıralanmaktadır:
1. Araçlar yerine, bireylerle olan etkileşimi arttırması
2. Detaylı bilgilendirmeler yerine, yazılımın çalışmasına odaklanması
3. Müşteri ile yapılan sözleşmeler yerine, müşteri ile iletişime odaklanması
4. Belirli ve değişimi kabul etmeyen bir çalışma planı yerine, değişime açık bir plan olması
Agile modelde kullanılan metodolojiye ‘’scrum’’ da denir. Scrum geliştirme modeli tamamen gözleme, geliştirmeye ve tekrara dayalıdır. Bu modele göre belirli bir süre geliştirme yapıldıktan sonra testler yapılır ve bu bir döngü haline gelir. En baştan proje planlamasının zor olacağını düşünen bu model tüm detaylara dikkat eder ve gözlemler sayesinde hataları kolayca bulmayı sağlar. Böylece proje yeniden yazılmaz ve hatalara oluştuğu anda müdahale edilir. Projeyi hızlıca MVP aşamasına getirip, sonra üzerine geliştirmeler yapılarak iyileştirilmesini hedefler.
Yukarıdaki tabloda Waterfall ve Agile modellerin karşılaştırılması yapılmıştır. Görebileceğiniz üzere, Şelale modelinde fikir aşamasından canlıya geçişe kadar her şey adım adım giderken, Çevik modelde duraksamalar vardır. Bu duraksamalar hata oranının azaltılmasında etkilidir.
Diğer yazılım geliştirme modellerinden bahsedecek olursak:
1. Spiral: Bu model için tüm yöntemler arasında en pahalısıdır, diyebiliriz. Risklere odaklanır ve sürecin her aşamasında ayrı bir risk analizi yapılır. Çıkan her analiz sonucu bir bütün haline getirildikten sonra tekrar analiz edilir.
2. V-shape: Waterfall dediğimiz Şelale modeline benzeyen bu yöntem test aşamasını da gerçekleştirdiği için Waterfall modelinden ayrılır. V-shape modeli tüm süreçlerde kolayca test işleminin gerçekleştirilmesini sağlar.
3. Iterative: Yazılımcıya kolayca hatalarını gösterir. Böylece süreç daha verimli geçer. Süreç planlaması küçük parçalara ayrılır ve kontrol edilir.
Sizin de yazılımla ilgili bir iş fikriniz varsa ve süreci nasıl yöneteceğinizi bilmiyorsanız uzman yazılımcılarımızla işbirliği yapmaya ne dersiniz? Bize ulaşın: [email protected]
Son Yorumlar