Çevik Metodoloji: Anlam, avantajlar, dezavantajlar ve daha fazlası
Yayınlanan: 2021-03-20Çevik metodoloji, sürekli revizyonlar dahil ederken daha kısa geliştirme döngüleri kullanarak müşterilere daha iyi değer sunmayı amaçlayan bir yazılım geliştirme felsefesidir.
Yazılım geliştirme, matematik ve bilim alanlarından büyüdü. Böylece, başlangıçta bu alanlardaki bilimsel yöntemleri birleştirdi.
Bu yöntemler, 1970'lerde günün gereksinimlerini karşılamak için şelale yaklaşımına dönüştü. O günlerde bilgisayarlar ve yazılımları büyük, karmaşıktı ve onlarca yıl dayanacak şekilde tasarlandı. Yani şelale yöntemi çok uygundu.
Ancak 1990'ların sonunda, internet dünyayı çarpıcı biçimde değiştiriyordu ve yeni bir yaklaşım gerekli hale geldi. Çevik metodoloji bu şekilde hayat buldu.
Aşağıda, bu yazılım geliştirme hareketine ve size ve ekibinize nasıl yardımcı olabileceğine daha yakından bir bakış yer almaktadır.
İçindekiler
Çevik geliştirme yönteminin tarihi
Çevik yazılım geliştirme, internetten ve 1990'ların ve 2000'lerin başlarındaki patlama yıllarında doyumsuz uygulama ihtiyacından doğdu.
Bu aynı zamanda, bilgisayar bilimi geçmişine sahip olmayan birçok geliştiricinin, farklı gruplara ve sektörlere hitap eden web sitelerine olan büyük ihtiyaç nedeniyle web geliştirmeye geçtiği bir dönemdi.
Doğal olarak, girişimlerin çoğu küçüktü. Bu nedenle, çoğu gelişme, nihai hedefin genellikle pazara hızlı bir şekilde ulaşmak olduğu küçük ekiplerde gerçekleşti. Geç kalmak pazar payını kaybetmek anlamına geliyordu.
Şelale modelinin ürünleri mümkün olduğunca çabuk pazara sunma konusundaki kısıtlamalarına karşı koymak için, 1990'larda farklı geliştiriciler farklı yöntemler geliştirdiler. Bunlar Hızlı Uygulama Geliştirme (RAD), Scrum, Extreme Programming (XP), Kanban ve diğerlerini içerir.
Daha sonra, 2001 yılında, erken çevik geliştirmenin bir formunu veya diğerini uygulayan 17 geliştirici, Utah, ABD'de bir araya geldi. Ardından 'Çevik Yazılım Geliştirme Manifestosu'nu yayınlayarak toplantılarını sonlandırdılar.
Bu manifesto 4 değer ve 12 ilkeye dayanmaktadır.
Çevik geliştirmenin 4 değeri ve 12 ilkesi
Toplantıları sırasında bir araya getirdikleri deneyimlerden 17 geliştirici, yazılımı daha verimli bir şekilde oluşturmak için bir dizi değer üzerinde anlaşmaya vardı.
Bu dört değer aşağıdaki gibidir:
- Süreçler ve araçlar üzerinden bireyler ve etkileşimler . Bu, belirli bir süreci takip ederken araçlarla yazılım geliştirmenin önemli olduğu anlamına gelir. Ancak birlikte daha etkili çalışan yetkin insanlara sahip olmak daha önemlidir.
- Kapsamlı belgeler üzerinde çalışan yazılım . Bu, gerçek yazılım geliştirme sürecinden önce ilk yazılım tasarlama ve bunun için belgeler yazma şelale yöntemine saldırır.
- Sözleşme müzakeresi üzerinden müşteri işbirliği . Yalnızca müşteri veya kullanıcı ile yakın çalışarak müşterinin tam olarak neye ihtiyacı olduğunu öğrenebilir ve geliştirebilirsiniz. Bu daha fazla değer yaratır.
- Bir planı izleyerek değişime yanıt vermek . Bir proje planını takip etmek önemlidir. Ancak plan çok katı olmamalıdır. Paydaşların beklentilerini karşılamak için değişikliklere uyum sağlamalıdır.
Yukarıdaki bu Çevik Manifesto değerleri 12 İlkeyi temel alır ve aşağıdaki gibidir:
- Değerli yazılımların erken ve sürekli teslimi ile müşteri memnuniyeti.
- Geç geliştirme aşamasında bile değişen gereksinimleri memnuniyetle karşılayın.
- Çalışan yazılımı sık sık teslim edin (aylar yerine haftalar)
- İş adamları ve geliştiriciler arasında yakın, günlük işbirliği
- Projeler, güvenilmesi gereken motive olmuş bireyler etrafında inşa edilir.
- Yüz yüze görüşme en iyi iletişim şeklidir (birlikte konum)
- Çalışan yazılım, ilerlemenin birincil ölçüsüdür
- Sürdürülebilir kalkınma, sabit bir tempoyu koruyabilme
- Teknik mükemmelliğe ve iyi tasarıma sürekli dikkat
- Sadelik - yapılmayan iş miktarını en üst düzeye çıkarma sanatı - esastır
- En iyi mimariler, gereksinimler ve tasarımlar kendi kendini organize eden ekiplerden ortaya çıkar
- Ekip düzenli olarak nasıl daha etkili olunacağını düşünür ve buna göre kendini ayarlar.
Yinelemeler veya Sprintler
Çevik yazılım geliştirmedeki yinelemeler veya sprintler, geliştirme çalışmasının bölündüğü, genellikle 1 ila 4 haftalık kısa dönemlerdir. Bu, daha az planlama gerektirdiğinden işleri yönetmeyi kolaylaştırır.
Her ekip ayrıca tipik olarak farklı işlevlere sahip üyelerden oluşur ve bunlar planlama, analiz, tasarım, kodlama ve testi içerebilir.
Ekip, her yinelemede veya sprintte birlikte yazılım üzerinde çalışır. Ve sonunda çalışan bir ürün üretiyorlar. Bu çalışan yazılım parçası, Çevik Manifesto'ya göre gerçek ilerlemenin bir ölçüsüdür.
Ürüne ve müşterinin ihtiyaçlarına bağlı olarak, bir yinelemenin ürünü piyasaya sürülebilir veya piyasaya sürülmeyebilir. Bu nedenle, tek bir sürüm için genellikle birçok yineleme gerekir.

