6- Scrum Yaklaşımında Ürün Birikim Listesi

Scrum’da ürün birikim listesi, şeffaflık, denetim ve adaptasyon için fırsatlar sağlamak üzere tasarlanmış bir eserdir.

Ürün birikim listesi, üründe ihtiyaç duyulan her şeyin sıralı bir listesidir.

Birikim listesi, var olanlara ek, yeni özellikler, iyileştirmeler veya değişiklikler içerebilir.

Ürün birikim listesindeki her bir madde, ürün birikim öğesi olarak adlandırılır.

Bir birikim öğesinin, açıklaması, sırası, boyutu ve değeri gibi özellikleri tanımlanır. Ayrıca, işin tamamlanıp tamamlanmadığını test etmeye yardımcı olacak kabul kriterleri de yer almalıdır.

Ürün birikiminden sorumlu kişi, ürün sahibidir.

Ürün birikim listesinde değişiklik yapma faaliyetine ürün birikim yönetimi diyoruz.

Peki ürün birikim listesi tam olarak nasıl oluşturulur ve yönetilir?

Her şey, bir hedef veya vizyonla başlar.

Ürün sahibinin, ürünün ulaşması gereken hedefi tanımlaması beklenir.

Ürün sahibi, paydaşlarla sürekli işbirliği yaparak, piyasa koşullarını, rakipleri, yasal düzenlemeleri inceleyerek iş gereksinimlerini belirler.Ürün birikim listesinde sadece ve sadece ürün hedefine ulaşmamıza yardımcı olacak öğeler bulunmalıdır.

Ürün hedefi, ürün birikim listesi için bir taahhüttür. Bir seferde, sadece, bir ürün hedefi olmalıdır.

Ürün birikim listesini yönetmek, devam eden bir süreçtir. Ürün sahibi ise, ürün birikim listesinden sorumludur ve istediği zaman ürün birikim listesi öğelerinin sırasını değiştirebilir, yenilerini ekleyebilir veya var olanları çıkarabilir.

Ürün sahibinin, geliştirme ekibiyle yakın çalışması çok önemlidir. Ürün birikim listesi iyileştirme etkinliği sırasında, ürün sahibi ve geliştiriciler, büyük öğeleri daha küçük parçalara bölmek için işbirliği yapar. Öğeler, ne kadar küçük olursa, yönetimi ve kontrolü o kadar kolaylaşır.

Ayrıca, ürün birikim listesi üzerinde, öğelerin detaylarını, boyutunu ve sırasını belirlemek için de çalışacaklardır. Bir öğenin boyutu, işi yapma çabasının ne kadar büyük veya küçük olduğunu gösterir. Bir öğenin boyutunu bulma işlemine, boyutlandırma veya tahmin etme denir.

Ekip üyeleri, yani geliştiriciler, boyutlandırmadan sorumludur.

Ürün birikim listesi, ürün yaşadığı sürece mevcut olan bir belgedir. Ürünün kendisiyle birlikte büyür ve iş gereksinimlerine, pazar koşullarına, kanunlardaki değişikliklere ve buna benzer faktörlere göre içeriği değişir.

Ürün birikim öğlelerinin, bir sonraki sprint için seçime hazır oldukları kabul edilir. Bu, öğelerin bir sprint içine sığacak kadar küçük olduğu anlamına gelir. Böylece, ekip hemen bu gereksinimler üzerinde çalışmaya başlayabilecektir.

3- Scrum Eserleri

Bu videoda scrum eserlerini tanıyacağız.

Eser kelimesi (İngilizce’de Artifact) biraz kafa karıştırıcı olabilir. Bu konuyu biraz açalım.

Eser, aslında insanlar tarafından yapılan veya şekil verilen, sanatsal bir özelliği olan ürünler için kullandığımız bir kavramdır.

Scrum’da eser ifadesi, yaratılan herhangi bir şeydir.

Scrum kılavuzu şu üç eserden bahseder.

1- Ürün birikimi.

2- Sprint birikimi.

3- Artış veya ürün artışı

Bütün metot ve yaklaşımlarda olduğu gibi Scrum yaklaşımının da kendine özel bir terminolojisi vardır. Bu kavramları baştan öğrenmek, sonraki videoların içeriğini anlamanızı kolaylaştıracaktır.

Tekrar dönelim Scrum’daki eserlere…

Scrum eserlerinin her biri taahhüt içerir.

Örneğin, Ürün birikimi, uzun vadeli bir hedef olan ürün hedefine ulaşmak için hazırlanır.

Sprint birikimi, her sprint için tanımlanan sprint hedefine ulaşmak için vardır.

Ürün artışı, ürünün sahip olması gereken kaliteyi tanımlayan “bitmişin tanımını” yerine getirmeyi taahhüt eder.

Bu durumda, taahhüt, belirli bir şeyi başarmaya odaklanmak anlamına gelmektedir.

Bir taahhüde sahip olmak, herkesin çalışmanın neden önemli olduğunu ve istenen sonucun ne olduğunu anlamasını sağlar.

