Agile Yöntemlerin En Meşhuru Scrum Doğru Seçenek mi?

Agile Yöntemlerin En Meşhuru Scrum Doğru Seçenek mi?

Scrum, Çevik (Agile)'in bir alt kümesi ve Çevik'i uygulamak için en popüler süreç çerçevelerinden biridir. Karmaşık yazılım ve ürün geliştirme süreçlerini yönetmek için kullanılan yinelemeli (iteratif) bir yazılım geliştirme modelidir. Bir ila iki hafta süren sprintler olarak adlandırılan sabit uzunlukta iterasyonlar, ekibin düzenli bir kadans ile yazılım geliştirmesine izin verir. Her sprint sonunda, paydaşlar ve takım üyeleri bir sonraki adımları planlamak için toplanırlar.

Scrum, hiçbir zaman değişmeyen bir dizi rol, sorumluluk ve toplantılar serisi izler. Örneğin, Scrum her sprint yapısını sağlayan dört seremoniyi uygular: sprint planlaması, günlük stand-up (ayakta) toplantıları, sprint demo ve sprint retrospektifi. Her sprint sırasında ekip, ilerlemeyi göstermek ve artan geri bildirimler almak için görev panoları veya burndown çizelgeleri gibi görsel araçlar kullanacaktır.

Jeff Sutherland, Scrum sürecini 1993 yılında, Harvard Business Review'da yayınlanan Takeuchi ve Nonaka tarafından 1986 yılında yapılan bir çalışmada “Scrum” terimini kullanarak oluşturdu. Çalışmada, Takeuchi ve Nonaka, Rugby takımlarının kullandığı Scrum formasyonuna yüksek performanslı çapraz fonksiyonel ekipleri benzetmiştir. Bunun orijinal içeriği üretiliyordu, ancak Sutherland, John Scumniotales ve Jeff McKenna ile birlikte, yazılım geliştirme modelini uyarladı.

Scrum amerikan futbolu olarak bilinen rugby oyunundaki açılış hareketidir. Tüm ekip bir araya gelir ve topu kazanmaya çalışırlar. Tüm güçlerini ve enerjilerini topa sahip olmak için harcarlar.

Scrum'un Avantajları

Scrum, özel rolleri ve törenleri ile oldukça belirleyici bir çerçevedir. Öğrenilmesi gereken çok şey olsa da, bu kuralların birçok avantajı vardır. Scrum'un faydaları şunlardır:

  • Daha fazla şeffaflık ve proje görünürlüğü: Günlük stand-up toplantıları sayesinde, tüm takım kimin ne yaptığını bilir, birçok yanlış anlaşılmayı ve karışıklığı ortadan kaldırır. Konular önceden belirlenerek, ekibin ellerinden çıkmadan onları çözmesine izin verilir.

  • Artan takım sorumluluğu: Scrum takımında ne zaman ve ne yapacağını söyleyen bir proje yöneticisi yoktur. Bunun yerine, ekip her sprintde hangi işlerin tamamlanacağına kolektif olarak karar verir. Hepsi birlikte çalışır ve birbirlerine yardım eder, işbirliğini geliştirir ve her takım üyesinin bağımsız olmasını güçlendirir.

  • Değişikliklerin kolayca gerçekleştirilebilmesi: Kısa sprintler ve sürekli geri bildirimlerle, değişikliklere uyum sağlamak ve onlarla başa çıkmak çok daha kolaydır. Örneğin, ekip bir sprint sırasında yeni bir kullanıcı hikayesi keşfederse, bu özelliği backlog arıtma toplantısında bir sonraki sprint' e kolayca ekleyebilirsiniz.

  • Artan maliyet tasarrufu: Sürekli iletişim, ekibin ortaya çıktığı anda tüm sorun ve değişikliklerden haberdar olmasını sağlar, masrafları düşürür ve kaliteyi arttırır. Özellikleri daha küçük parçalarda kodlayıp test ederek, sürekli geri bildirim vererek ve hataları düzeltmek için çok pahalı hale gelmeden önce düzeltilebilir.

Scrum'ın dezavantajları

Scrum bazı somut avantajlar sunarken, bazı dezavantajları da içermektedir. Scrum, ekipten yüksek düzeyde bir deneyim ve katılım gerektirir ve projeler kapsam kayması riskiyle karşı karşıya kalabilir.

