Gönderiler

Agile'de Fibonacci Dizisi: Story Points İçin Neden 1, 2, 3, 5, 8, 13 Kullanıyoruz

Planning poker kartları Fibonacci sayılarını gösteriyor, masa üzerinde yayılmış, geliştirici elleri onlara uzanıyorPlanning poker kartları Fibonacci sayılarını gösteriyor, masa üzerinde yayılmış, geliştirici elleri onlara uzanıyor
Matt Lewandowski

Matt Lewandowski

Son güncelleme 16/02/20268 dk okuma

İlk planning poker oturumunuza oturuyorsunuz. Takım lideri bir backlog öğesini çıkardı ve herkesin oy vermesini istedi. Kart seçeneklerinize bakıyorsunuz: 1, 2, 3, 5, 8, 13. 4 nereye gitti? Neden 5'ten 8'e sıçrıyor? Neden 1'den 10'a kadar kullanmıyoruz? Bu, her yeni takım üyesinin sorduğu sorudur. Ve cevap, insanların karmaşık işi nasıl tahmin ettiği hakkında temel bir şeyi ortaya koyuyor.

Fibonacci Dizisi Aslında Nedir

Fibonacci dizisi, her sayının önceki iki sayının toplamı olduğu bir sayı serisidir: 0, 1, 1, 2, 3, 5, 8, 13, 21, 34, vb. İtalyan matematikçi Leonardo of Pisa (Fibonacci olarak bilinir) tarafından 1202'de tanımlanmıştır, ancak desen doğada her yerde görülür, bir nautilus kabuğunun spiralinden ağaçların dallanmasına kadar. Agile takımları Fibonacci dizisini doğayla olan bir bağlantı nedeniyle kullanmazlar. Bunu kullanırlar çünkü sayılar büyüdükçe sayılar arasındaki boşluklar artar ve bu yazılım tahmini yapılırken belirsizliğin nasıl çalıştığını yansıtır.

Doğrusal Ölçekler Tahminde Neden Başarısız Olur

Takımınızın basit bir 1-10 ölçeğini kullandığını hayal edin. Birisi bir hikaye çıkarır ve iki geliştirici farklı oy verir. Biri 6, diğeri 7 diyor. Bu anlaşmazlık anlamlı mı? Muhtemelen hayır. 6 ile 7 arasındaki fark o kadar küçük ki o gürültüdür. Ama şimdi takım bunun gerçekten 6 mı yoksa 7 mi olduğu konusunda beş dakika debat ediyor, var olmayan bir ayrımı gerekçelendirmeye çalışıyor. Bu yanlış kesinlik için beş dakika boşa gitti. Doğrusal bir ölçek, çalışma çabası seviyeleri arasında eşit kesinlikle ayrım yapabileceğinizi ima eder. Yapamzsınız. Ve öğe ne kadar büyükse, kesinliğiniz de o kadar kötü olur. Beyaz pano karşılaştırması, eşit aralıklı sayılarla doğrusal ölçek ile değerler arasında artan boşluklara sahip Fibonacci ölçeğini gösteriyorBeyaz pano karşılaştırması, eşit aralıklı sayılarla doğrusal ölçek ile değerler arasında artan boşluklara sahip Fibonacci ölçeğini gösteriyor

Boşluklar Neden Önemli

Fibonacci dizisi tahmini için üç birleşen ilke nedeniyle çalışır.

Belirsizlik Konisi

Küçük görevler tahmin edilebilir. "Düğmenin rengini maviden yeşile değiştir" minimum bilinmeyenlere sahiptir. Bunu güvenle tahmin edebilirsiniz. Büyük görevler katlanarak daha fazla bilinmeyeni taşır. "Ödeme entegrasyonunu oluştur" tek bir öğe gibi görünür, ancak kimlik doğrulama, hata işleme, yeniden deneme mantığı, uyum gereksinimleri ve henüz düşünmediğiniz uç durumlar içerir. İş ne kadar büyükse belirsizliğiniz de o kadar geniş olur ve tahmini ölçeğiniz bunu yansıtmalıdır. Fibonacci boşlukları karmaşıklık arttıkça genişler ve 13 puanlı bir hikayenin 3 puanlı bir hikayeden çok daha fazla belirsizliğe sahip olduğu gerçeğini yansıtır. Bu kadar büyük bir şey için 12 ile 13 arasında seçim sunmak anlamsız kesinlik olurdu.

Anlamlı Anlaşmazlığı Zorlama

