Jeff Sutherland ve Ken Schwaber tarafından 1993 yılında Agile yöntemlerin yazılım sektöründe kullanılması ile ilgili araştırmalar başlamış, 1995 yılında ise Scrum ismi konularak sonuçlandırılmıştır. Agile yaklaşımları arasında en popüleri olan Scrum, ismini Rugby oyunundaki insanların yanyana durduğu takım mücadelesinin takım ruhunun olduğu pozisyondan almıştır.
Scrum çerçevesi Scrum Guide belirtilmiş, çerçevenin içi ise şirketin, takımın kültürüne göre geliştirilebilecek teknikler ve pratikler ile zenginleştirilmektedir. Bu sebeple Scrum’ın uygulanışı ile ilgili birçok farklı pratik ile karşılaşılabilir. Bu pratiklerin yanlışlığı doğruluğunu tartışmak yerine ilgili takım için faydasına bakmak daha doğru olacaktır.
Scrum için devrimsel ifadesi kullanılır, çünkü Scrum Guide’ de belirtilen yer alan kendine özgü rolleri, ritüelleri ve ürünleri bulunmaktadır. Mevcut işleyişi değiştirerek Scrum Guide yer alan sürecin uygulanması gerekmektedir. Scrum Guide yer alan çerçeve “Mekanik Scrum” olarak da ifade edilebilir.
Roller, Ritüeller ve Ürünlerle ilgili detaylı bilgileri, pratikleri konusunda bir sonraki yazılarımızda yer vereceğiz yalnız kısaca bilgi verirsek;
Roller;
Scrum takımında sadece aşağıdaki 3 rol vardır. Bu 3 rol dışında farklı bir rol bulunmamaktadır.
Scrum Master: Scrum kurallarının doğru işletilmesinden sorumludur. Takımın önündeki engellerin kaldırılmasında takıma destek olması gereken bir roldür. Hizmetkar liderdir.
Product Owner: Takımın yapacağı işlerin NE kısmını belirleyen, tüm paydaşların sözcüsü konumunda yer alan bir roldür. Takıma en öncelikli iş değeri en yüksek işi yaptırmakla sorumludur.
Developer: İşin kaliteli yapılmasından sorumlu, kendi kendine organize olabilen, kendini sürekli geliştiren bir roldür. Takım içindeki üretimi sağlayan her rol kendini developer olarak adlandırabilir.
Ürünler;
Product Backlog: Takımın sorumluluk alanı kapsamındaki tüm işlerin listelendiği sorumlusunun sadece Product Owner olduğu bir dokümandır.
Sprint Backlog: Takımın ilgili sprint kapsamında yapacağı tüm işlerin listelendir bir dokümandır. Sorumlusu da Development Team’dir.
Increment: Tüm uzmanlık alanlarından geçmiş çalışan yazılım parçacağıdır. Çalışan yazılımdır yalnız üretim ortamına release edilecek bir çalışan yazılım olamayabilir.
Ritüeller;
Sprint planlama: Sprint’in başlangıç etkinliğidir. Her sprint planlama etkinliği ile başlar. Product Owner’ın önceliklendirdiği, kabul kriterlerini belirttiği Product Backlog üzerinden Development Team üyeleri sprint boyunca yapabilecekleri commit ettiği etkinliktir.
Daily scrum: Takım her gün bir araya gelerek en fazla 15 dakika süren ayakta yapılan bir toplantıdır. Amacı takım üyelerinin arasındaki alignment’ın sağlanmasıdır.
Sprint review: Sprint sonunda gerçekleştirilen iki etkinlikten birisidir. Sprint boyunca geliştirilen çalışan yazılım demosunun tüm paydaşlarla paylaşıldığı ve feedback alındığı etkinliktir.
Sprint retrospective: Sprint review etkinliği sonrası gerçekleştirilen sprint boyunca yapılanların development team üyeleri tarafından değerlendirildiği ve daha iyi olabilmek için aksiyonların belirlendiği etkinliktir. Bu etkinlikte bireysel, süreçsel, ortamsal konular değerlendirilerek takip edilebilir aksiyonlar çıkarılmaktadır.
Scrum kurucularından Jeff Sutherland’ın özellikle belirttiği bir konu vardır. Scrum’ın anlaması kolaydır ama uygulaması zordur.