Scrum Rehberi‘nden yola çıkarak 7 ana başlık altında Scrum’ı ele aldığımız bu listede yer alan her bir madde, çok daha ayrıntılı anlatılabilecek konular olmakla birlikte, Scrum hakkında genel bir bakış açısı kazandırmayı hedefliyor.
Son yıllarda yaygın olarak kullanılan ve çevikliği uygulayan Scrum Çatısı, sadece yazılım geliştirme amacıyla değil, aynı zamanda “donanım, gömülü yazılım, etkileşim fonksiyonları ağları, otonom araçlar, okullar, hükümet, pazarlama, organizasyonların işleyişini yönetmek ve günlük yaşantımızda birey ve toplum olarak kullandığımız hemen her şeyi” geliştirmek için kullanılıyor. Scrum’ın karmaşıklıkla başa çıkan yapısına hep birlikte, kendi rehberi üzerinden bir göz atalım mı?
1. Scrum
Scrum Rehberi’ndeki Scrum tanımlaması ile hızlı bir giriş yapalım: “İnsanların mümkün olan en yüksek değere sahip ürünleri üretken ve yaratıcı bir şekilde geliştirirken, karmaşık ve adaptasyona açık sorunları ele alabildikleri bir çerçeve”.
Bu tanım gayet kapsayıcı olmakla birlikte, büyük resimdeki pozisyonel durumu tam kavrayabilmek için ilk akla gelen Agile (Çeviklik) ve Scrum ilişkisi. Scrum, bir Agile uygulamasıdır, fakat tıpkı Agile gibi kendi de bir çatıdır. Süreç yönetim çatısı olan Scrum’da belirlenmiş kurallar, roller, etkinlikler ve eserler (artifacts) bulunmaktadır. Tüm bunlara uyum zorunludur. Aksi halde uygulanan Scrum olmaz, hatta yanlış uyarlamalar için ScrumBut (Scrum, Ama..) denmektedir. Scrum basit, anlaması kolay ve uygulaması zor bir çatıdır. 1990’ların başından beri kullanılmakta ve hatrı sayılır seviyede gün geçtikçe popüleritesi artmaktadır.
2. Scrum Teorisi
Scrum’daki kurallar kümesi bir bakışta oldukça mekanik ve sanki bir metodolojiymiş gibi adım adım uyulması gereken bir liste hissi yaratsa da, teoriye baktığımız zaman bu sadece basit bir çerçevedir/çatıdır.
Bu çerçeve içerisinde aslında istenen deneysel davranıştır. Scrum’ın temelinde deneycilik (empiricism) vardır. Sürekli kontrol sağlanabilmesi, özellikle de risklerin kontrol altında tutulabilmesi için artımlı (incremental) bir yaklaşım kullanılır. Bu artımı sağlayan iterasyonlara sprint denir.
Scrum teorisini destekleyen üç temel ayak: şeffaflık, gözlem ve adaptasyondur. Şeffaflık adından da anlaşılacağı üzere ortak bir dil kullanımı ve hatta anlayışı, görünürlüğü esas almaktır, gözlem ve adaptasyon içinse Scrum etkinlikleri zorunlu kılınır. Bu etkinlikler: Günlük Scrum, Sprint Planlama, Sprint Değerlendirme ve Sprint Retrospektifi’dir.
3. Scrum Değerleri
Scrum’ı Scrum yapan Scrum Teorisi’nin üç temel ayağı olan şeffaflık, gözlem ve adaptasyonun vücud bulmasını ve takım içerisinde güven ortamını yaratmasını Scrum değerleri üzerinden sağlamak esastır. içselleştirilmesi gereken beş temel değer: taahhüt, cesaret, odak, açıklık ve saygıdır. Bu değerler sağlanıp, korunduğunda gözle görülür bir ekip ruhuyla birlikte başarılı bir scrum uygulaması sağlanmış olur.
Birbirine karşı açık, saygılı davranan ve ortak bir hedefe tek bir canlı organizmasıymışçasına odaklanabilen, verilen sözlerin/taahhütlerin adeta yazılı bir anlaşma gibi önemsendiği ve bu zeminde deneme cesaretini içinde barından, kaizen kültürünü benimseyip kendini geliştirebilen bir Scrum Takımı; benimsenmiş Scrum Teorisi ve değerlerinin olası sonucudur.
4. Scrum Takımı
Scrum Takımı, Scrum Master, Ürün Sahibi ve Geliştirme Takımı’ndan oluşur. Scrum Takımının hizmetkar lideri olan Scrum Master’ı 5 Maddede Scrum Master Kimdir ve Ne Yapar? listemizde epeyce detaylı anlatıyoruz.
Ürün sahibi, aslında mini ceo rolündedir. Ürünün vizyonu ve amacını belirlemek/yönlendirmek, yapılacak işleri derlemek, işlerin öncelik sırasını ve değerini belirlemek, işleri geliştirme takımına anlaşılır seviyede aktarmak ve ürün değerini maximum seviyeye ulaştırabilmek gibi sorumlulukları vardır. Geliştirme takımı ise en az üç, en fazla dokuz kişiden oluşan, kendi kendini yönetebilen, çapraz fonksiyonlu (cross-functional), yani geliştirilen ürünün her hangi bir parçasını yapmak için gerekli tüm beceri ve yetenekleri bünyesinde barındıran, her bir bireyin sadece ‘geliştirici’ olarak adledildiği ve asla alt takım ve rollere (testçi, analist) izin vermeyen, scrum değerlerine sadık ve her bir iterasyon (sprint) sonunda artım üretmekle yükümlü olan takımdır.
5. Scrum Etkinlikleri
Scrum’ın zorunu kıldığı ve Sprint (iterasyon) içerisinde gerçekleşen dört etkinlik bulunmaktadır. Tüm bu etkinlikler gözlem ve adaptasyon için resmi birer fırsat niteliğindedir ve muhakkak belirli bir zaman kısıtına sahiptir.
Scrum takımının potansiyel olarak hayata geçirilebilir şekilde ve takım tarafından belirlenmiş ‘bitti’ tanımına uygun olarak ürettiği artımla sonuçlanan Sprint, Scrum’ın kalbi olarak ifade edilmektedir.
Sprint, Sprint Planlama etkinliği ile başlar, planlama süresi 1 aylık bir sprint için 8 saatle kısıtlandırılmıştır. Etkinlik, ne ve nasıl olmak üzere iki soruya cevap arar. Takım tarafından ürün için ne yapılacağı belirlendikten sonra nasıl yapılacağının planlanmasıyla etkinlik sona erer. Sprint’in amacı belirlenmiştir.
Scrum Takımı her sabah, zaman kısıtı 15 dakika olan Günlük Scrum etkinliğinde, Sprint amacına doğru koşarken neler yaptıklarını, neler yapacaklarını ve varsa karşılaştıkları engelleri birbirleriyle paylaşır, günlerini planlanlar. Günlük Scrum’la ilgili daha detaylı bilgi için: 7 Soruyla Günlük Ayakta Toplantının (Daily Stand-Up Meeting) İncelikleri.
Sprint sonunda, üretilen artımın sunulduğu Sprint Değerlendirme etkinliği yer almaktadır. Bu etkinlikte Scrum takımı ve paydaşlar bir araya gelir, geliştirme takımının yaptığı artırım kontrol edilir, geliştirme takımı ‘bitti’ dediği işi gösterir ve sorulara cevap verir, yaşadığı geliştirme sürecini anlatır, ürün sahibi işlerin ‘bitti’ olup olmadığını açıklar ve gerekiyorsa iş listesi güncellenir. Bu toplantının süresi 1 aylık sprint için en fazla dört saat olarak belirlenmiştir.
Sprint Değerlendirme’nin peşi sıra son etkinlik olan Sprint Retrospektif etkinliği yapılır. Sprint Retrospektif takımın en özel etkinliğidir. Sadece Scrum takımı katılır ve 1 aylık bir Sprint için süresi üç saatle kısıtlandırılmıştır. Bu etkinlikte Scrum Takımı, insanlar, ilişkiler, süreçler ve araçlar üzerinden kendini inceler, denetler, gözlemler. Nelerin iyi yapıldığını, nelerin daha iyi yapılabileceğini tartışır ve iyileştirilebilecek maddeleri belirleyip bir aksiyon planı hazırlar. İyileşmek ve gelişmek için belirlenmiş bu maddelerden en az bir tanesi yeni başlayacak Sprint’in iş listesine eklenir.
Sprint Retrospektif’te kullanılabilecek teknikler için detaylı bilgi: Etkili Toplantılar İçin 5 Çevik (Agile) Retrospektif Tekniği
6. Scrum Eserleri
Ürün İş Listesi (Product Backlog), Sprint İş Listesi (Sprint Backlog), Artım/Ürün Parçası (Increment) olmak üzere üç Scrum Eser’i (Scrum Artifacts) bulunmaktadır.
Ürün İş Listesi, ürünle ilgili ihtiyaç duyulan her şeyin listelendiği, herkes tarafından görülebilen, şeffaf ve Ürün Sahibi tarafından yönetilen bir listedir. İşlerin önem ve değerine göre sıralanmıştır. Aynı zamanda işle ilgili tahmini ağırlıklar da bu liste üzerinden görülebilir. Bu tahminler Geliştirme Takımı tarafından yapılır, ağırlıkların belirlenmesinde son söz her zaman geliştirme takımınındır. Üst sıralarda yer alan işler genellikle daha detaylıdır. Bu detaylar geliştirme takımının kapasitesinin %10’ununu aşmayacak şekilde düzenlenmesi gereken Ürün İş Listesi İyileştirme (Product Backlog Refinement) etkinliği sayesinde daha da anlaşılır hale gelir.
Sprint Planlama Etkinliği’nde en üst sıradan başlayarak işler incelenir, tahminler yapılır ve sprint süre zarfında hangi işlerin yapılacağı Ürün Sahibi ile anlaşarak Geliştirme Takımı tarafından seçilir ve yapılması taahhüt edilen bu görece küçük listeye de Sprint İş Listesi denir.
Sprint İş Listesi, Geliştirme Takımı tarafından yönetilir ve sprint için ‘bitti’ tanımına göre yapılması planlanan ürün parçasının yapılabilmesi için gerekli daha detaylı ve öngörülmüş bir plan olarak karşımıza çıkmaktadır. Sprint hedefine ulaşabilmek için izlenecek yol şeffaf bir şekilde herkes tarafından görünür halde olmalıdır. Ürün Parçası/artım dediğimiz Scrum Eseri, Sprint’in doğal sonucudur, önceden üretilmiş tüm ürün parçacıkları ve son sprint sonunda üretilen ürün parçacığının toplamıdır. Ürün Sahibi hayata geçirmek istesin/istemesin kesinlikle ‘bitti’ tanımına uygun olmak zorundadır.
7. Bitti Tanımı (Definition of Done)
Bitti tanımı tüm Scrum Takımı için tek bir anlam ifade etmelidir, ortak dil kullanımı ortaya çıkacak ürün parçacığını planlarken bir rehber niteliğindedir. Bir iş için bitti dendiği anda, Scrum Takımı’na dahil olan herkes aynı şeyi anlamalıdır.
Farklı Scrum Takım’larının birbirinden farklı ‘bitti’ tanımı olabilir. Tanım takım tarafından belirlenir. Takım için asgari standardı ifade eder. Herkes için ortak bir referans noktası oluşmasını sağlar. Scrum Takımı olgunlaştıkça ‘bitti’ tanımının gelişmesi beklenir. Daha yüksek kalite standartlarının dahil edildiği bir ‘bitti’ tanımı her Scrum Takım’ı için elbette ortak bir hedeftir.