Fibonacci ölçeğinde, iki geliştirici katılmadığında anlaşmazlık anlamlıdır. 5'ten 8'e sıçrama %60 artıştır. Bu tür bir boşluk gerçek bir anlayış farkını yansıtır: bir kişi basit bir uygulamayı görür, diğeri gizli karmaşıklığı görür. Bu anlaşmazlık planning poker'da istediğiniz tam konuşmayı tetikler. "Neden 8 olduğunu düşünüyorsun?" "Çünkü çevrimdışı senkronizasyon durumunu işlememiz gerekecek." "Ah, bunu düşünmemiştim." Ölçek, gerçekten riskleri ve yanlış anlamaları ortaya çıkaran tartışmaları zorlar. Doğrusal bir ölçekle, 6 vs 7 anlaşmazlığı tartışmak için aynı aciliyeti tetiklemez. Boşluk, temel alınan varsayımlar tamamen farklı olsa bile önemli görülmek için çok küçüktür.

Weber Yasası

Psikofizikteki bir prensip vardır buna Weber Yasası denir: insanlar farkları mutlak değerler olarak değil oranlar olarak algılarlar. 1 kilogram ile 2 kilogram arasındaki farkı kolayca söyleyebilirsiniz. Ama 50 ile 51 kilogram arasındaki farkı söylemek? Çok daha zor. Aynı şey tahmin için de geçerlidir. 2 mi yoksa 3 mü olduğunu güvenle söyleyebilirsiniz (%50 sıçrama). 14 mü yoksa 15 mi olduğunu güvenle söyleyemezsiniz (%7 sıçrama). Fibonacci dizisi, bunu bitişik seçenekler arasındaki oransal farkı kabaca sabit tutarak, ölçekteki her seçimin gerçekten ayırt edilebilir bir çaba seviyesini temsil ettiği anlamına gelerek saygı gösterir.

Değiştirilmiş Fibonacci Dizisi

Farklı tahmin ölçekleri kullandıysanız, çoğu agile aracının saf Fibonacci dizisini kullanmadığını fark edeceksiniz. Değiştirilmiş bir versiyon kullanırlar: 1, 2, 3, 5, 8, 13, 20, 40, 100 Değiştirme 13'ten sonra başlar. Saf Fibonacci size 21, 34, 55, 89 verirdi. Bunun yerine takımlar daha temiz sayılara yuvarlanırlar: 20, 40, 100. Neden? Çünkü bu ölçekte Fibonacci'nin kesinliği önemli değildir. 40 puana tahmin edilen bir şeyin o kadar çok belirsizliği vardır ki 34 ile 40 arasındaki fark ilgisizdir. Yuvarlak sayılar doğru mesajı iletir: "Bu çok büyük ve biz tahmin ediyoruz." Bu ölçeği kullanan çoğu takım 13'ün üzerindeki her şeyi öğenin üzerinde çalışılabilmesi için daha küçük hikayelere ayrılması gerektiğine dair bir sinyal olarak görürler.

Sonsuzluk ve Soru İşareti Kartları

Bir planning poker oturumu sırasında sonsuzluk kartı ve soru işareti kartı tutan geliştiriciBir planning poker oturumu sırasında sonsuzluk kartı ve soru işareti kartı tutan geliştirici Sayıların ötesinde, çoğu planning poker destesi iki özel kart içerir: Sonsuzluk "bu tahmin etmek için çok büyük" anlamına gelir. Takımın bir hikayenin tahmin anlamlı olabilmesi için ayrıştırılması gerektiğini söyleme biçimidir. Birisi sonsuzluğu oynarsa doğru cevap onları 40'a pazarlık etmek değildir. Tahmin etmeyi durdurmak ve bölmeye başlamaktır. Soru işareti "Bunu hiç tahmin etmek için yeterli bilgim yok" anlamına gelir. Belki gereksinimler açık değildir. Belki geliştirici kod tabanının bu kısmıyla çalışmamıştır. Belki hikaye henüz alınmamış bir kararı söyler. Soru işareti bu boşlukları açığa çıkarır backlog iyileştirmesi sırasında iş bir sprint'e girmeden önce ele alınabilsin. Her iki kart aynı amaca hizmet eder: takımın henüz hak etmeyen bir şeye sayı atamamasını engeller. Sayı olarak sunulan bir tahmin plan olarak kabul edilir. Bir soru işareti eylem öğesi olarak kabul edilir.

Fibonacci Doğru Seçim Olmadığında

