KISACA AGİLE VE SCRUM
AGİLE
Agile=Çeviklik=Değişime Hızlı Tepki Verme
Agile’ı, diğer yöntemlerden ayıran en büyük fark olan “Time Boxing” yani “Zaman Kutucukları” üzerinden tanımlarsak daha anlaşılır olacaktır. Time Boxing ; işin tamamlanan her bir aşamasını kutucuklara koyarak ilerleme mantığı taşır. İşi, zaman dilimlerine bölerek yapmayı esas alır ve her time box kendi içinde çalışan bir ürün ortaya koymak zorundadır.
Agile’ ın zıttı diyebileceğimiz en bilinen yöntem ise “Waterfall” yani “Şelale Yöntemi” dir. Waterfall işi parçalara ayırmak yerine bir bütün olarak ele almayı esas görür. İki yöntem arasındaki temel fark budur. Spesifik bir örnek ile; Waterfall büyük bir buz kütlesi ise Agile, bu buz kütlesini blendera attığımızda ortaya çıkan her bir buz parçasıdır. Klasik yöntem olarak tanımlanan Waterfall daha durağan çalışma şansı tanırken, çevik yöntem dediğimiz Agile time boxlar bazında sürekli ürün çıkarmayı amaçlar.
Ortaya çıkacak her ürün başlangıç noktası ile planlanan sonuç arasındaki kısıtlarla değişiklikler gösterebilir. Örneğin; günümüzde en alt segmente kategorize edebileceğimiz bir araba markası başlangıçta üst segment bir araç gibi mekanik düzeneğe sahip üretilmeye başlanır. Fakat bütçe, piyasa, gereksinim gibi kısıtlarla nihai sonuca üst segment araçların oldukça altında bir ürün olarak ulaşır.
Agile metodolojisinin sürekli değişen piyasa koşulları, teknolojik gelişmeler, ihtiyaç değişiklikleri, sektör dinamikleri göz önüne alındığında organizasyonlar için daha kullanışlı bir yöntem olduğu çok açıktır. Bunu basit bir örnek ile açıklamak gerekirse; yaklaşık 7 ay önce isterlerini alıp imzasını attığımız projemizi 7 ay sonunda müşterimize teslim ederken karşılaşacağımız olası durumlar vardır. Müşteri değişen teknolojiye, rakiplerinin ilerlemelerine, ürünün piyasada o anın şartlarına uyumlanamayacağını düşünebilir. Waterfall benimseyen bir organizasyonun müşterisi ile bunu yaşama ihtimali çok büyüktür. Proje bitmişken, eforlar harcanmışken karşılaşılan bu sorun organizasyon için maddi ve motivasyonsal açıdan yıpratıcı olacaktır. Fakat Agile olarak ilerleyen organizasyonlarda her bir aşamada müşteri ile time boxları check ederek ilerlendiği için anlık değişimlere açık halde, gelişmelerden olumsuz etkilenmeyecek projeler ortaya çıkacaktır.
SCRUM
Scrum; Agile metodolojisinin Proje Yönetimi tekniğidir. Ekiplerin daha dinamik, daha dirsek dirseğe ilerlediği bir çalışma düzenini amaçlar.
Scrum da çokça duyacağımız ifadelerden biri “sprint” dir. Sprintler iş planı içerisinde belirli bir zaman diliminde yapılması hedeflenen işleri ifade eder. Sprintler için 1 ila 4 hafta içerisinde bir zaman dilimi belirlenir, genelde 2 haftalık zaman diliminin daha kullanışlı olduğu düşünülerek böyle tercih edilir.
Sprintlere “sprint planlama toplantısı” ile başlanır. Bu toplantının çıktıları da “sprint backlog” lardır. Bu backloglara geliştirme ekibi ve master ile birlikte karar verilir. Toplantıyı lead edecek kişi de masterdır. Burada geliştirme ekibi, öngörüleri ile işlemin büyüklüğüne karar verir. 2 haftada neyi tamamlayabiliriz? Ne noktaya gelip, neye ulaşabiliriz? Gibi öngörülerde bulunarak planlamaya yardımcı olur.
İş 2 haftada bitirilmek üzere planlandıysa, bu 2 hafta boyunca sprinte herhangi bir şey dahil edilmez. 2 hafta boyunca da planlanan bütün işin tamamlanması beklenir. Eğer yeni işler çıkarsa, sonraki sprinti beklemek durumundadır. Genelde Agile ekipler board kullanır. Bunlara story board da denir. Boardlarda ilk olarak “to do” kolonu bulunur. Bu kısıma sprint backlogtaki taskler eklenmektedir. Ek olarak “inprogress” ya da “build” başlıklı kolonlar eklenir. Bu kolonlar halihazırda yapılmakta olan işlerin belirtildiği yerlerdir. Test edilmeye hazır olan geliştirmelerin bulunduğu bir de “test” kolonu vardır. En son aşamada ise “done” kolonu bulunur. Burada testi yapılmış, tamamlanmış ve müşteriye sunulmaya hazır olan işler yer alır.
Daily meetingler her sabah bu boardın önünde yapılır ve maksimum 15 dakika sürer. Detaylı sorular için dailyden sonrasını beklemek gerekir. Daily meetingin amacı ekipteki herkesin kısaca günlük iş planını ve board üzerinde nerede olduğunu göstermesidir. Bunun yanı sıra desteğe ihtiyacı olan, engele takılmış olan bir ekip üyesinden masterın haberdar olmasını sağlamaktır. Bu sayede ekiptekiler birbirlerinin yaptıkları işlerden ve hangi aşamada olduklarından haberdar olurlar.
Her sprintin sonunda da 2 toplantı yapılmaktadır.
-Review Toplantısı
-Retrospective Toplantısı
Review toplantısında, sprint sonunda tamamlayıp “done” kolonuna çekilen işlerle ilgili müşteriye sunum yapılır.
Retro toplantısı ise ekibin kendini değerlendirdiği ve eleştirdiği toplantıdır. Bir önceki sprintte iyi giden ya da işi duraksatan etkenler nelerdi? Onları yeni sprintte nasıl geliştirebiliriz? Gibi konular ele alınır.
Gereksinim duyulması 70’li yıllara dayanan, geliştirmesi ve imzalanması 2000 li yılları bulan Agile manifestosu hakkında birçok kaynaktan teorik sayfalarca bilgi bulabilirsiniz. Ben bu yazımda sizlere en basit haliyle, dahil olduğunuz organizasyon yapısına kolayca adapte olmanızı kolaylaştıracak şekilde konuşma diliyle açıklamaya çalıştım. Agile ve Scrum’ın ayrılmaz bir bütün olduklarının vurgusunu yaptığım bu yazımda, organizasyonunuzdaki scrum işleyişine adapte olmanızı kolaylaştırmayı hedefledim.
Büşra KAHRAMAN
İş Analisti
Intime Info Yazılım Çözümler A.Ş.