SlideShare ist ein Scribd-Unternehmen logo
1 von 34
ddemirel / 20171124
Software Development Life Cycle
Yazılım Geliştirme Nedir?
Yazılım geliştirmek sadece kodlamadan ibaret değildir. Bu konu
karmaşıktır ve günümüzdeki uygulama gereksinimlerinde daha
da karmaşık hale gelmektedir.
Bu bize gösteriyor ki bu işin ciddi bir sistematiğinin olması
gerekmektedir. Aksi takdirde ne kaliteli yazılımlar
geliştirebiliriz ne de piyasa şartlarında aynı pozisyonda
kalabiliriz.
SDLC
SDLC yazılımların nasıl geliştirilmesi gerektiğini veya nasıl
iyileştirilmesi gerektiğini anlatan bir rota çizmektedir.
SDLC yüksek kaliteli yazılımları tasarlamak, geliştirmek ve test
etmek için yazılım endüstrisi tarafından kullanılan bir süreçtir.
SDLC müşteri beklentilerini karşılayan, planlanan zaman
içerisinde tamamlanan, maliyet tahminlerine uygun kaliteli bir
yazılım üretmeyi amaçlar.
Uluslararası bir standarttır. Yazılım geliştirmede ve bakımında
gerekli olan tüm görevleri tanımlamayı hedeflemektedir.
SDLC – Adımlar/Aşamalar
Planlama
Analiz
Teknik ve
Süreçsel
Tasarım
Geliştirme
Test
Deployment
• SDLC’nin en önemli aşamasıdır.
• Müşteri ve ekipteki tecrübeli kişiler tarafından
gerçekleştirilir.
• Burada ortaya çıkan bilgiler daha sonra temel proje
yaklaşımını planlamak ve ekonomik, teknik fizibilite
çalışmaları aşamasında kullanılır.
• Kalite güvencesi şartlarının planlanması yapılır.
• Projeye ilişkin riskler ortaya konur.
• En az riskle projeyi gerçekleştirmek için teknik
yaklaşımlar belirlenir.
• Ürün gereksinimlerini açıkça tanımlama ve belgeleme
yapılır.
• Müşteriden onay alınır.
• Proje boyunca geliştirilecek tüm ürün gereksinimleri bu
belgelerde bulunur.
• Ürün gereksinimlerine bağlı olarak yazılımın hangi
mimaride geliştirileceğinin tasarlandığı aşamadır.
• Birden fazla yaklaşım önerisi verilebilir.
• Bu yaklaşımlar ilgili proje paydaşları ile paylaşılır,
gözden geçirilir ve risk değerlendirmeleri yapılır. Bu
aşamada aşağıdaki konulara dikkat edilir ve en iyi
yaklaşım seçilir.
• Ürün sağlamlığı, tasarım modülerliği, bütçe, zaman
kısıtları
• Bu aşamada geliştirmeler başlar.
• Geliştirmeler yapılan analiz ve tasarımlara göre
geliştirilir.
• Bu aşamada teknik tasarım ve kurum standartlarına sadık
kalınır.
• Modern SDLC yöntemlerinde testler her aşamada yapılır.
• Ürünün analiz ve müşteri gereksinimlerine uygunluğu
kontrol edilir.
• Ürün test edildikten ve kullanılmaya hazır hale geldikten
sonra teslim edilir.
• Ürün öncelikle pilot kullanım aşamasından geçirilir.
• Sonrasında geri dönüşler ile ürün iyileştirilebilir.
SDLC - Modelleri
• Waterfall
• Iterative
• V-Model
• Agile
SDLC - Waterfall
• İlk modeldir.
• Doğrusal-sıralı model olarak da adlandırılır.
• Kullanımı ve anlaması çok kolaydır.
• Her aşamanın bir sonraki aşama başlamadan tamamlanması
gerekir.
• Fazlandırmalar yapılır ve bu fazlardan birinin sonucu
diğerinin girdisi olarak kabul edilir.
SDLC - Waterfall
SDLC - Waterfall
• Kullanımın uygun olduğu durumlar;
– Gereksinimler çok iyi dokümante edilmiş, açık ve sabit
ise,
– Ürün tanımı kararlı ise,
– Belirsiz gereksinimler yok ise,
– Ürünü destekleyecek gerekli uzmanlığa sahip kaynaklar
var ise,
– Proje kısa ise.
SDLC – Waterfall - Avantajları
• Anlamak ve kullanmak kolaydır.
• Modelin sağlamlığı nedeniyle kolay yönetilir. Her aşamada
belirli çıktılar ve inceleme süreci vardır.
• Aşamalar ardı ardına işlenir ve tamamlanır.
• Gereksinimlerin iyi anlaşılabildiği küçük projelerde iyi
uygulanabilir.
• Aşamalar açıkça tanımlanır.
• İşleri sıralamak kolaydır.
• Süreçler ve sonuçlar kolay iyi dokümante edilir.
SDLC – Waterfall - Dezavantajları
• Son aşamaya kadar uygulama çalışır durumda olmayabilir.
• Sonuçlar açısından yüksek risk ve belirsizlikler vardır.
• Karmaşık ve object-oriented projeler için uygun değildir.
• Uzun ve devam eden projeler için zayıf bir modeldir.
• İhtiyaçların değişme riskinin yüksek olduğu projeler için
uygun değildir. Bundan dolayı bu modelde risk ve belirsizlik
yüksektir.
• Aşamaların ilerlemesini ölçmek zordur.
• Herşey önceden belirlendiği için değişen gereksinimleri
karşılayamaz.
SDLC – Iterative(Yinelemeli)
• Bu modekde süreç yazılım gereksinim setinin küçük bir parçasının
implementasyonu ile başlar ve uygulama tamamlanana kadar devam
eder.
• Bu işlem tekrarlanarak modelin her tekrarlanması sonunda yazılımın
yeni bir sürümü üretilir.
• Her yinelemede tasarım değişiklikleri yapılır ve yeni işlevler eklenir.
• Gereksinimlerin tamamen hazır olması gerekmez.
• Temel fikir tekrarlanan döngüler ile her defada küçük bölümler halinde
sistem tamamlanmaya çalışılır.
• Aynı anda iki farklı iterasyon yapılıyor olabilir.
• Bu modelde gereksinimlerin tümü çeşitli bölümlere ayrılmıştır.
• Gereksinimler her iterasyonda tasarım, geliştirme ve test işlemine tabi
olur.
• Yazılım arka arkaya iterasyonlar vasıtasıyla geliştikçe, sürümü
doğrulamak için testler tekrarlanmalı ve genişletilmelidir.
SDLC – Iterative(Yinelemeli)
SDLC - Iterative(Yinelemeli)
• Kullanımın uygun olduğu durumlar;
– Sistem gereksinimlerinin açıkça tanımlandığı ve
anlaşılmış olduğunda,
– Ana gereksinimler tanımlanmalıdır, sonrasında bazı
işlevler ya da iyileştirmeler zamanla geliştirilebilir
olduğunda,
– Yeni bir teknoloji kullanılıyor ve projede çalışanlar bunu
yeni öğreniyorsa,
– Gelecekte değişebilecek bazı yüksek riskli özellikler ve
hedefler varsa.
SDLC - Iterative(Yinelemeli) - Avantajları
• Bazı fonksiyonlar sürecin başında geiştirilebilir.
• Sonuçlar erken ve periyodik olarak alınır.
• Paralel geliştirme planlanabilir.
• İlerlemeler ölçülebilir.
• Kapsam ve gereksinimleri değiştirmek daha az maaliyetlidir.
• Küçük iterasyonlarda test ve hataları temizleme kolaydır.
• Riskler iterasyon sırasında tanımlanır ve çözülür, her yineleme
kolaylıkla yönetilen bir kilometre taşıdır.
• Risk yönetimi kolaydır. Önce yüksek riskli kısımlar yapılır.
• Her adımda, kullanılabilir ürün çıkartılır.
• Her iterasyonda tespit edilen sorunlar, zorluklar ve riskler
sonrakilerde göz önünde bulundurulabilir.
• Değişen gereksinimleri destekler.
• Başlangıçtaki çalışma süresi daha azdır.
• Büyük ve kritik projelere daha uygundur.
• Döngüde müşterinin değerlendirebileceği ürünler ortaya çıkar.
SDLC - Iterative(Yinelemeli) -
Dezavantajları
• Fazla kaynak gerekebilir.
• Değişim maaliyeti kolay olsada değişimi yönetmek kolay
olmayabilir.
• Çok fazla yönetim takibi, dikkati gerekebilir.
• Sistem mimarisi veya tasarım konuları ile ilgili sorunlar ortaya
çıkabilir, çünkü tüm gereksinimler tüm yaşam döngüsü başında
toplanmamaktadır.
• İterasyonların tanımlanması, komple sistemin tanımlanmasını
gerektirebilir.
• Küçük projelere uygun değildir.
• Yönetim karmaşıklığı yüksektir.
• Projenin sonu bilinmeyebilir, ki bu bir risktir.
• Risk analizi için yüksek vasıflı kaynaklara ihtiyaç vardır.
• Projelerin ilerlemesi, risk analizi aşamasına oldukça bağımlıdır.
SDLC – V-Model
• Süreçlerin yürütülmesinin V şeklinde sıralı bir şekilde
gerçekleştiği SDLC modelidir.
• Waterfall’ın bir uzantısıdır ve her bir aşamanın bir test
aşamasına bağlı olma prensibine dayanır.
• Geliştirme döngüsündeki her aşamanın ilişkili olduğu bir test
aşaması olduğu anlamına gelir.
• Disiplinli bir modeldir ve sonraki aşamaya mevcut aşamayı
tamamladıktan sonra geçilebilir.
• Geliştirme ve test paralel yürür.
SDLC – V-Model
SDLC – V-Model
• İşleyiş olarak Waterfall modele çok benzemektedir, ikisi de
sıralı olarak işler.
• Gereksinimler proje başlamadan açık olarak belirlenmelidir
çünkü geri dönüp değişiklik yapmak çok maaliyetli olur.
• Bu model medical projelerde kullanılır, çünkü çok disiplinlidir.
• V-Model uygulamak için uygun durumlar;
– Gereksinimlerin iyi belirlenmiş ve net olarak belgelenmiş
olması
– Ürün tanımının stabil olması
– Teknolojinin değişken olmadığı ve takım elemanlarınca iyi
bilinmesi
– Belirsiz ya da tanımsız gereksinimlerin olmaması
– Kısa proje olması
SDLC – V-Model – Avantaj/Dezavantaj
• Avantajları
– Yüksek disiplinlidir, aşamalar tamamlanarak ilerler
– Gereksinimlerin iyi tanımlandığı küçük projeler için uygundur
– Anlaması ve uygulaması kolaydır
– Sağlam bir model olduğu için kolay yönetilir
– Her aşamada belirli çıktılar ve inceleme süreci vardır
• Dezavantajları
– Sonuç uygulama açısından yüksek riskli ve belirsizlikleri vardır
– Karmaşık projeler için uygun değildir
– Uzun ve devam eden projeler için yetersizdir
– İhtiyaçların orta ve yüksek derecede değişme ihtimali olan projeler
için uygun değildir
– Uygulama test aşamasındayken geriye dönüp bir işlevi değiştirmek
zordur
– Son aşamaya kadar çalışan bir uygulama ortaya çıkmayabilir
SDLC – Agile(Çevik)
• Agile Model, süreç uyumluluğu ve müşteri memnuniyetine
odaklanarak hızlı bir şekilde sürekli çalışan uygulamalar
oluşturmayı hedefler
• Küçük iterasyonlarla üretim yaparak ürünü ortaya çıkarır
• Her iterasyon 1-3 hafta arasında sürer
• Her iterasyonda farklı konularda eşzamanlı olarak çalışan
yetenekli takımlar ile gerçekleştirilir
– Planlama
– Gereksinim analizi
– Tasarım
– Geliştirme
– Unit Test
– Kabul Testi
• İterasyonun sonunda çalışan uygulma müşteriye gösterilir
SDLC – Agile(Çevik)
• Odaklanılan Noktalar
– Değişime ayak uydurabilme
– Dokümantasyandan çok değişebilen müşteri
gereksenimlerine odaklanma
– Sürekli çalışan ve işe yarayan uygulama üretme
– Küçük zaman dilimlerinde belilenen görevleri
tamamlama
– Yetenekli ve yüksek iletişime sahip takım elemanları
SDLC – Agile
SDLC – Agile(Çevik)
• Çevik model her projenin farklı şekilde ele alınması
gerektiğine ve mevcut yöntemlerin proje gereksinimlerine
en uygun hale getirilmesi gerektiğine inanır
• İşler, bir sürümde belirli özellikler sunmak için küçük
zamanlara bölünür
• Yinelemeli yaklaşım uygulanır ve her yinelemenin sonunda
çalışan yazılım teslim edilir
• Her çıktı aşamalı olarak farklı özellikler kazandırır ve
nihayetinde müşterinin istediği tüm özelliklere sahip olmuş
olur
SDLC – Agile Manifesto Prensipleri
• Bireyler ve Etkileşim
– Kendi kendini iyileştirme ve motivasyon önemlidir
– Görevlerde yer değiştirme ve birlikte kodlama önelidir
• Çalışan Uygulama
– Çalışan bir uygulama sunmak belgeler oluşturmadan daha
önemlidir ve gereksinimleri anlamak için en iyi iletişim
aracıdır
• Müşteri İşbirliği
– Gereksinimler çeşitli faktörlerden dolayı projenin
başlangıcında tamamen toplanamayacağı için, doğru ürün
gereksinimlerini sağlama müşteri ile sürekli iletişim ile
sağlanabilir.
• Değişime Karşılık Verme
– Hızlı bir şekilde değişime ve sürekli gelişime olumlu yanıt
veremeye odaklanılır.
SDLC – Agile ile Geleneksel Modellerin
Kıyaslaması
• Agile uyarlanabilir yazılım geliştirme yöntemlerine dayanır, geleneksel
modeller tahmini bir yaklaşım benimser
• Geleneksel modeller detaylı planlama ile çalışır ve ileriki birkaç ayda
veya ürünün ömrü boyunca tamamlanacak işlerin bir tahmini ile yürür.
• Tahminli yöntemler tamamen döngü başlangıcında yapılan ihtiyaç
analizi ve planlamaya bağlıdır. Sonradan istenen değişiklikler sıkı bir
değişim yönetimi ile sağlanır.
• Agile ayrıntılı planlama yapılmadan uyarlanabilir bir yaklaşım kullanır
ve gelecekteki işler üzerinden yalnızca hangi özelliklerin geliştirilmesi
gerektiğine ilişkin netlik vardır.
• Özelliklere dayalı bir gelişim vardır ve ekip sürekli olarak değişen ürün
gereksinimlerine uyum sağlar.
• Agile ile aşamalı ve istenilenler doğrultusunda ilerlediği için çıktı
açısında riskler en aza iner.
• Müşteri etkileşimi Agile metodolojinin omurgasını oluşturur, az
dökümantasyon sürekli iletişim, bu metodolojinin en tipik özelliğidir.
• Agile takımlarda yakın işbirliği çok önemlidir.
SDLC – Agile - Avantaj / Dezavantaj
• Agile son dönemde yazılım dünyasında büyük oranda kabul
görmüş bir yöntemdir. Bununla birlikte bu yöntem her ürün için
uygun olmayabilir.
– Avantajlar
• Çok gerçekçi bir yaklaşım sağlar
• Ekip çalışmasını ve birbirini eğiten elemanları destekler
• İşlevler hızlı geliştirilir ve gösterilir
• Az kaynak ihtiyacı vardır
• Sabit ve değişken gereksinimlere uygundur
• İhtiyaçların bir parçasını karşılayan ve sürekli çalışan
uygulamalar sunar
• Planlanmış zamanlarda ürün çıkartmayı sağlar
• Az ya da hiç planlama gerekli olmayabilir
• Kolay yönetilir
• Geliştiricilere esneklik kazandırır
SDLC – Agile - Avantaj / Dezavantaj
• Dezavantajlar
– Müşteri etikileşimine bağlı olarak müşteri açık değilse ekip
yanlış yönde yönlenir
– Minimum dökümantasyon olduğundan yüksek bireysel
bağımlılık vardır
– Ürün gereksinimleri sürekli değişebileceğinden maliyetler
peşinen tahmin edilemez.
– Müşterilerden sürekli geri bildirim almak sizi alaşağı edebilir
ya da bazı müşterilerin zamanı ve hiç ilgisi olmayabilir.
– Müşteriler geri bildirim vermek istediklerinde akıllarına
gelebilecek yeni istekler ek fazları ortaya çıkarır. Bu durum
proje maliyetlerini ve süresini uzatabilir.
– Müşteri ile iletişimi zor olan büyük Kurumsal yapılarda
uygulamak zor olacaktır.
Kaynaklar
• https://www.tutorialspoint.com/sdlc
• https://www.pem360.com/blog/Agile/Agile-Yontemlerin-
Avantajlari-ve-Dezavantajlari/183