İşte Scrum'un dezavantajları:

  • Kapsam kayması riski : Bazı Scrum projeleri, belirli bir bitiş tarihi olmaması nedeniyle kapsam sürünme yaşayabilir. Tamamlanma tarihi olmaması, paydaşlara ek işlevsellik talep etmek için cazip gelebilir.

  • Ekipte, deneyim ve bağlılık gerektirir: Tanımlanmış rol ve sorumluluklarla, ekibin başarılı olması için Scrum ilkelerine aşina olması gerekir. Scrum Takımı'nda tanımlanmış bir rol olmadığından (herkes her şeyi yapar), teknik deneyime sahip takım üyelerine ihtiyaç duyar. Ekip ayrıca günlük Scrum toplantılarına da bağlı kalmak ve proje süresince takımda kalmak zorundadırlar.

  • Yanlış Scrum Master her şeyi mahvedebilir: Scrum Master bir proje yöneticisinden çok farklıdır. Scrum Master'ın takım üzerinde yetkisi yoktur; yönetmekte oldukları takımlara güvenmeli ve onlara ne yapmaları gerektiğini asla söylememelidir. Scrum Master ekibi kontrol etmeye çalışırsa, proje başarısız olur.

  • Kötü tanımlanmış görevler yanlışlıklara neden olabilir: Görevler iyi tanımlanmamışsa proje maliyetleri ve zaman çizelgeleri kesinlikle doğru olmaz. Başlangıçtaki hedefler net değilse, planlama zorlaşır ve sprintler başlangıçta tahmin edilenden daha fazla zaman alabilir.

Scrum'daki Roller

Scrum'da üç adet özel rol vardır. Bunlar:

  • Ürün Sahibi (Product Owner) : Scrum Ürün Sahibi ürünle ilgili istediklerinden oluşan vizyonun da sahibidir, bu vizyonu ekibin üzerine inşa etmek ve tüm ekibe iletmek zorundadır. Ürün Sahibi, yapılması gereken tüm işler için öncelik belirler, iş ve pazar gereksinimlerine odaklanır. Backlog (geliştirilecek özellikler) biriktirir ve bu listeyi yönetir, hangi özelliklerin daha sonra çıkartılacağına dair rehberlik sağlar ve herkesin ürün birikimindeki öğeleri anladığından emin olmak için ekip ve diğer paydaşlarla etkileşimde bulunur. Ürün Sahibi bir proje yöneticisi değildir. Durumu ve ilerlemeyi yönetmek yerine, asıl işi ekibi bir amaç ve vizyonla motive etmektir.

  • Scrum Master: Takımın antrenörü olarak görülen Scrum Master, takımın mümkün olan en iyi işini yapmasına yardımcı olur. Bu, toplantıların düzenlenmesi, bloke eden problemlerle ve zorluklarla uğraşmak ve ürün backlog' un bir sonraki sprint için hazır olmasını sağlamak için Ürün Sahibiyle çalışmak anlamına gelir. Scrum Master ayrıca ekibin Scrum sürecini düzgün işletip işletmediğini de takip eder ve sürenin işletilmesini sağlar. Takım üyeleri üzerinde otoritesi yoktur, ancak süreç üzerinde otoritesi vardır. Örneğin, Scrum Master birisine ne yapacağını söyleyemez, ancak yeni bir sprint ritmi önerebilir.

  • Scrum Takımı : Scrum Takımı beş ila yedi üyeden oluşur. Projedeki herkes birlikte çalışır, birbirlerine yardım eder ve derin bir dostluk duygusunu paylaşır. Geleneksel geliştirme ekiplerinden farklı olarak, programcı, tasarımcı veya test uzmanı gibi farklı roller yoktur. Herkes birlikte çalışmayı tamamlar. Scrum Ekibi her sprint için bir plana sahiptir; Her iterasyonda ne kadar iş yapabileceklerini tüm ekip birlikte tahmin ederler.

Scrum Sürecinde Adımlar

avantaj-ve-dezavantajlari-ile-scrum-yontemleri-1

