Scrum - Genel Bakış
Çevik, yazılım geliştirme endüstrisindeki en büyük moda sözcüklerden biri haline geldi. Ama çevik geliştirme tam olarak nedir? Basitçe ifade etmek gerekirse, çevik geliştirme, yazılım geliştirme ekiplerini ve projelerini yürütmenin farklı bir yoludur.
Neyin yeni olduğunu anlamak için geleneksel yöntemleri özetleyelim. Geleneksel yazılım geliştirmede, geliştirmeye geçilmeden önce ürün gereksinimleri sonuçlandırılır.
Şelale Modeli
Bu özelliğe sahip en yaygın olarak kullanılan yazılım geliştirme modeli, aşağıdaki diyagramda gösterildiği gibi Şelale Modelidir. Bununla birlikte, çoğu durumda, yeni işlevler eklenir ve ayrıca daha önceki gereksinimler değişebilir. Şelale modeli, gereksinimlerdeki bu tür sürekli değişiklikleri barındıracak şekilde yapılandırılmamıştır. Ayrıca, kullanıcı, ürün bütünüyle kullanılabilir hale gelene kadar ürünün işlevselliği konusunda netliğe sahip olmayacaktır.
Yinelemeli Artımlı Model
Yinelemeli artımlı modelde geliştirme, sınırlı sayıda kesinleşmiş ve önceliklendirilmiş gereksinimle başlar. Teslim edilebilir, ürünün çalışma artışıdır. Gereksinimlerden kod geliştirmeye kadar değişen bir dizi etkinliğe yineleme adı verilir. Artışın işlevselliğine ve yeni, değiştirilmiş, bekleyen gereksinimlerin herhangi birine veya tümüne bağlı olarak, sonraki gereksinimler sonraki yinelemeye verilir. Sonraki yinelemenin sonucu, ürünün geliştirilmiş bir çalışma artışıdır. Bu, ürün gerekli işlevleri yerine getirene kadar tekrarlanır.
Kullanıcı genellikle geliştirme çalışmasına dahil olmaz ve yanlış işlevlerle sonuçlanan iletişim boşluklarına neden olabilir. Katılım, geliştirme ekibi için olumlu, ancak ekibin zamanını talep ediyor ve gecikmeler ekleyebilir. Ayrıca, bir yineleme sırasında herhangi bir resmi olmayan gereksinim değişikliği kafa karışıklığına yol açabilir ve kapsamda kaymalara neden olabilir. Bu öncül ile Agile geliştirme ortaya çıktı.
Çevik Geliştirme
Çevik geliştirme, gereksinimlerin ve çözümlerin ekip işbirliği yoluyla geliştiği yinelemeli artımlı geliştirmeye dayanır. Zaman kutulu yinelemeli bir yaklaşım önerir ve değişime hızlı ve esnek yanıt vermeyi teşvik eder. Teorik bir çerçevedir ve bir geliştirme ekibinin izlemesi gereken belirli bir uygulamayı belirtmez. Scrum, takip edilmesi gereken uygulamaları tanımlayan özel bir çevik süreç çerçevesidir.
Çevik yöntemlerin ilk uygulamaları arasında Rational Unified Process (1994), Scrum (1995), Crystal Clear, Extreme Programming (1996), Adaptive Software Development, Feature Driven Development (1997) ve Dynamic Systems Development Method (DSDM) (1995) bulunmaktadır. Bunlar artık toplu olarak şu şekilde anılmaktadır:agile methodologiesÇevik Manifesto 2001'de yayınlandıktan sonra.
Çevik Manifesto
Çevik Manifesto, 2001 yılında bir yazılım geliştiricileri ekibi tarafından yayınlandı ve geliştirme ekibine verilmesi gereken önemi vurgulayarak, değişen gereksinimleri ve müşteri katılımını barındırdı.
Çevik Manifesto aşağıdaki gibidir:
“Bunu yaparak ve başkalarının yapmasına yardımcı olarak yazılım geliştirmenin daha iyi yollarını ortaya çıkarıyoruz. Bu çalışma sayesinde, değer kazandık:
- Süreçler ve araçlardan ziyade bireyler ve etkileşimler
- Kapsamlı dokümantasyon yerine çalışan yazılım
- Sözleşme pazarlığı yerine müşteri işbirliği
- Bir planı takip etmek yerine değişime yanıt vermek
Yani sağdaki öğelerde değer varken soldaki öğelere daha çok değer veriyoruz. "
… Çevik Yazılım Geliştirme Manifestosu, Yazarlar: Beck, Kent, et al. (2001)
Çevik Manifesto Öğelerinin Tanımı
Soldaki manifesto maddeleri şu şekilde tanımlanabilir:
Manifesto Öğesi | Açıklama |
---|---|
Bireyler ve etkileşimler | Aşağıdakilere önem verilmelidir:
|
Çalışan Yazılım | Çalışan yazılımın kısa süreli aralıklarla teslimi, ekipte müşteri güveni ve güveni kazanılmasına yardımcı olur. |
Müşteri işbirliği | Müşterinin geliştirme ekibine sürekli katılımı, gerekli değişikliklerin iletişimini sağlar. |
Değişime yanıt vermek | Kısa süreli yinelemelerle mümkün kılınan önerilen değişikliklere hızlı yanıt vermeye odaklanın. |
Çevik Manifesto'nun temel unsuru, insanlara ve onların işbirliği yapma yeteneklerine güvenmemiz gerektiğidir. Bu nedenle, geliştirilen özel Agile metodolojileri, projenin yaşam döngüsü boyunca ekip çalışmasını ve işbirliğini vurgulayarak ekip üyelerinin yeteneklerinden yararlanır.
Çevikliğin Temel İlkeleri
Çevik Manifesto aşağıdaki ilkelere dayanmaktadır:
Prensip | Açıklama |
---|---|
Memnuniyet ve Teslimat | Erken ve sürekli çalışan yazılımlarla müşteri memnuniyeti. |
Karşılama Değişimi | Geliştirmenin sonraki aşamalarında bile değişen gereksinimleri karşılayın. |
Sık Sık Teslim Et | Çalışan yazılımı sık sık sağlayın (aylık yerine haftalık). |
İletişim Anahtar | Geliştiricilerin iş adamları ile günlük olarak yakın ilişki kurmasını sağlayın. |
Çevre ve Güven | Motive olmuş bireyler etrafında projeler oluşturun. Onlara gerekli desteği verin ve onlara güvenin. |
Yüz yüze iletişim | Etkili ve etkili iletişim sağlamak için yüz yüze sohbeti teşvik edin. |
İlerleme Ölçüsü Olarak Yazılım | Çalışan yazılım, ilerlemenin birincil ölçüsüdür. |
Sürdürülebilir Kalkınma | Geliştirme boyunca sabit bir hız sürdürme becerisiyle sürdürülebilir kalkınmayı teşvik edin. |
Detaylara dikkat | Teknik mükemmelliğe ve iyi tasarıma sürekli dikkat. |
Daha Azının Gücü | Basitlik esastır. |
Kendi Kendini Düzenleyen Takımlar | Değişen koşullarda etkili olma konusunda ekibin düzenli ilgisi. |
Çevik Metodolojiler
Dinamik Sistem Geliştirme Metodolojisi (DSDM)
Yazılım projeleri için çevik bir çerçevedir. Geleneksel yaklaşımlara ince ayar yapmak için kullanıldı. DSDM'nin en son sürümüne DSDM Atern adı verilir. Atern adı, Arctic Tern'in kısaltmasıdır - yöntemin birçok özelliğini, önceliklendirme ve işbirliği gibi doğal çalışma yolları olan çok uzun mesafelerde seyahat edebilen bir deniz kuşu.
Scrum
Özellikle ekip tabanlı bir geliştirme ortamında görevlerin nasıl yönetileceğine odaklanan en popüler çevik çerçevedir. Scrum, daha kısa yineleme süreleriyle yinelemeli ve artımlı geliştirme modeli kullanır. Scrum'ın uygulanması nispeten basittir ve hızlı ve sık teslimatlara odaklanır.
Ekstrem Programlama (XP)
Bir tür çevik yazılım geliştirme türüdür. Üretkenliği artırmayı ve yeni müşteri gereksinimlerinin benimsenebileceği kontrol noktalarını tanıtmayı amaçlayan kısa geliştirme döngülerinde sık sürümleri savunur. Metodoloji, adını geleneksel yazılım mühendisliği uygulamalarının faydalı unsurlarının aşırı seviyelere çekildiği fikrinden almaktadır. (Extreme Programming, insanları daha yüksek kaliteli yazılımı daha üretken bir şekilde üretmeleri için organize eden bir yazılım geliştirme disiplinidir.) XP, son ürünün kalitesinde önemli bir fark yaratan yeni yaklaşımlarla analiz, geliştirme ve test aşamalarını ele alır.
Test odaklı Geliştirme (TDD)
Çok kısa bir geliştirme döngüsünün tekrarına dayanan bir yazılım geliştirme sürecidir: önce geliştirici istenen bir iyileştirmeyi veya yeni bir işlevi tanımlayan otomatik bir test senaryosu yazar, ardından bu testi geçmek için en az miktarda kod üretir ve son olarak yeni kodu kabul edilebilir standartlara getirir.
Yağsız - Yağsız
Nihai müşteri için değer yaratma dışında herhangi bir amaç için kaynakların harcanmasını savurgan ve dolayısıyla bir eleme hedefi olarak gören bir üretim uygulamasıdır. Bir ürün veya hizmeti tüketen müşteri açısından bakıldığında, değer terimi, bir müşterinin ödemek isteyeceği herhangi bir eylem veya süreç olarak tanımlanır. Yalın, daha az işle değeri korumaya odaklanır.
Kanban
Üretimi üst düzeyde geliştirmek ve sürdürmek için bir sistemdir. Kanban, kuruluşların envanter harcamalarını kontrol etmek için uyguladığı strateji olan Just-In-Time (JIT) 'nin gerçekleştirildiği bir yöntemdir. Kanban, bir bütün olarak bir üretim sistemini çalıştırmayı destekleyen etkili bir araç haline geldi ve iyileştirmeyi teşvik etmek için mükemmel bir yol olduğunu kanıtladı.
Sonuç
Son 10 yılda, şirketlerin BT geliştirme ekiplerinin ve projelerinin başarısını ve performansını Agile uygulamalarıyla önemli ölçüde artırdığı, giderek artan başarı öyküleri var. Bu, çevikliğin medya ve teknoloji, büyük şirketler ve hatta devlet dahil olmak üzere çeşitli endüstrilerde geniş çapta benimsenmesine neden oldu.
Çevik Çerçeve, ekiplerin şunlardan yararlanmasına yardımcı olur:
- Daha Hızlı Teslim / Pazarlama Süresi
- Belirsizliği ve Riski Azaltın
- Müşteri Değerine odaklanarak Yatırım Getirisini (ROI) artırın
Bu farklı çevik metodolojiler arasında, Scrum son 20 yılda dünya çapında son derece başarılı olduğunu kanıtladı.