Çevik ve Scrum

Bu yazımda size proje yönetimi metodolojileri arasında son dönemde sıkça tercih edilen, bizim de proje içeriğine göre şirket olarak uyguladığımız Çevik Metodolojisi’nden (Agile Methodology) bahsedeceğim.
Çevik Metodolojisi Nedir?
Çevik metodolojisi, sürekli test yapılarak projeyi değiştirilebilir hale getiren, değişen müşteri isteklerinin projeye kolayca entegre edilmesini sağlayan proje yönetimi yaklaşımıdır.
1970’li yıllarda ortaya çıkan çevik metodolojisi, yazılım geliştirme projelerinde kullanılan bir yaklaşımdır. Yazılım geliştirme sürecini hızlı ve etkili olmasını sağlamak amacıyla, diğer metodolojilere tepki amaçlı ortaya çıkmıştır. Daha sonrasında yazılım dünyasında bilinen isimlerden olan Kent Beck ve 16 yazılımcı “Çevik Yazılım Geliştirme Manifestosu” ve “Çevik Yazılımın Prensipleri”ni yayınlamışlar ve bu yaklaşımı desteklemişlerdir.
Çevik Yazılım Manifestosu’nun 12 prensibi aşağıdaki gibidir;
- En yüksek önceliğimiz, değerli yazılımları erken ve sürekli teslim ederek müşteriyi memnun etmektir.
- Geliştirmede geç bile olsa değişen gereksinimlere hoş geldiniz. Çevik süreçler, müşterinin rekabet avantajı için değişimden yararlanır.
- Daha kısa zaman ölçeğini tercih ederek, çalışan yazılımları birkaç haftadan birkaç aya kadar sık sık sunun.
- İş adamları ve geliştiriciler, proje boyunca günlük olarak birlikte çalışmalıdır.
- Motive olmuş bireyler etrafında projeler oluşturun. Onlara ihtiyaç duydukları ortamı ve desteği verin ve işi tamamlamaları için onlara güvenin.
- Bir geliştirme ekibine bilgi aktarmanın en verimli ve etkili yöntemi yüz yüze görüşmedir.
- Çalışan yazılım, ilerlemenin birincil ölçüsüdür.
- Çevik süreçler sürdürülebilir kalkınmayı teşvik eder. Sponsorlar, geliştiriciler ve kullanıcılar, süresiz olarak sabit bir hızı sürdürebilmelidir.
- Teknik mükemmelliğe ve iyi tasarıma verilen sürekli dikkat, çevikliği artırır.
- 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 aralıklarla nasıl daha etkili olunacağını düşünür, ardından davranışını buna göre ayarlar.
Bu maddelerden de anlaşılacağı üzere çevik metodolojisindeki asıl amaç, proje boyunca iletişimi yüksek tutmak, gereken değişiklikleri anında yapmak ve sık sık test yaparak hata düzeyini en aza indirmektir.
Çevik yazılım geliştirme süreci aşağıdaki gibidir;

Scrum Nedir?
Scrum, başarılı çevik proje yönetim tekniklerinden biridir. Karmaşık yazılım süreçleri için kullanılır. Bütünü parçalara bölerek, projenin sağlam adımlarla ve değişimlere ayak uydurarak ilerlemesini sağlar. İşler parçalara bölündüğü için zamandan tasarruf edilir. Bunun sebebi, Scrum’da iletişim ve takım çalışmasının yüksek olmasıdır. Sürekli iletişim halinde olunduğu için hata olasılığı düşer ve zamandan kazanılır.
Scrum 3 temel ilkeye dayanır;
- Şeffaflık: Projenin gidişatı, çözülmeye çalışılan sorunlar ve gelişmeler herkese açık olmalıdır.
- Denetleme: Sık kontrollerle proje süreci kontrol edilerek, beklenmedik bir hatayla karşılaşma olasılığı en aza indirilir.
- Uyarlama: Proje sürecinde çözülemeyen sorunlar veya herhangi bir yenilik olduğu zaman süreç değiştirilebilir.
Scrum’ın işleyişi aşağıdaki gibidir;

Kaynak: https://blog.experlize.com/agile-ve-scrum-nedir-agile-nasil-uygulanir/
Scrum’da Yer Alan Roller
Product Owner: Müşterinin isteklerini aktaran kişidir. Bazı durumlarda bu kişi müşterinin kendisi olabilir. Bu istekleri yazılım ekibine iletir.
Scrum Master: Scrum Master, takımın Scrum’ı anlamasına ve Scrum prensiplerini yerine getirmesine rehberlik eden ve takım için iletişimin sağlanmasında rol oynayan kişidir.
Development Team: Müşteriden gelen isteklerin oluşturulması ve geliştirilmesinden sorumlu ekiptir.
Scrum Terimleri

Kaynak: https://netuce.com/scrum-nedir-scrum-rollerini-taniyalim/
Planlama Toplantısı (Sprint Planning): Product Owner, Sprint’ten önce bir hedef belirler. Development Team ile birlikte çalışarak hangi işlerin gelecek Sprint’e alınacağına karar verirler. Eğer iş yükü geliştirme ekibine fazla gelirse, iş birden fazla Sprint’e bölünür.
Günlük Sprint Toplantıları (Daily Scrum Meeting): Scrum takımı günlük olarak en fazla 15 dakika süren toplantılar gerçekleştirir. Bu toplantılarda, yapılan ve yapılacak olan işler ve eğer bir problem yaşandıysa bunun hakkında konuşulur. Böylece sık iletişim kurularak sorunlar hemen giderilir.
Demo Toplantısı (Sprint Review): Geliştirme ekibi, Scrum Master, Product Owner ve müşterinin katıldığı bu toplantı, her Sprint sonrasında gerçekleştirilir. Geliştirme ekibi, Sprint sürecinde hangi işleri yaptığını ve ortaya çıkan sonucu sunar. İşler sunulduktan sonra müşteri yorumlarını aktarır ve düzenlenmesi gereken bir yer varsa bildirir.
Sprint Retrospective: Scrum takımının kendini değerlendirdiği, Sprint sonunda yapılan toplantıdır. Takımlardaki gelişimi sürdürmek adına önemli toplantılardır. Doğru ve yanlış yapılan işler değerlendirilir ve “Ne, nasıl daha iyi yapılabilir?” soruları üzerine düşünülür.
Kaynaklar:
http://www.yazilimheryerde.com/2014/09/agile-metodoloji-scrum.htmlhttps://medium.com/@secilcor/scrum-nedi%CC%87r-6a4326951dd8
https://bilginc.com/tr/blog/184/scrum-nedir
https://binyaprak.com/yazilar/scrum-serisi-2-scrum-terimler-ve-rolleri
Yazan: İpek Mangtay
Yayınlanma Tarihi: 31.12.2021