Bundan sonraki videolarımızda Scrum’ın eserlerini daha detaylı olarak göreceğiz.

2- Scrum Çerçevesine Genel Bakış

Scrum, yeni ürün geliştirirken karmaşık işlerle başa çıkmak için kullanılan bir çerçevedir.

Sürekli değişen piyasa koşulları ve teknolojik gelişmelerden dolayı fazlasıyla belirsizlik yaşanan günümüzde, bir ürünün nasıl geliştirilmesi gerektiğini baştan düşünmek imkansızdır. Diğer bir ifadeyle, müşterilerin bundan altı ay sonra ne isteyeceği konusunda şimdiden net bir fikrimiz olamaz. Bu yüzden, gereksinimleri baştan detaylı anlamaya çalışmak ve buna göre ayrıntılı bir plan oluşturmak, değişimin yoğun olduğu sektörlerde işe yaramamaktadır.

Onun yerine, ürünü başarıya ulaştırmak için zaman kutuları ile çalışmak ve potansiyel değişikliklere hızlı adapte olabilmek daha önemli hale gelmiştir. Scrum, belirsizlikle başa çıkmak için zaman kutularının sonunda geri bildirimler almaya ve küçük artışlar yaparak ürünü geliştirmeyi sağlayan bir yaklaşımdır.

SCRUM, bir ürün geliştirmek için gereken tüm adımları, ürünün küçük bir parçası için yapmayı hedefler. Örneğin bir projedeki gereksinimleri toplama, tasarlama ve prototip oluşturma, geliştirme, test etme, dokümante etme gibi adımların hepsi sprint adı verilen sabit uzunlukta bir zaman kutusunun içine yerleştirilir.

İlk sprintten itibaren, ekip üyeleri, müşterilere piyasaya sürülmemiş olsa bile, çalışan, test edilmiş ve potansiyel olarak yetenekli bir ürün yaratmayı hedefler. Her sprintten sonra, ekip neyi başardıklarını müşteriye gösterir ve daha sonra ne yapacaklarını tartışır.

Şöyle bir kabul vardır: Müşterilerin gerçek ihtiyaçlarını anlayabilmeleri ve tarifleyebilmeleri için önce yanlış ürünü karşılarında görmeleri gerekir. Sonra kısa yinelemeler yani zaman kutuları ile müşteriler sürekli ekibe geri bildirim vererek ürünün iyileştirmesinde görev alırlar. Bu yöntem, müşterilerin istediği ve sevdiği bir ürüne ulaşma olasılığını önemli ölçüde artırır.

Bunu başarabilmek için, ekibin gereksinimleri anlaması, tasarım yapabilmesi, ürünü geliştirebilmesi ve test yapabilme becerisine sahip olması gerekir. Böylece, sprint sonunda potansiyel olarak müşterinin onay verebileceği ve çalışan bir ürün ortaya çıkmış olur.

Bir Scrum takımı, bir Scrum Master, ürün sahibi ve geliştiricilerden oluşur.

Ürün sahibi, ürün birikim listesi adı verilen özellikler listesini oluşturacak ve bu listeyi maksimum miktarda değer elde etmek için düzenleyecektir.

Geliştiriciler çalışır ve listedeki öğeleri sunulabilir bir ürün parçasına dönüştürmeyi hedefler.

Yol boyunca Scrum Master, ekibi sprint hedefine odaklar ve onları etkileyen tüm engellerin kaldırılmasına yardımcı olur.

Sprint’in son etkinliği, retrospektif toplantısıdır. Scrum takımı, sprintin nasıl gittiğine bakar ve iyileştirme noktaları bulur. Ardından bir sonraki sprintin planlaması ile süreç baştan başlatılır ve döngü tekrar eder.

Çevik Manifesto ve Scrum’ın Doğuşu

Bu dersimizde Çevik manifesto’dan ve Scrum’ın doğuşundan bahsedeceğiz.

Öncelikle, Çevik yaklaşımın ne anlama geldiğini anlayarak konularımıza başlayalım.

Çevik yaklaşım, çapraz işlevli, kendi kendini yöneten ekiplerin ve müşterilerin ortak çabasıyla gereksinimlerin ortaya çıkarıldığı bir yolu tanımlar. Bu çerçevede çevik terimi, çevik yazılım geliştirme manifestosundan gelmektedir.

Bu manifestodaki değerler ve fikirler, Scram, Kanban, Crystal, Extreme Programming ve benzer çerçevelerin yelpazesinden türetilmiştir.

İşte bu yüzden Scrum, çevik bir çerçeve olarak kabul edilir ve Çevik yaklaşımla ilişkilendirilir.

Şimdi manifestoda söylenenlere bir göz atalım.

Süreçler ve araçlar yerine bireyler ve onların etkileşimleri daha önemlidir.

Bunun ne anlama geldiğini düşünelim.

İyi kurulmuş süreçlere sahip olmak ve uygun araçları kullanmak şüphesiz çok önemlidir.

Ancak ortak bir amaç için birlikte çalışan yetenekli ve kararlı insanlara sahip olmak daha da önemlidir.