Weitere ähnliche Inhalte

Was ist angesagt?

Software Quality Assurance - Software Engineering
Software Quality Assurance - Software EngineeringSoftware Quality Assurance - Software Engineering
Software Quality Assurance - Software EngineeringPurvik Rana
 
Yazilim mi̇mari̇leri̇(aoy)
Yazilim mi̇mari̇leri̇(aoy)Yazilim mi̇mari̇leri̇(aoy)
Yazilim mi̇mari̇leri̇(aoy)Ahmet Yanik
 
ISTQB Projelerde Spesifikasyona Dayalı Test Teknikleri
ISTQB Projelerde Spesifikasyona Dayalı Test TeknikleriISTQB Projelerde Spesifikasyona Dayalı Test Teknikleri
ISTQB Projelerde Spesifikasyona Dayalı Test TeknikleriPEM Proje Eğitim Merkezi
 
Software Testing Life Cycle Unit-3
Software Testing Life Cycle Unit-3Software Testing Life Cycle Unit-3
Software Testing Life Cycle Unit-3Raj vardhan
 
A disciplina Teste no RUP
A disciplina Teste no RUPA disciplina Teste no RUP
A disciplina Teste no RUPtecprog2010
 
Software Development Life Cycle Model
Software Development Life Cycle ModelSoftware Development Life Cycle Model
Software Development Life Cycle ModelJ.T.A.JONES
 