Çevik geliştirmenin avantajları
Tahmin edebileceğiniz gibi, çevik metodoloji birçok avantaj getiriyor. Bunlar aşağıdaki gibidir:
- Fikirlerin daha hızlı uygulanması
- Şelale yaklaşımından daha fazla esneklik
- Yönetilen yinelemelerle geliştirilmiş üretkenlik
- Kullanıcı etkileşimleriyle daha iyi ürünler
- Hatalar hızlı bir şekilde belirlenir ve ortadan kaldırılır
Çevik metodolojinin dezavantajları
Çevik bir geliştirme yöntemiyle çalışmanın bazı dezavantajları da vardır. Ve şunları içerebilirler:
- Maliyetlerin tamamını başlangıçta değerlendirmek zor olabilir
- Çok sayıda müşteri girdisine ihtiyaç duyar
- Çok sayıda plansız iş içerir
- Açıkça tanımlanmış proje sonu yok
Çevik Yöntemler ne zaman kullanılır?
- Yazılımın ne gerektirdiğini tahmin edemediğinizde
- Müşterilere yeterli erişiminiz var
- Bir web uygulaması veya güncellenmesi kolay bir sistem geliştiriyorsunuz
- Erken bir sürümle pazar payını hızla yakalamanız gerekiyor
Popüler Çevik geliştirme çerçeveleri
Birçok popüler çevik geliştirme çerçevesi vardır. Bazıları 2001'deki Çevik Manifesto'dan çok önce başladı, bazıları ise daha sonra geldi.
Bir çerçevenin amacı basitçe bir yöntemin kurallarını tanımlamaktır. Bu nedenle, en popüler çerçeveler referansınız için aşağıda listelenmiş olsa da, çok daha fazlası var. Ayrıca kendi çerçevenizi oluşturmakta veya mevcut bir çerçeveyi ekibinize uyacak şekilde değiştirmekte özgürsünüz.
- Scrum : Bu çerçeve, 10 veya daha az üyeye sahip ekipler için tasarlanmıştır. İş, günlük 15 dakikalık toplantılarla 2-4 haftalık sprintlere bölünür.
- Kanban : Kökeni Toyota olan Kanban, reklam panosu anlamına gelen Japonca bir kelimedir ve görsel yardımları takdir eden ekipler için çok faydalıdır. Görevler, yapışkan notlar veya uygulamalar gibi görsel temsiller kullanılarak bir aşamadan diğerine taşınır.
- Hızlı Uygulama Geliştirme RAD : Bu ifade hem genel olarak çevik yazılım geliştirmeyi hem de James Martin yöntemini ifade edebilir. RAD, kullanıcı arabirimi gereksinimlerine odaklanır ve büyük ölçüde prototip oluşturmaya dayanır.
- Yalın Başlangıç : Bu çerçeve, bir ürün veya hizmet geliştirmeye ihtiyaç duyan, ancak önce pazar uygulanabilirliğini belirlemesi gerekenler içindir. Neyin işe yarayıp neyin yaramadığını görmek için deney kullanımını içerir.
Diğer dikkate değer çerçeveler arasında Extreme Programming (XP), Uyarlanabilir Yazılım Geliştirme, Çevik Modelleme, Dinamik Sistem Geliştirme Yöntemi ve Ölçekli Çevik Çerçeve bulunur.
Çevik ve Şelale Metodolojileri
İşte yazılım geliştirmeye yönelik çevik ve şelale yöntemlerine yan yana bir bakış. Her yöntemin diğerine karşı nasıl yığıldığını bilmek yardımcı olabilir. Böylece işiniz için en iyi araçları kolayca seçebilirsiniz.
Atik | Şelale |
---|---|
Artımlı ve yinelemeli yaklaşım | Doğrusal ve sıralı yaşam döngüsü modeli |
Değiştirmek için esnek | Katı uygulamalar |
Testler ve incelemeler devam ediyor | Tamamlandıktan sonra yalnızca bir test aşaması vardır |
Gereksinimler değişebilir | Gereksinimler planlamadan sonra sabitlenir |
Birçok küçük projeden oluşan bir koleksiyon | Tek bir proje |
Daha fazla müşteri katılımı | Daha az müşteri katılımı |
Uyarlanabilir ve Öngörülü Geliştirme
Çevik yazılım geliştirmenin amacı, gerçek dünyadaki değişikliklere uyum sağlamaktır. Ve bunlar genellikle bir müşterinin veya kullanıcının ihtiyaçlarının bir sonucudur. Adaptasyon, şelale modelinin öngörücü doğasıyla tam bir zıtlık içindedir.
O zaman, işlerin nasıl sonuçlanacağından emin olmadığınız sistemler geliştirirken çevik yöntemler kullanmak mantıklıdır. Veya bir endüstride sürekli değişiklikler ve evrim olduğunda. İnternet büyük bir örnek.
Aksi takdirde, hakkında her şeyi bildiğiniz ve pek değişmeyen veya değişime bağışık olmayan bir sistem veya pazar için geliştiriyorsanız. O zaman şelale felsefesinin öngörücü doğası yardımcı olabilir.
Yazılım Ustalığı
Yazılım Ustalığı, çevik geliştirme ilkelerine dayanan ve bir projede yer alan yazılım geliştiricilerin becerilerini vurgulamaya odaklanan başka bir felsefedir.
Yazılım Ustalığı hareketinin de bir manifestosu var ve şöyle diyor:
Kalkınan Yazılım Ustaları olarak, bunu uygulayarak ve başkalarının zanaatı öğrenmesine yardımcı olarak profesyonel yazılım geliştirme çıtasını yükseltiyoruz. Bu çalışma sayesinde şu değerlere ulaştık: · Sadece çalışan yazılımlar değil, aynı zamanda iyi hazırlanmış yazılımlar · Sadece değişime cevap vermekle kalmayıp, aynı zamanda sürekli değer katmak · Sadece bireyler ve etkileşimler değil, aynı zamanda bir profesyoneller topluluğu · Yalnızca müşteri işbirliği değil, aynı zamanda üretken ortaklıklar Yani soldaki eşyaların peşindeyken sağdaki eşyaları vazgeçilmez bulduk. 2009, aşağıda imzası bulunan. Bu beyan herhangi bir biçimde serbestçe kopyalanabilir, ancak yalnızca bu bildirim aracılığıyla bütünüyle kopyalanabilir.
Çözüm
Çevik metodoloji ve yazılım geliştirmeye bakışımızın sonuna geldiğimizde, orada çok fazla seçenek olduğunu görebilirsiniz.
Her takım farklıdır. Ve tıpkı farklı ekiplerin değişen zamana uyum sağlamak için farklı yöntemleri geliştirmesi gibi. Siz de ya önceden kurulmuş bir çerçeveye giderek ya da onu ekibinize uyacak şekilde uyarlayarak uyum sağlamanız gerekecek.