Yazılım Geliştirmede Yinelemeli, Artımlı ve Paralel İşlem
Yazılım Geliştirme Hayat Çevriminde (SDLC) bir ürünün çıkartılması işini iterative, incremental ve paralel yöntemlerle gerçekleştiriyoruz. Şelale (waterfall) yönteminde tüm aşamalardan 1(bir) kez geçerek ürünü meydana getirirken, yinelemeli/tekrarlayan (Iterative) yaklaşımda en az 3 kez (bir alt üst limiti yok ama yinelemeli olması adına birden fazla dönülmesi gerek) bu fazların üstünden geçerek ürün çıkartılır.
Yinelemeli / Tekrarlayan (Iterative)
Yinelemeli yaklaşım, ilk denemede bir ürünü teslim etmek yani “aceleyle bitirmek” yerine, “yavaş ve istikrarlı bir felsefeyi” teşvik eder. Görevlerin tekrar edilmesiyle ürün kademeli olarak geliştirilir.
Teslim edilebilir ürünler, diğer birden fazla teslim edilebilir üründe en az üç kez tekrarlanarak üstlenilir. Örneğin, yinelemeli bir işlemi takip ederken, ilk kullanım senaryosundan, başka bir diyagramdaki başka bir kullanım senaryosuna geçilebilir.
Artan (Incremental)
Bir işlemin artan yönü, mevcut bir ürüne veya geliştirilmekte olan ürüne yeni özellikler ve diyagramlar eklemeyi mümkün kılar. Böylece yeni gereksinimler keşfedilir ve artan şekilde modellenir. Sürecin bu artımlı yönü, sistemin ek bölümlerinin geliştirilmesine devam etmeden önce bir sistemin parçalarının mümkün olduğunca eksiksiz bir şekilde oluşturulmasını sağlar. Bir işlemin artımlı yönü genellikle yinelemeli(iterative) yaklaşımla el ele gider.
Paralel (Parallel)
Nesne yönelimli analiz ve tasarım ile paralel olarak iki yazılım ana elemanını üretmek mümkündür. Bu nedenle, bir paket başka bir pakete bağlı olsa bile, iki paketin geliştirilmesi paralel olarak ilerleyebilir. Bu tür paralel gelişimdeki tek gereksinim, iki paket arasındaki arabirimlerin ilk önce resmi olarak tanımlanması ve geliştirilmesi gerektiğidir. İki paket arasındaki arabirimler değişmediği sürece, geliştiriciler iki paketin içini paralel olarak geliştirmekte özgürdür.
Proje Süreçleri & Süreleri
Proje 3 bölümde incelendiğinde toplam sürenin %15'ini alacak olan ilk bölümde yapılacak işler:
- iş hedeflerini anlama,
- ilk kullanım durumlarını oluşturma ve vaka diyagramlarını kullanma,
- projenin genel beklenen denklemlerine dayalı maliyet tahmini,
- kaynaklar dahil proje planlaması,
- prototipleme
- ve kalite planlaması
İlk yinelemesinde(iteration), zamanın ve çabanın% 15'i gereksinimlerin ve prototiplerin erken bölümlerini hızla modellemeye harcanmaktadır. Bu yinelemenin bir sonucu olarak, tüm proje katılımcıları ve paydaşları proje için iyi bir fikir edinmiş olması beklenir.
Proje düzeyinde olan ikinci yineleme, zamanın ve çabanın yaklaşık% 60'ını tüketir. İhtiyaçların yerine getirilmesini ve çözümün yaratılmasında gereklilik modelini uygulayan ayrıntılı bir yinelemedir. Böylece, çoğu süreç haritası bu yinelemede incelenir. Çözüm alanındaki kapsamlı çalışmalar nedeniyle, bu yineleme, büyük bir kod ve veritabanı gelişimi ile sonuçlanır. Dolayısıyla faaliyetler, çözüm ve mimari modelleme alanlarıyla ilgilenilir.
Üçüncü yineleme, proje seviyesindeki ve zamanın % 25'ini tüketen proje seviyesindeki son yinelemedir. Bu yinelemede ana odak şu ana kadar üretilen çözümü proje / sistem düzeyinde test etmektir. Ürünün yaygın kabul testi de son kullanıcılar tarafından gerçekleştirilir. Performans testi, kabul testi ve sistemin başlatılması ile ilgili faaliyetler bu yineleme gerçekleştirilir.
Agile Manifesto
- Bireyler ve süreçler ve araçlar üzerindeki etkileşimler
- Kapsamlı dokümantasyon üzerinde çalışma yazılımı
- Sözleşme müzakereleri konusunda müşteri işbirliği
- Bir planı takip ederek değişime cevap vermek
Çevik Manifesto imzacıları şunları söylüyor:
Biz modellemeyi kucaklıyoruz, ancak sadece tozlu bir şirket deposunda bir diyagram oluşturmak için değil. Belgeleri kucaklıyoruz, ancak israf etmiyoruz
Hiç kullanılmamış ve nadiren kullanılan tome kağıtlarında. Planlıyoruz, fakat çalkantılı bir ortamda planlamanın sınırlarını kabul ediyoruz.
Çevik değerler minimal formalite ve planlamayı gerektirir. Örneğin, bireyler ve etkileşimleri “günlük standup” toplantılarıyla desteklenir ve kullanıcı hikayeleri bir duvara yazılır ve fiziksel olarak yapıştırılır. Benzer şekilde, çalışan yazılımlara kapsamlı dokümantasyona göre öncelik verilir. Bu değerler geleneksel sistem mühendisliği yaklaşımlarını değiştirdi — geleneksel SDLC yöntemleriyle karşılaştırıldığında “değişime daha hızlı tepki verme” odaklı olduğu görülür.
Çevik yaklaşımlar değişikliklere (adaptif) hızla yanıt verir, hızlı bir şekilde yinelenir ve test eder , farklı beceri setine sahip küçük “kendi kendine motive” ekipler içerir.
Scrum
Scrum, ortak ve ulaşılabilir bir hedef belirlemek için tüm proje ekibini bir araya getirmeyi amaçlar. Takım bu ortak hedefe doğru işbirlikleri ve yinelemelerle, ürünü aşamalı olarak geliştirir. Scrum projeleri; görsel grafikler, günlük standup toplantıları ve yakın işbirliği ile uygulanan güven, basitlik ve cesaret ile karakterize edilir.
Artifact (eser) terimini en güzel anlatan adres bence burası ve tanımı ise şöyle:
UML, bir grafik modelleme dili olup, yazılım sistemlerini oluşturan ana elemanları (Ki bunlar İngilizce “artifact” olarak adlandırılıp ve el yapımı anlamına gelmektedir.) çeşitli şekillerden oluşacak şekilde tanımlamak için oluşturulmuş bir kurallar bütünüdür.
Artifact (eser), ürün geliştirme sürecinde oluşturulan somut bir yan üründür. Scrum şeffaf bir proje yönetimi metodu olup takım içinde ve dışında bilginin paylaşılması odaklıdır. Bunuda artifaktlar sayesinde sağlar. Scrum çatısı içindeki artifaktlar:
- Product Backlogs
- Stories
- Charts
- Priorities
- Estimates
Product Backlog (ürün listesi): Yazılımınızda gerekli olan her şeyin bir listesidir. Özellikler, işlevler, gereksinimler, geliştirmeler ve düzeltmeler product backlog içinde yer alırlar.
Epics: Özellikler’e bölünmesi gereken yüksek seviye tanımlara denir. Örneğin “cari kartlarımızı saklayabilmeliyiz”, “çeklerimizin vadesini takip edebilmeliyiz” gibi içinde bir çok hikaye barındırabilen büyük özellik kümesi.
Story: Epic içindeki daha küçük ve kullanıcı hikayelerine indirgenmiş başlıklar. Mesela “kestiğimiz her çekin bilgilerini girebileceğimiz ekran”, “e-faturaları görüntülemek” gibi başlıklar story olarak kabul edilebilir.