software development life cycle(SDLC)
software development life cycle(SDLC)software development life cycle(SDLC)
software development life cycle(SDLC)sanoop s
 
Test Mühendisliğine Giriş Eğitimi - Bölüm 2
Test Mühendisliğine Giriş Eğitimi - Bölüm 2Test Mühendisliğine Giriş Eğitimi - Bölüm 2
Test Mühendisliğine Giriş Eğitimi - Bölüm 2Mesut Günes
 
Fundamentos para el diseno de software
Fundamentos para el diseno de softwareFundamentos para el diseno de software
Fundamentos para el diseno de softwareMaraPierua
 
Modelos de Procesos del Software
Modelos de Procesos del SoftwareModelos de Procesos del Software
Modelos de Procesos del SoftwareJaneth Jimenez
 
ISTQB Metodolojisi ile Test Planlama ve Tahminleme
ISTQB Metodolojisi ile Test Planlama ve TahminlemeISTQB Metodolojisi ile Test Planlama ve Tahminleme
ISTQB Metodolojisi ile Test Planlama ve TahminlemePEM Proje Eğitim Merkezi
 
ISO26262-6 Software development process (Ver 3.0)
ISO26262-6 Software development process (Ver 3.0)ISO26262-6 Software development process (Ver 3.0)
ISO26262-6 Software development process (Ver 3.0)Hongseok Lee
 

