Ç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ı. Dolayısıyla ş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.
Çevik geliştirme yönteminin tarihçesi
Ç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 küçük ekiplerde gerçekleşti ve nihai hedef genellikle pazara hızlı bir şekilde ulaşmaktı. 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'de bir ara, erken çevik geliştirmenin bir biçimini 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
17 geliştirici, toplantıları sırasında bir araya getirdikleri deneyimlerden yola çıkarak, 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:
- Bireyler ve etkileşimler süreçler üzerinde ve araçlar. 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.
- Çalışan yazılım kapsamlı belgeler üzerinde. 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.
- Müşteri işbirliği fazla sözleşme müzakeresi. Yalnızca müşteriyle veya kullanıcıyla yakın çalışarak müşterinin tam olarak neye ihtiyacı olduğunu öğrenebilir ve geliştirebilirsiniz. Bu daha fazla değer yaratır.
- Değişime yanıt verme bir planı takip etmenin ötesinde. 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 test etmeyi 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şimleri yoluyla 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.
- Saldırı: Bu çerçeve, 10 veya daha az üyesi olan ekipler için tasarlanmıştır. İş, günlük 2 dakikalık toplantılarla 4-15 haftalık sprintlere bölünür.
- Kanban: Kökeni Toyota olan Kanban, reklam panosu anlamına gelen Japonca bir kelimedir ve görsel araçları 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.
|Çevik||Çağlayan|
|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, profesyonel yazılım geliştirme çıtasını, onu uygulayarak ve başkalarının zanaatı öğrenmesine yardımcı olarak yükseltiyoruz. Bu çalışma sayesinde aşağıdakilere değer verdik: · Yalnızca çalışan yazılımlara değil, aynı zamanda iyi hazırlanmış yazılımlara da · Yalnızca değişime yanıt vermekle kalmayıp, aynı zamanda sürekli olarak değer katmaya da · Sadece bireylere ve etkileşimlere değil, aynı zamanda bir profesyoneller topluluğuna da · Yalnızca müşteriye değil işbirliği değil, aynı zamanda üretken ortaklıklar Yani, soldaki öğelerin peşindeyken, sağdaki öğeleri 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.
Sonuç
Ç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 önceden kurulmuş bir çerçeveye giderek veya onu ekibinize uyacak şekilde uyarlayarak uyum sağlamanız gerekecek.