Scrum akışında belirli, değişmeyen bir dizi adım vardır. Şu şekilde maddelenebilir:

  • Ürün birikimi (backlog): Ürün Sahibi ve Scrum Ekibi, ürün backlog' undeki ürünlere öncelik vermek için toplanır (ürün backlog' undaki çalışmalar kullanıcı öykülerinden ve gereksinimlerinden gelir). Ürün backlog' u tamamlanacak şeylerin bir listesi değildir, bunun yerine ürün için istenen tüm özelliklerin bir listesidir. Geliştirme ekibi daha sonra, her sprint sırasında tamamlanacak ürün birikiminden bir iş çeker.

  • Sprint planlaması: Her sprint öncesinde, Ürün Sahibi, bir sprint planlama toplantısında takıma backlog' daki önceliklendirilmiş listedeki en üstteki öğeleri sunar. Ekip daha sonra sprint sırasında hangi işi tamamlayacağını seçer ve işi ürün backlog' undan sprint backlog' una (sprint içinde tamamlanması gereken görevlerin bir listesi) taşır.

  • Backlog iyileştirme (refinement) / tımar (grooming): Bir sprintin sonunda, ekip ve Ürün Sahibi bir sonraki sprint için backlog' un hazır olduğundan emin olmak için toplanır. Ekip, alakalı olmayan kullanıcı öykülerini kaldırabilir, yeni öyküler oluşturabilir, öykülerin önceliğini yeniden değerlendirebilir veya kullanıcı öykülerini daha küçük görevlere bölebilir. Bu “tımar” toplantısının amacı, backlog yığınının yalnızca ilgili ve ayrıntılı olan ve projenin hedeflerini karşılayan öğeleri içerdiğinden emin olmaktır.

  • Günlük Scrum toplantıları: Günlük Scrum, her takım üyesinin hedefleri ve ortaya çıkan sorunlar hakkında konuştuğu 15 dakikalık bir stand-up (ayakta) toplantısıdır. Günlük Scrum sprint boyunca her gün yapılır ve takımı yolda tutmaya yardımcı olur.

  • Sprint gözden geçirme (review) toplantısı: Her bir sprintin sonunda, ekip bir sprint gözden geçirme toplantısında tamamladıkları işi sunar. Bu toplantıda canlı bir demo üzerinden geçilmelidir, bir rapor veya bir PowerPoint sunumu kesinlikle bulunmamalıdır.

  • Sprint retrospektif toplantısı: Ayrıca her sprintin sonunda, takım Scrum'un ne kadar iyi çalıştığını ve bir sonraki süratte yapılması gereken değişiklikleri anlatıyor. Takım, sprint sırasında neyin iyi gittiğini, neyin yanlış gittiğini ve ne yapabileceklerini konuşabilir.

Scrum'da Araçlar, Eserler (Artifact) ve Yöntemler