Was ist angesagt? (20)

DSDM
DSDMDSDM
DSDM
 
Software Quality Assurance - Software Engineering
Software Quality Assurance - Software EngineeringSoftware Quality Assurance - Software Engineering
Software Quality Assurance - Software Engineering
 
Yazilim mi̇mari̇leri̇(aoy)
Yazilim mi̇mari̇leri̇(aoy)Yazilim mi̇mari̇leri̇(aoy)
Yazilim mi̇mari̇leri̇(aoy)
 
ISTQB Projelerde Spesifikasyona Dayalı Test Teknikleri
ISTQB Projelerde Spesifikasyona Dayalı Test TeknikleriISTQB Projelerde Spesifikasyona Dayalı Test Teknikleri
ISTQB Projelerde Spesifikasyona Dayalı Test Teknikleri
 
ISTQB PROJELERDE HATA YÖNETİMİ
ISTQB PROJELERDE HATA YÖNETİMİISTQB PROJELERDE HATA YÖNETİMİ
ISTQB PROJELERDE HATA YÖNETİMİ
 
Vmodel
VmodelVmodel
Vmodel
 
Software Testing Life Cycle Unit-3
Software Testing Life Cycle Unit-3Software Testing Life Cycle Unit-3
Software Testing Life Cycle Unit-3
 
A disciplina Teste no RUP
A disciplina Teste no RUPA disciplina Teste no RUP
A disciplina Teste no RUP
 
Introdução ao RUP
Introdução ao RUPIntrodução ao RUP
Introdução ao RUP
 
Software Development Life Cycle Model
Software Development Life Cycle ModelSoftware Development Life Cycle Model
Software Development Life Cycle Model
 
software development life cycle(SDLC)
software development life cycle(SDLC)software development life cycle(SDLC)
software development life cycle(SDLC)
 
Test Mühendisliğine Giriş Eğitimi - Bölüm 2
Test Mühendisliğine Giriş Eğitimi - Bölüm 2Test Mühendisliğine Giriş Eğitimi - Bölüm 2
Test Mühendisliğine Giriş Eğitimi - Bölüm 2
 
İyi Bir Test Uzmanı Olmak İçin...
İyi Bir Test Uzmanı Olmak İçin...İyi Bir Test Uzmanı Olmak İçin...
İyi Bir Test Uzmanı Olmak İçin...
 
Fundamentos para el diseno de software
Fundamentos para el diseno de softwareFundamentos para el diseno de software
Fundamentos para el diseno de software
 
Agile Testing by Example
Agile Testing by ExampleAgile Testing by Example
Agile Testing by Example
 
Modelos de Procesos del Software
Modelos de Procesos del SoftwareModelos de Procesos del Software
Modelos de Procesos del Software
 
ISTQB Metodolojisi ile Test Planlama ve Tahminleme
ISTQB Metodolojisi ile Test Planlama ve TahminlemeISTQB Metodolojisi ile Test Planlama ve Tahminleme
ISTQB Metodolojisi ile Test Planlama ve Tahminleme
 
Rational Unified Process (RUP)
Rational Unified Process (RUP)Rational Unified Process (RUP)
Rational Unified Process (RUP)
 
ISO26262-6 Software development process (Ver 3.0)
ISO26262-6 Software development process (Ver 3.0)ISO26262-6 Software development process (Ver 3.0)
ISO26262-6 Software development process (Ver 3.0)
 
Çevik Yaklaşım ve Scrum
Çevik Yaklaşım ve ScrumÇevik Yaklaşım ve Scrum
Çevik Yaklaşım ve Scrum
 

Ähnlich wie SDLC - Software Development Life Cycle

Yazılım Mimarileri - Yazılım Geliştirme Modelleri
Yazılım Mimarileri - Yazılım Geliştirme ModelleriYazılım Mimarileri - Yazılım Geliştirme Modelleri
Yazılım Mimarileri - Yazılım Geliştirme ModelleriKubra Kose
 
Yazılım mimarisi yazılım müh.
Yazılım mimarisi yazılım müh.Yazılım mimarisi yazılım müh.
Yazılım mimarisi yazılım müh.Hüseyin Örer
 
Scrum takımlarında performans ölçüm yaklaşımı
Scrum takımlarında performans ölçüm yaklaşımıScrum takımlarında performans ölçüm yaklaşımı
Scrum takımlarında performans ölçüm yaklaşımıNecmettin Ozkan
 
Yazılım Projelerine Scrum Yazılım Geliştirme Modelinin Uygulanması ve Scrum Y...
Yazılım Projelerine Scrum Yazılım Geliştirme Modelinin Uygulanması ve Scrum Y...Yazılım Projelerine Scrum Yazılım Geliştirme Modelinin Uygulanması ve Scrum Y...
Yazılım Projelerine Scrum Yazılım Geliştirme Modelinin Uygulanması ve Scrum Y...Cenk Derinozlu
 
Yazilim Gelistirme Yöntemleri
Yazilim Gelistirme YöntemleriYazilim Gelistirme Yöntemleri
Yazilim Gelistirme Yöntemlerim_korkmaz
 
İTÜ İşletme Fakültesi - E-ticarette Yazılım ve Altyapı
İTÜ İşletme Fakültesi - E-ticarette Yazılım ve AltyapıİTÜ İşletme Fakültesi - E-ticarette Yazılım ve Altyapı
İTÜ İşletme Fakültesi - E-ticarette Yazılım ve AltyapıMurat Kader
 
005 Alternatif Yazilim Surecleri [99 Slides]
005 Alternatif Yazilim Surecleri [99 Slides]005 Alternatif Yazilim Surecleri [99 Slides]
005 Alternatif Yazilim Surecleri [99 Slides]Erol Bozkurt
 