Kapsamlı belgeler yerine çalışan yazılım daha önemlidir.

Birincil amaç, tonlarca belge değil, çalışan bir ürün oluşturmaktır.

Dokümantasyon özenle kullanıldığında faydalıdır, ancak odak noktası bu olmamalıdır.

Kullanabileceğiniz bir ürününüz yoksa dokümantasyonla pek bir şey yapamazsınız.

Sözleşme müzakereleri yerine müşteri ile işbirliği yapmak daha önemlidir.

Müşterilerle ilgilenirken işbirliği yapmak ve ortak bir amacınız veya ortak bir hedefiniz olsun istersiniz.

Güven oluşturmak ve her iki tarafın da ilerlemeye yardımcı olduğu bir çalışma ilişkisine sahip olmak projeye değer katacaktır..

Müşterinin kendisinden ziyade avukatlar ve sözleşmelerle uğraştığınız bir ilişki yaşamak istemezsiniz.

Bir planı izlemek yerine değişime uyum sağlamak önemlidir.

Bir plana sahip olmak önemlidir tabii ki. Fakat plana uyma amacıyla ilerlerken pazardaki değişikliklere veya yeni teknolojik gelişmelere uyum sağlayamazsanız, ürününüz istediğiniz sonucu vermeyecektir.

Plan üzerinde ihtiyaca göre değişiklik yapmaya hazır olun. Ne kadar esnek olursanız, o kadar iyidir.

Çevik Manifestosu artık 20 yaşın üzerinde olsa da, fikirler ve ilkeler yalnızca yazılım geliştirme için değil, aynı zamanda diğer ürün kategorileri için de geçerlidir.

Scrum ise Çevik Manifestonun 2001 yılında oluşturulmasından önce de vardı.

1995 yılında Ken Schwaber ve Jeff Sutherland, Scrum Çerçevesini açıklayan bir makale sunmuşlardı.

Çevik Yaklaşımda İtiş-Kakış Törenleri (Tam Türkçe)

Ben, PMP Hazırlık Eğitimlerimde, elimden geldiğince kelimelerin Türkçe karşılıklarını da vermeye gayret ederim. Bazı kişiler, orjinalindeki anlamı bulamayabilir (bu çok doğal) ama bazı kişiler için de yeni ufuklar açacaktır, diye düşünürüm. İşte, bu yazımda elimden geldiğince ve dilim döndüğünce, bazı çevik törenlerinin (ceremony) içeriklerini ve amaçlarını paylaşmaya çalıştım.

İtiş-Kakış(Scrum) gibi çevik yaklaşımlar, ekibin projeyi ilerletmesini sağlamak için toplantı ritmi oluşturmak adına törenler(ceremonies) kullanır. İtiş-Kakış Ustası (Scrum Master), geliştirme ekibinin koçu ve İtiş-Kakış içindeki süreç sahibidir.


Koşu (Sprint) Planlama: İtiş-Kakış ekibinin mevcut koşuyu (sprint) planladığı bir etkinliktir. Başka bir deyişle, bir müşteri (Ürün Sahibi) ile proje ekibi arasındaki iletişimi ve işbirliğini kolaylaştıran bir toplantıdır.

Koşu (Sprint) Planlama toplantısı, genellikle koşu (Sprint) veya yineleme (Iteration) olarak adlandırılan kısa, tanımlanmış bir süre boyunca bir ekibin tamamlaması için küçük hedefler üzerinde anlaşmalarını kolaylaştırır.

Koşu, planlamayı kolaylaştırmak, tahmin kalitesini iyileştirmek ve ekip ve ürün sahibi için tutarlı bir ritim belirlemek için 1–4 hafta arasında bir zaman kutusuna (time-box) sahip olur.


Günlük İtiş-Kakış/Ayakta Durma(Daily Scrum/Stand up): Takımın yineleme hedeflerine bağlılığını yeniden teyit etmesi ve yineleme hedeflerine ulaşma kabiliyetine olası engelleyicileri ortaya kaldırması için her gün 10–15 dakikalık kısa bir toplantı yapılır. Genel olarak, toplantı bir daire içinde ayakta yapılır. Amaç, ekibin o günün çalışmalarını kendi aralarında koordine etmesini sağlamaktır.


Koşu Gözden Geçirmesi (Sprint Review): Her yinelemenin sonunda yapılan toplantıdır. Ürün Sahibi ve diğer müşteri paydaşları, ürünün gözden geçirmesi, erken geri bildirim sunması ve tamamlanan kullanıcı hikayelerini (user story) kabul etmesi amacıyla gerçekleştirilir. Gösteri/Arz/Sunum (Demonstration) olarak da anılır.


Koşu Geçmişine Bakmak (Sprint Retrospective): Takımın kendi iyileştirmelerini belirlemesi için İtiş-Kakış Uzmanı (Scrum Master) tarafından idare edilen takım üyeleri toplantısıdır. Ekibin tamamlanan koşuyu (sprint) gözden geçirerek, sonraki koşu/yineleme (sprint/iteration) için iyileştirmeleri belirlemesi amacıyla yapılır.