Çevik Model
Esnek (Çevik) metodoloji, iş akışını birkaç küçük döngüye taşıyarak yazılım geliştirmedeki riski azaltmaya yardımcı olur. Bu döngülere yinelemeler denir ve tipik olarak iki ila üç hafta sürer.
Yineleme, her biri işlevselliği artıran görevlerden oluşan küçük bir yazılım projesi gibidir. Bunlar şunları içerir: bir plan hazırlamak, gereksinimleri değerlendirmek, bir proje üzerinde anlaşmak, kod yazmak, test etmek ve teknik dokümantasyon oluşturmak.
Tam teşekküllü bir yazılım sürümü için bir yineleme genellikle yeterli değildir. Ancak Agile'ın iyi yanı, projenin küçük parçalarının her yinelemenin sonunda değerlendirmeye hazır olmasıdır. Bu, ekip üyelerinin nihai sürümü beklemeden daha fazla çalışma için önceliklerini değiştirmesine olanak tanır.
"Çevik" bir geliştirme metodolojisi uygulayarak, her yinelemeden sonra somut bir sonuç görebilirsiniz. Yani geliştirici, çalışmasının sonucunun gereksinimleri karşılayıp karşılamadığını anlayabilir. Esnek modelin önemli avantajlarından biri de budur.
Eksilere gelince, Agile kullanırken, işgücü kaynaklarının maliyetini ve proje bütçesini tahmin etmek bazen zordur. Esnek modelin pratik uygulama seçeneklerini ele alırsak, aralarında en ünlüsü Extreme Programming'dir (XP).
XP, ekip üyelerinin her gün yapılan kısa toplantılarına ve düzenli toplantılara (haftada bir veya daha az) dayanır. Günlük mitinglerde (günlük stand-up) genellikle şu konular tartışılır:
- mevcut çalışma sonuçları;
- her ekip üyesi tarafından tamamlanacak görevlerin bir listesi;
- karşılaşılan zorluklar ve bunları çözmenin yolları.
manifesto
Çevik, geliştirmede bütün bir yöndür, bu nedenle üzerinde çalışma kuralları özel bir belge olan Çevik Manifesto'da beyan edilmiştir. Bu, ekibin çalışması gereken uygulamaları ve ilkeleri içerir.
Çevik Manifesto 4 temel fikir ve 12 ilkeden oluşur.
Anahtar Fikirler:
- geliştiriciler arasındaki işbirliği araçlardan daha önemlidir;
- ürünün çalışan sürümü belgelerden önceliklidir;
- ekip ve müşteri arasındaki karşılıklı anlayış, sözleşme şartlarından daha önemlidir;
- Gerekirse orijinal plan her zaman değiştirilebilir.
Agile'ın 12 ilkesine gelince, işte bunlar:
- ana öncelik, biten programın müşteri beklentilerine uygunluğudur;
- koşulların herhangi bir aşamada, hatta geliştirmenin son aşamasında bile değiştirilmesine izin verilir (bu, yazılımın kalitesini ve rekabet gücünü artırabiliyorsa);
- yazılım ürününün çalışan sürümlerinin düzenli olarak teslim edilmesi (her 14 günde bir, ayda veya üç ayda bir);
- başarının anahtarı, müşteri ile geliştiriciler arasındaki düzenli etkileşimdir (tercihen günlük);
- ilgilenenler arasında projeler yapılmalı, bu kişilere gerekli çalışma koşulları sağlanmalı ve her türlü destek sağlanmalı;
- bir ekipte bilgi paylaşmanın en iyi yolu kişisel bir toplantıdır;
- yazılımın çalışan sürümü ilerlemenin en iyi göstergesidir;
- tüm paydaşlar, yazılım geliştirme süreci boyunca istenen çalışma hızını sürdürebilmelidir;
- teknik iyileştirme ve iyi tasarım esnekliği artırır;
- basit tutmak ve fazla yaratmamak önemlidir;
- en iyi sonuçlar kendi kendini organize edebilen ekiplerden alınır;
- ekip üyeleri, iş akışını değiştirerek verimliliklerini artırmanın yollarını düzenli olarak düşünmelidir.
Agile manifestosuna göre, iyi bir yazılım geliştirme süreci doğrudan bu sürece dahil olan kişilere bağlıdır. Bunu yapmak için, etkileşimlerini olabildiğince verimli bir şekilde düzenlemeniz, en organize ekibi oluşturmanız gerekir.
Metodolojiler
Çevik Manifesto'da değerleri ve ilkeleri açıklayan birkaç metodoloji de vardır:
- Çevik Modelleme;
- Çevik Birleşik Süreç;
- Çevik Veri Yöntemi
- Hızlı Uygulama Geliştirme (DSDM);
- Temel Birleşik Süreç;
- aşırı programlama;
- özellik odaklı geliştirme;
- Gerçekleşmek;
- OpenUP;
- Scrum.
Çevik Modelleme, yazılım modellerinin ve dokümantasyonun geliştirilmesini hızlandıran ve basitleştiren bir ilkeler, terimler ve uygulamalar koleksiyonudur.
Çevik Modellemenin amacı, modelleme ve dokümantasyonu iyileştirmektir. Bunun kodlama, test etme veya proje kontrolü, konuşlandırma ve destekle ilgili sorunları içermediğini unutmamak önemlidir. Ancak, bu metodoloji kod incelemesini içerir.
Agile Unified Process, kullanıcıların tahminde bulunmasını (modellemesini) kolaylaştıran bir metodolojidir. Genellikle ticari yazılım geliştirmek için kullanılır.
Çevik Veri Yöntemi - birkaç ekibin işbirliği yoluyla müşteri koşullarının sağlandığı birkaç benzer metodoloji.
DSDM - bu yaklaşım diğerlerinden farklıdır, çünkü geliştiricilerle birlikte gelecekteki ürünün kullanıcıları da içinde aktif rol alır.
Özelliğe dayalı geliştirme, zaman sınırı olan bir geliştirme metodolojisidir: "her özellik en fazla iki hafta uygulanmalıdır."
Kullanım durumu küçükse, bir özellik olarak kabul edilebileceğini düşünmeye değer. Önemliyse, birkaç işleve bölünmelidir.
Gerçek Olmak, önce program arayüzünün geliştirildiği ve ancak daha sonra işlevselliğinin geliştirildiği yinelemeli bir metodolojidir.
OpenUP, proje döngüsünü dört aşamaya ayıran bir geliştirme yöntemidir: başlangıç, iyileştirme, inşaat ve devir teslim.
Çeviklik ilkelerine göre, işin süresi ne olursa olsun, tüm paydaşların ve ekip üyelerinin birbirini tanıması ve karar vermesi için bir yol sağlamak gerekir. Bu sayede durumu etkin bir şekilde kontrol etmek ve ara sonuçları zamanında değerlendirmek mümkündür. Proje planı, yaşam döngüsünü tanımlar ve nihai sonuç, uygulamanın istikrarlı bir sürümü olarak düşünülmelidir.
Scrum'a gelince, geliştirme sürecini yönetmek için kuralları düzenler ve koşulları ayarlama veya değişiklik yapma imkanı ile mevcut kodlama uygulamalarını uygulamanıza izin verir. Bu metodolojiyi kullanmak, geliştirmenin erken aşamalarında beklenen sonuçtan sapmaları görmenizi ve ortadan kaldırmanızı sağlar.
Gelin bu konuya biraz daha detaylı bakalım...