Çevik Manifesto Sunum
Çevik Manifesto Sunum Çevik Manifesto Sunum
Çevik Manifesto Sunum ERCAN CETIN
 
Mustafa Değerli - 2016 - UYMS 2016 - Makale - Bir Süreç Uyarlama Yaklaşımı Ör...
Mustafa Değerli - 2016 - UYMS 2016 - Makale - Bir Süreç Uyarlama Yaklaşımı Ör...Mustafa Değerli - 2016 - UYMS 2016 - Makale - Bir Süreç Uyarlama Yaklaşımı Ör...
Mustafa Değerli - 2016 - UYMS 2016 - Makale - Bir Süreç Uyarlama Yaklaşımı Ör...Dr. Mustafa Değerli
 
Agi̇le Yöntemleri̇
Agi̇le Yöntemleri̇Agi̇le Yöntemleri̇
Agi̇le Yöntemleri̇Fatih Soysal
 
Orta ölçekli bir işletmenin verimlilik temel adımları
Orta ölçekli bir işletmenin verimlilik temel adımlarıOrta ölçekli bir işletmenin verimlilik temel adımları
Orta ölçekli bir işletmenin verimlilik temel adımlarıKenan Berkdemir
 
Vhdl ders-notu
Vhdl ders-notuVhdl ders-notu
Vhdl ders-notusersld80
 
Bir Süreç Uyarlama Yaklaşımı Örneği: Süreç Uyarlama Matrisi (SUM), Deneyimler...
Bir Süreç Uyarlama Yaklaşımı Örneği: Süreç Uyarlama Matrisi (SUM), Deneyimler...Bir Süreç Uyarlama Yaklaşımı Örneği: Süreç Uyarlama Matrisi (SUM), Deneyimler...
Bir Süreç Uyarlama Yaklaşımı Örneği: Süreç Uyarlama Matrisi (SUM), Deneyimler...Dr. Mustafa Değerli
 
Sap2000 kursu-kocaeli
Sap2000 kursu-kocaeliSap2000 kursu-kocaeli
Sap2000 kursu-kocaelisersld95
 
Sap2000 kursu-tuzla
Sap2000 kursu-tuzlaSap2000 kursu-tuzla
Sap2000 kursu-tuzlasersld95
 
Sap2000 kursu-levent
Sap2000 kursu-leventSap2000 kursu-levent
Sap2000 kursu-leventsersld95
 
Sap2000 kursu-sultanbeyli
Sap2000 kursu-sultanbeyliSap2000 kursu-sultanbeyli
Sap2000 kursu-sultanbeylisersld95
 

Ähnlich wie SDLC - Software Development Life Cycle (20)

Yazılım Mimarileri - Yazılım Geliştirme Modelleri
Yazılım Mimarileri - Yazılım Geliştirme ModelleriYazılım Mimarileri - Yazılım Geliştirme Modelleri
Yazılım Mimarileri - Yazılım Geliştirme Modelleri
 
Çevik Yaklaşım, Scrum ve XP
Çevik Yaklaşım, Scrum ve XPÇevik Yaklaşım, Scrum ve XP
Çevik Yaklaşım, Scrum ve XP
 
Yazılım mimarisi yazılım müh.
Yazılım mimarisi yazılım müh.Yazılım mimarisi yazılım müh.
Yazılım mimarisi yazılım müh.
 
Scrum takımlarında performans ölçüm yaklaşımı
Scrum takımlarında performans ölçüm yaklaşımıScrum takımlarında performans ölçüm yaklaşımı
Scrum takımlarında performans ölçüm yaklaşımı
 
Yazılım Projelerine Scrum Yazılım Geliştirme Modelinin Uygulanması ve Scrum Y...
Yazılım Projelerine Scrum Yazılım Geliştirme Modelinin Uygulanması ve Scrum Y...Yazılım Projelerine Scrum Yazılım Geliştirme Modelinin Uygulanması ve Scrum Y...
Yazılım Projelerine Scrum Yazılım Geliştirme Modelinin Uygulanması ve Scrum Y...
 
Yazilim Gelistirme Yöntemleri
Yazilim Gelistirme YöntemleriYazilim Gelistirme Yöntemleri
Yazilim Gelistirme Yöntemleri
 
Agile proje yönetimi
Agile proje yönetimiAgile proje yönetimi
Agile proje yönetimi
 
İTÜ İşletme Fakültesi - E-ticarette Yazılım ve Altyapı
İTÜ İşletme Fakültesi - E-ticarette Yazılım ve AltyapıİTÜ İşletme Fakültesi - E-ticarette Yazılım ve Altyapı
İTÜ İşletme Fakültesi - E-ticarette Yazılım ve Altyapı
 
005 Alternatif Yazilim Surecleri [99 Slides]
005 Alternatif Yazilim Surecleri [99 Slides]005 Alternatif Yazilim Surecleri [99 Slides]
005 Alternatif Yazilim Surecleri [99 Slides]
 
Çevik Manifesto Sunum
Çevik Manifesto Sunum Çevik Manifesto Sunum
Çevik Manifesto Sunum
 
Mustafa Değerli - 2016 - UYMS 2016 - Makale - Bir Süreç Uyarlama Yaklaşımı Ör...
Mustafa Değerli - 2016 - UYMS 2016 - Makale - Bir Süreç Uyarlama Yaklaşımı Ör...Mustafa Değerli - 2016 - UYMS 2016 - Makale - Bir Süreç Uyarlama Yaklaşımı Ör...
Mustafa Değerli - 2016 - UYMS 2016 - Makale - Bir Süreç Uyarlama Yaklaşımı Ör...
 
Scrum tanıtımı
Scrum tanıtımıScrum tanıtımı
Scrum tanıtımı
 
Agi̇le Yöntemleri̇
Agi̇le Yöntemleri̇Agi̇le Yöntemleri̇
Agi̇le Yöntemleri̇
 
Orta ölçekli bir işletmenin verimlilik temel adımları
Orta ölçekli bir işletmenin verimlilik temel adımlarıOrta ölçekli bir işletmenin verimlilik temel adımları
Orta ölçekli bir işletmenin verimlilik temel adımları
 
Vhdl ders-notu
Vhdl ders-notuVhdl ders-notu
Vhdl ders-notu
 