Rol ve seremonilerin yanı sıra Scrum projeleri de belirli araçlar ve eserler de içermektedir. Örneğin, ekip, bir scrum board (scrum duvarı) aracılığı ile scrum görselleştirilir. Backlog' un durumunu veya burndown (tamamlanma) çizelgesini veya bir iş akış şemasını görselleştirmek için bu Scrum duvarı kullanır. En yaygın eserler ve yöntemler şunlardır:

  • Scrum board: Sprint backlog' unuzu bir Scrum görev panosu ile görselleştirebilirsiniz. Pano farklı şekillerde olabilir; geleneksel olarak dizin kartları, Post-It notları veya beyaz tahta içerir. Scrum tahtası genellikle üç kategoriye ayrılır: yapılacak işler (TODO), devam eden (IN PROGRESS) ve tamamlanan (DONE). Scrum takımının tüm sprint boyunca tahta güncellemesini yapması gerekiyor. Örneğin, birisi yeni bir görevle gelirse, yeni bir kart yazıp uygun sütuna koymak zorundadır.

  • Kullanıcı hikayeleri (user story): Bir kullanıcı hikayesi, müşterinin bakış açısından bir yazılım özelliğini açıklar. Kullanıcı türünü, ne istediklerini ve neden bunu istediklerini içerir. Bu kısa öyküler benzer bir yapıyı takip eder: olarak, gerçekleştirmek istiyorum, böylece Geliştirme ekibi, bu öykülerden yararlanarak; hikayelerdeki istekleri gerçekleştirmek kodlama yapar.

  • Burndown tablosu: Bir burndown tablosu, tüm gerçekleşen işleri temsil eder. Backlog genellikle dikey eksen boyunca zaman ise yatay eksende olur. Kalan işler, hikaye puanları, postit sayısı, takvim günleri, takım günleri veya diğer metriklerle gösterilebilir. İşler plana göre gitmiyorsa ve kararların etkisinin gösterilmesine yardımcı oluyorsa ve burndown tablosu ekibi uyarabiliyorsa seçtiğiniz metrik doğrudur.

  • Büyük Ölçekli Scrum (LeSS) : Scrum'un unsurlarını yüzlerce geliştiriciye ölçeklendirmek isterseniz, Büyük Ölçekli Scrum (LeSS) çerçevesi, Scrum'un çekirdeğini kaybetmeden kural ve yönergeleri genişletmenize yardımcı olur. İlkeler doğrudan Scrum'dan alınır, ancak ek yük eklemeye gerek kalmadan (daha fazla rol, eser veya süreç eklemek gibi) ölçeklemeye odaklanır.

  • Zaman Kutusu (timeboxing) : Bir zaman çizelgesi, bir takımın bir hedefi tamamlamaya yönelik olarak çalıştığı belirli bir zaman aralığıdır. Hedefe ulaşılana kadar bir takım çalışmasına izin vermek yerine, timebox yaklaşımı zaman sınırına ulaşıldığında çalışmayı durdurur. Zaman kutulu iterasyonlar genellikle Scrum ve Extreme Programlama pratiklerinde kullanılır.

  • Icebox: Kaydedilen ancak geliştirme aşamasına geçemeyen kullanıcı hikayeleri buzdolabında saklanır.

  • Scrum ve RUP: Hem Scrum hem de Rational Unified Process (RUP), Agile çerçevesini takip ederken, RUP kapsam, ana kilometre taşları ve belirli tarihlerin daha resmi bir tanımını içerir (Scrum, kapsam yerine bir proje backlog kullanır). Buna ek olarak, RUP proje yaşam döngüsünün dört temel aşamasını (başlangıç (inception), detaylandırma (elaboration), yapım (construction) ve geçiş (transition)) içerirken, Scrum tüm “geleneksel yaşam döngüsü” nün tek bir iterasyona uyduğunu belirlemektedir.

  • Scrum'a karşı yalın (Lean): Scrum bir yazılım geliştirme çerçevesi iken, Lean ise bu süreci optimize etmeye yardımcı olur. Scrum'un öncelikli hedefi insanların üzerindeyken, Yalın ise sürece odaklanır. İkisi de Çevik teknikler olarak kabul edilir, ancak Yalın iki temel kavram ortaya çıkarır: israfı ortadan kaldırmak ve akışı iyileştirmek.

avantaj-ve-dezavantajlari-ile-scrum-yontemleri-2

Scrum'a Nasıl Başlanır

Scrum ile çalışmak genellikle takımın alışkanlıklarını değiştirmek anlamına gelir. Daha fazla sorumluluk almalı, kodun kalitesini artırmalı ve çıktı hızını arttırmalıdırlar. Bu taahhüt seviyesi bir değişim ajanı olarak hareket eder; Ekipler sprint hedeflerine bağlı olarak, daha iyi ve daha hızlı bir ürün elde etmek için çok daha fazla motive olurlar.

Scrum ile başlamak için iyi bir ilk adım, roller hakkında konuşmak olacaktır. Her projede bir Scrum Master, Ürün Sahibi ve Scrum Ekibi bulunmalıdır. Scrum Master ve Ürün Sahibi kim olmalı, ya da bu roller zaten atanmışsa, onların rollerini ve sorumluluklarını netleştirmek isteyebilirsiniz.

Ekibinizin Scrum ile ne kadar aşina olduğuna bağlı olarak, eğitim oturumlarına da bakmak isteyebilirsiniz. Sertifikalı Scrum Koçları ve Eğitmenleri ve kurlar ekibinizin Scrum'ı öğrenmesine ve onu kucaklamasına yardımcı olabilir.


  Sen Ne Düşünüyorsun ?