Fibonacci dizisi en yaygın tahmin ölçeğidir ancak her zaman en iyi seçim değildir. T-shirt boyutlandırması (XS, S, M, L, XL) hızlı, kaba tahminler yapmanız gerektiğinde ve sayısal tartışmalara girmek istemediğinizde daha iyi çalışır. Özellikle tam puanların önemli olmadığı roadmap düzeyi planlama için kullanışlıdır. Agile tahmin teknikleri hakkında rehberimizi okuyun, t-shirt boyutlandırması ve diğer yöntemlerin nasıl karşılaştırıldığını görmek için. 2'nin Gücü (1, 2, 4, 8, 16, 32) seçenekler arasında daha agresif boşluk istediği takımları çeker. Her adım çabayı ikiye katlar, bu da anlaşmazlıkları daha da belirgin kılar. Doğrusal ölçekler öğelerin gerçekten benzer boyutlar etrafında kümelendikleri yüksek derecede tahmin edilebilir, tek tip iş yapan takımlar için çalışabilir. Ama bu takımlar genellikle hiç tahmin yapmasına ihtiyaç duymaz. Öğeleri saymak aynı tahmin doğruluğunu verir. #NoEstimates hareketi tahminleri tamamen atlama zamanı için ikna edici bir durum ortaya koymaktadır. Doğru ölçek takımınızın bağlamına bağlıdır, ancak bazı belirsizlikle değişken iş yapan çoğu agile takımı için Fibonacci iyi nedenden ötürü varsayılan olarak kalır.

Fibonacci'yi Uygulamaya Koymak

Fibonacci neden çalıştığını anlamak faydalıdır. Ancak gerçek değer tüm takımın katıldığı yapılandırılmış tahmin oturumlarında kullanmaktan gelir. Planning poker'ı ilk kez çalıştırıyorsanız standart Fibonacci ölçeği ile başlayın (1, 2, 3, 5, 8, 13). Erken bir referans hikaye belirleyin ("herkes bu giriş formu değişikliğinin 3 olduğu konusunda anlaşıyor") ve diğer her şeyi o ankora göre tahmin edin. Bir öğe çok farklı tahminler oluşturursa, bunları ortalamalamayın. Anlaşmazlığı tartışın. Ölçeğin işini yaptığı yer burasıdır. Bunu takımınızla Kollabe'nin planning poker aracını kullanarak deneyebilirsiniz. Fibonacci'yi ölçeğiniz olarak seçin, takımınızı davet edin ve tahmin etmeye başlayın. Ayrıca tahmini tahmin etmesi muhtemel olan hikayeleri belirlemek için oturumdan önce öğeleri tahmin karmaşıklığı analiziyle çalıştırmak isteyebilirsiniz.

Saatler kişiye göre değişen süreyi ölçer. Kıdemli geliştirici 2 saatte tamamlayabilir bir görev, çırak geliştirici 8 saat alabilir. Story point'ler diğer çalışmaya kıyasla karmaşıklığı ölçer, takımın tamamı görev kimi alırsa alsın konusunda anlaşabilir. Puan'lar ayrıca tahminleri taslak olarak işleme alma tuzağını da engeller.

Bir story point, takımınızın tahmin ettiği diğer hikayelere kıyasla nispi çaba ve karmaşıklığı temsil eder. 5 puanlı bir hikaye 3 puanlı bir hikayenin kabaca iki katı karmaşık olmalı ve 8 puanlı bir hikayenin yaklaşık yarısı kadar karmaşık olmalıdır. Spesifik sayılar izolasyonda anlamsızdır. Yalnızca takımınızda birbirlerine göre anlam taşırlar.

Bazı takımlar yazım hatası veya yapılandırma değişikliği gibi önemsiz derecede küçük işi temsil etmek için Fibonacci ölçeklerine 0 dahil ederler. "Bu neredeyse hiç çaba almaz ama takip etmeliyiz" işaret eder. Diğer takımlar 0'ı atlarlar ve 1'i en küçük değerleri olarak kullanırlar. Her iki yaklaşım da çalışır, sadece tutarlı olun.

Tahminlerinizin çoğu iki değer etrafında kümelenmişse, hikayeleriniz çok benzer boyutlu olabilir (üretilen tahmin için aslında iyidir) veya takımınız yeterince farklılaştıramıyordur. Referans hikayelerinizi yeniden kalibre etmeyi deneyin. "3" demiryolunuzun gerçekten küçük olduğundan ve "13" demiryolunuzun gerçekten büyük olduğundan emin olun. Her şey hala kümelenmişse, hikayelerinizin farklı şekilde bölünmesi gerekebilir. Örüntüler için bkz. epics bölme rehberimiz.