Bir Süreç Uyarlama Yaklaşımı Örneği: Süreç Uyarlama Matrisi (SUM), Deneyimler...
Bir Süreç Uyarlama Yaklaşımı Örneği: Süreç Uyarlama Matrisi (SUM), Deneyimler...Bir Süreç Uyarlama Yaklaşımı Örneği: Süreç Uyarlama Matrisi (SUM), Deneyimler...
Bir Süreç Uyarlama Yaklaşımı Örneği: Süreç Uyarlama Matrisi (SUM), Deneyimler...
 
Sap2000 kursu-kocaeli
Sap2000 kursu-kocaeliSap2000 kursu-kocaeli
Sap2000 kursu-kocaeli
 
Sap2000 kursu-tuzla
Sap2000 kursu-tuzlaSap2000 kursu-tuzla
Sap2000 kursu-tuzla
 
Sap2000 kursu-levent
Sap2000 kursu-leventSap2000 kursu-levent
Sap2000 kursu-levent
 
Sap2000 kursu-sultanbeyli
Sap2000 kursu-sultanbeyliSap2000 kursu-sultanbeyli
Sap2000 kursu-sultanbeyli
 

Mehr von Dilaver Demirel

Mehr von Dilaver Demirel (14)

Git - Code Versiyon Yönetim Sistemi
Git - Code Versiyon Yönetim SistemiGit - Code Versiyon Yönetim Sistemi
Git - Code Versiyon Yönetim Sistemi
 
Microservices Architecture
Microservices ArchitectureMicroservices Architecture
Microservices Architecture
 
Unit test
Unit testUnit test
Unit test
 
12factor apps
12factor apps12factor apps
12factor apps
 
Yazılım Prensipleri ve Code Review Check List
Yazılım Prensipleri ve Code Review Check ListYazılım Prensipleri ve Code Review Check List
Yazılım Prensipleri ve Code Review Check List
 
Oracle Weblogic Server
Oracle Weblogic ServerOracle Weblogic Server
Oracle Weblogic Server
 
Java Server Faces
Java Server FacesJava Server Faces
Java Server Faces
 
Pentaho BI
Pentaho BIPentaho BI
Pentaho BI
 
JVM ve VisualVm
JVM ve VisualVmJVM ve VisualVm
JVM ve VisualVm
 
Apache Maven
Apache MavenApache Maven
Apache Maven
 
Aspect Oriented Programming
Aspect Oriented ProgrammingAspect Oriented Programming
Aspect Oriented Programming
 
NodeJS ve MongoDB
NodeJS ve MongoDBNodeJS ve MongoDB
NodeJS ve MongoDB
 
NodeJS Nedir
NodeJS NedirNodeJS Nedir
NodeJS Nedir
 
Jpa
JpaJpa
Jpa
 

SDLC - Software Development Life Cycle

  • 1. ddemirel / 20171124 Software Development Life Cycle
  • 2. Yazılım Geliştirme Nedir? Yazılım geliştirmek sadece kodlamadan ibaret değildir. Bu konu karmaşıktır ve günümüzdeki uygulama gereksinimlerinde daha da karmaşık hale gelmektedir. Bu bize gösteriyor ki bu işin ciddi bir sistematiğinin olması gerekmektedir. Aksi takdirde ne kaliteli yazılımlar geliştirebiliriz ne de piyasa şartlarında aynı pozisyonda kalabiliriz.
  • 3. SDLC SDLC yazılımların nasıl geliştirilmesi gerektiğini veya nasıl iyileştirilmesi gerektiğini anlatan bir rota çizmektedir. SDLC yüksek kaliteli yazılımları tasarlamak, geliştirmek ve test etmek için yazılım endüstrisi tarafından kullanılan bir süreçtir. SDLC müşteri beklentilerini karşılayan, planlanan zaman içerisinde tamamlanan, maliyet tahminlerine uygun kaliteli bir yazılım üretmeyi amaçlar. Uluslararası bir standarttır. Yazılım geliştirmede ve bakımında gerekli olan tüm görevleri tanımlamayı hedeflemektedir.
  • 4. SDLC – Adımlar/Aşamalar Planlama Analiz Teknik ve Süreçsel Tasarım Geliştirme Test Deployment
  • 5. • SDLC’nin en önemli aşamasıdır. • Müşteri ve ekipteki tecrübeli kişiler tarafından gerçekleştirilir. • Burada ortaya çıkan bilgiler daha sonra temel proje yaklaşımını planlamak ve ekonomik, teknik fizibilite çalışmaları aşamasında kullanılır. • Kalite güvencesi şartlarının planlanması yapılır. • Projeye ilişkin riskler ortaya konur. • En az riskle projeyi gerçekleştirmek için teknik yaklaşımlar belirlenir.
  • 6. • Ürün gereksinimlerini açıkça tanımlama ve belgeleme yapılır. • Müşteriden onay alınır. • Proje boyunca geliştirilecek tüm ürün gereksinimleri bu belgelerde bulunur.
  • 7. • Ürün gereksinimlerine bağlı olarak yazılımın hangi mimaride geliştirileceğinin tasarlandığı aşamadır. • Birden fazla yaklaşım önerisi verilebilir. • Bu yaklaşımlar ilgili proje paydaşları ile paylaşılır, gözden geçirilir ve risk değerlendirmeleri yapılır. Bu aşamada aşağıdaki konulara dikkat edilir ve en iyi yaklaşım seçilir. • Ürün sağlamlığı, tasarım modülerliği, bütçe, zaman kısıtları
  • 8. • Bu aşamada geliştirmeler başlar. • Geliştirmeler yapılan analiz ve tasarımlara göre geliştirilir. • Bu aşamada teknik tasarım ve kurum standartlarına sadık kalınır.
  • 9. • Modern SDLC yöntemlerinde testler her aşamada yapılır. • Ürünün analiz ve müşteri gereksinimlerine uygunluğu kontrol edilir.
  • 10. • Ürün test edildikten ve kullanılmaya hazır hale geldikten sonra teslim edilir. • Ürün öncelikle pilot kullanım aşamasından geçirilir. • Sonrasında geri dönüşler ile ürün iyileştirilebilir.
  • 11. SDLC - Modelleri • Waterfall • Iterative • V-Model • Agile
  • 12. SDLC - Waterfall • İlk modeldir. • Doğrusal-sıralı model olarak da adlandırılır. • Kullanımı ve anlaması çok kolaydır. • Her aşamanın bir sonraki aşama başlamadan tamamlanması gerekir. • Fazlandırmalar yapılır ve bu fazlardan birinin sonucu diğerinin girdisi olarak kabul edilir.
  • 14. SDLC - Waterfall • Kullanımın uygun olduğu durumlar; – Gereksinimler çok iyi dokümante edilmiş, açık ve sabit ise, – Ürün tanımı kararlı ise, – Belirsiz gereksinimler yok ise, – Ürünü destekleyecek gerekli uzmanlığa sahip kaynaklar var ise, – Proje kısa ise.
  • 15. SDLC – Waterfall - Avantajları • Anlamak ve kullanmak kolaydır. • Modelin sağlamlığı nedeniyle kolay yönetilir. Her aşamada belirli çıktılar ve inceleme süreci vardır. • Aşamalar ardı ardına işlenir ve tamamlanır. • Gereksinimlerin iyi anlaşılabildiği küçük projelerde iyi uygulanabilir. • Aşamalar açıkça tanımlanır. • İşleri sıralamak kolaydır. • Süreçler ve sonuçlar kolay iyi dokümante edilir.
  • 16. SDLC – Waterfall - Dezavantajları • Son aşamaya kadar uygulama çalışır durumda olmayabilir. • Sonuçlar açısından yüksek risk ve belirsizlikler vardır. • Karmaşık ve object-oriented projeler için uygun değildir. • Uzun ve devam eden projeler için zayıf bir modeldir. • İhtiyaçların değişme riskinin yüksek olduğu projeler için uygun değildir. Bundan dolayı bu modelde risk ve belirsizlik yüksektir. • Aşamaların ilerlemesini ölçmek zordur. • Herşey önceden belirlendiği için değişen gereksinimleri karşılayamaz.
  • 17. SDLC – Iterative(Yinelemeli) • Bu modekde süreç yazılım gereksinim setinin küçük bir parçasının implementasyonu ile başlar ve uygulama tamamlanana kadar devam eder. • Bu işlem tekrarlanarak modelin her tekrarlanması sonunda yazılımın yeni bir sürümü üretilir. • Her yinelemede tasarım değişiklikleri yapılır ve yeni işlevler eklenir. • Gereksinimlerin tamamen hazır olması gerekmez. • Temel fikir tekrarlanan döngüler ile her defada küçük bölümler halinde sistem tamamlanmaya çalışılır. • Aynı anda iki farklı iterasyon yapılıyor olabilir. • Bu modelde gereksinimlerin tümü çeşitli bölümlere ayrılmıştır. • Gereksinimler her iterasyonda tasarım, geliştirme ve test işlemine tabi olur. • Yazılım arka arkaya iterasyonlar vasıtasıyla geliştikçe, sürümü doğrulamak için testler tekrarlanmalı ve genişletilmelidir.
  • 19. SDLC - Iterative(Yinelemeli) • Kullanımın uygun olduğu durumlar; – Sistem gereksinimlerinin açıkça tanımlandığı ve anlaşılmış olduğunda, – Ana gereksinimler tanımlanmalıdır, sonrasında bazı işlevler ya da iyileştirmeler zamanla geliştirilebilir olduğunda, – Yeni bir teknoloji kullanılıyor ve projede çalışanlar bunu yeni öğreniyorsa, – Gelecekte değişebilecek bazı yüksek riskli özellikler ve hedefler varsa.
  • 20. SDLC - Iterative(Yinelemeli) - Avantajları • Bazı fonksiyonlar sürecin başında geiştirilebilir. • Sonuçlar erken ve periyodik olarak alınır. • Paralel geliştirme planlanabilir. • İlerlemeler ölçülebilir. • Kapsam ve gereksinimleri değiştirmek daha az maaliyetlidir. • Küçük iterasyonlarda test ve hataları temizleme kolaydır. • Riskler iterasyon sırasında tanımlanır ve çözülür, her yineleme kolaylıkla yönetilen bir kilometre taşıdır. • Risk yönetimi kolaydır. Önce yüksek riskli kısımlar yapılır. • Her adımda, kullanılabilir ürün çıkartılır. • Her iterasyonda tespit edilen sorunlar, zorluklar ve riskler sonrakilerde göz önünde bulundurulabilir. • Değişen gereksinimleri destekler. • Başlangıçtaki çalışma süresi daha azdır. • Büyük ve kritik projelere daha uygundur. • Döngüde müşterinin değerlendirebileceği ürünler ortaya çıkar.
  • 21. SDLC - Iterative(Yinelemeli) - Dezavantajları • Fazla kaynak gerekebilir. • Değişim maaliyeti kolay olsada değişimi yönetmek kolay olmayabilir. • Çok fazla yönetim takibi, dikkati gerekebilir. • Sistem mimarisi veya tasarım konuları ile ilgili sorunlar ortaya çıkabilir, çünkü tüm gereksinimler tüm yaşam döngüsü başında toplanmamaktadır. • İterasyonların tanımlanması, komple sistemin tanımlanmasını gerektirebilir. • Küçük projelere uygun değildir. • Yönetim karmaşıklığı yüksektir. • Projenin sonu bilinmeyebilir, ki bu bir risktir. • Risk analizi için yüksek vasıflı kaynaklara ihtiyaç vardır. • Projelerin ilerlemesi, risk analizi aşamasına oldukça bağımlıdır.
  • 22. SDLC – V-Model • Süreçlerin yürütülmesinin V şeklinde sıralı bir şekilde gerçekleştiği SDLC modelidir. • Waterfall’ın bir uzantısıdır ve her bir aşamanın bir test aşamasına bağlı olma prensibine dayanır. • Geliştirme döngüsündeki her aşamanın ilişkili olduğu bir test aşaması olduğu anlamına gelir. • Disiplinli bir modeldir ve sonraki aşamaya mevcut aşamayı tamamladıktan sonra geçilebilir. • Geliştirme ve test paralel yürür.
  • 24. SDLC – V-Model • İşleyiş olarak Waterfall modele çok benzemektedir, ikisi de sıralı olarak işler. • Gereksinimler proje başlamadan açık olarak belirlenmelidir çünkü geri dönüp değişiklik yapmak çok maaliyetli olur. • Bu model medical projelerde kullanılır, çünkü çok disiplinlidir. • V-Model uygulamak için uygun durumlar; – Gereksinimlerin iyi belirlenmiş ve net olarak belgelenmiş olması – Ürün tanımının stabil olması – Teknolojinin değişken olmadığı ve takım elemanlarınca iyi bilinmesi – Belirsiz ya da tanımsız gereksinimlerin olmaması – Kısa proje olması
  • 25. SDLC – V-Model – Avantaj/Dezavantaj • Avantajları – Yüksek disiplinlidir, aşamalar tamamlanarak ilerler – Gereksinimlerin iyi tanımlandığı küçük projeler için uygundur – Anlaması ve uygulaması kolaydır – Sağlam bir model olduğu için kolay yönetilir – Her aşamada belirli çıktılar ve inceleme süreci vardır • Dezavantajları – Sonuç uygulama açısından yüksek riskli ve belirsizlikleri vardır – Karmaşık projeler için uygun değildir – Uzun ve devam eden projeler için yetersizdir – İhtiyaçların orta ve yüksek derecede değişme ihtimali olan projeler için uygun değildir – Uygulama test aşamasındayken geriye dönüp bir işlevi değiştirmek zordur – Son aşamaya kadar çalışan bir uygulama ortaya çıkmayabilir
  • 26. SDLC – Agile(Çevik) • Agile Model, süreç uyumluluğu ve müşteri memnuniyetine odaklanarak hızlı bir şekilde sürekli çalışan uygulamalar oluşturmayı hedefler • Küçük iterasyonlarla üretim yaparak ürünü ortaya çıkarır • Her iterasyon 1-3 hafta arasında sürer • Her iterasyonda farklı konularda eşzamanlı olarak çalışan yetenekli takımlar ile gerçekleştirilir – Planlama – Gereksinim analizi – Tasarım – Geliştirme – Unit Test – Kabul Testi • İterasyonun sonunda çalışan uygulma müşteriye gösterilir
  • 27. SDLC – Agile(Çevik) • Odaklanılan Noktalar – Değişime ayak uydurabilme – Dokümantasyandan çok değişebilen müşteri gereksenimlerine odaklanma – Sürekli çalışan ve işe yarayan uygulama üretme – Küçük zaman dilimlerinde belilenen görevleri tamamlama – Yetenekli ve yüksek iletişime sahip takım elemanları
  • 29. SDLC – Agile(Çevik) • Çevik model her projenin farklı şekilde ele alınması gerektiğine ve mevcut yöntemlerin proje gereksinimlerine en uygun hale getirilmesi gerektiğine inanır • İşler, bir sürümde belirli özellikler sunmak için küçük zamanlara bölünür • Yinelemeli yaklaşım uygulanır ve her yinelemenin sonunda çalışan yazılım teslim edilir • Her çıktı aşamalı olarak farklı özellikler kazandırır ve nihayetinde müşterinin istediği tüm özelliklere sahip olmuş olur
  • 30. SDLC – Agile Manifesto Prensipleri • Bireyler ve Etkileşim – Kendi kendini iyileştirme ve motivasyon önemlidir – Görevlerde yer değiştirme ve birlikte kodlama önelidir • Çalışan Uygulama – Çalışan bir uygulama sunmak belgeler oluşturmadan daha önemlidir ve gereksinimleri anlamak için en iyi iletişim aracıdır • Müşteri İşbirliği – Gereksinimler çeşitli faktörlerden dolayı projenin başlangıcında tamamen toplanamayacağı için, doğru ürün gereksinimlerini sağlama müşteri ile sürekli iletişim ile sağlanabilir. • Değişime Karşılık Verme – Hızlı bir şekilde değişime ve sürekli gelişime olumlu yanıt veremeye odaklanılır.
  • 31. SDLC – Agile ile Geleneksel Modellerin Kıyaslaması • Agile uyarlanabilir yazılım geliştirme yöntemlerine dayanır, geleneksel modeller tahmini bir yaklaşım benimser • Geleneksel modeller detaylı planlama ile çalışır ve ileriki birkaç ayda veya ürünün ömrü boyunca tamamlanacak işlerin bir tahmini ile yürür. • Tahminli yöntemler tamamen döngü başlangıcında yapılan ihtiyaç analizi ve planlamaya bağlıdır. Sonradan istenen değişiklikler sıkı bir değişim yönetimi ile sağlanır. • Agile ayrıntılı planlama yapılmadan uyarlanabilir bir yaklaşım kullanır ve gelecekteki işler üzerinden yalnızca hangi özelliklerin geliştirilmesi gerektiğine ilişkin netlik vardır. • Özelliklere dayalı bir gelişim vardır ve ekip sürekli olarak değişen ürün gereksinimlerine uyum sağlar. • Agile ile aşamalı ve istenilenler doğrultusunda ilerlediği için çıktı açısında riskler en aza iner. • Müşteri etkileşimi Agile metodolojinin omurgasını oluşturur, az dökümantasyon sürekli iletişim, bu metodolojinin en tipik özelliğidir. • Agile takımlarda yakın işbirliği çok önemlidir.
  • 32. SDLC – Agile - Avantaj / Dezavantaj • Agile son dönemde yazılım dünyasında büyük oranda kabul görmüş bir yöntemdir. Bununla birlikte bu yöntem her ürün için uygun olmayabilir. – Avantajlar • Çok gerçekçi bir yaklaşım sağlar • Ekip çalışmasını ve birbirini eğiten elemanları destekler • İşlevler hızlı geliştirilir ve gösterilir • Az kaynak ihtiyacı vardır • Sabit ve değişken gereksinimlere uygundur • İhtiyaçların bir parçasını karşılayan ve sürekli çalışan uygulamalar sunar • Planlanmış zamanlarda ürün çıkartmayı sağlar • Az ya da hiç planlama gerekli olmayabilir • Kolay yönetilir • Geliştiricilere esneklik kazandırır
  • 33. SDLC – Agile - Avantaj / Dezavantaj • Dezavantajlar – Müşteri etikileşimine bağlı olarak müşteri açık değilse ekip yanlış yönde yönlenir – Minimum dökümantasyon olduğundan yüksek bireysel bağımlılık vardır – Ürün gereksinimleri sürekli değişebileceğinden maliyetler peşinen tahmin edilemez. – Müşterilerden sürekli geri bildirim almak sizi alaşağı edebilir ya da bazı müşterilerin zamanı ve hiç ilgisi olmayabilir. – Müşteriler geri bildirim vermek istediklerinde akıllarına gelebilecek yeni istekler ek fazları ortaya çıkarır. Bu durum proje maliyetlerini ve süresini uzatabilir. – Müşteri ile iletişimi zor olan büyük Kurumsal yapılarda uygulamak zor olacaktır.