Agile Metodolojisinde Fibonacci Serisi Kullanımı

Berk Buldanlı
3 min readFeb 27, 2022

Fibonacci serisini biliyorsunuzdur sanırım. Her sayının kendinden bir önceki sayı ile toplamının, bir sonraki sayıyı verdiği o meşhur sayı dizisi. Hatta ilginç olan da devam eden sayıların birbiriyle oranlandıklarında gitgide “altın oran”a, yani 1,618'e yakınlaşmasıdır. Altın oran dediğimizde de aklımıza direkt Leonardo Da Vinci geliyor tabii :)

Vitruvius Man-Golden Ration (Leonardo da Vinci)

Peki, Fibonacci serisinin Agile metodolojisi ile bağlantısı ne? Nerede kullanıyoruz ki Fibonacci serisini? Kullanıyorsak bile niye kullanırız ki?

Agile’da sprint planlamaları yapılırken storyler üzerinden planlamalar gerçekleştirilir. Her story aslında yapılacak işleri özetler. Storyler üzerinde tutulan bir de Story Point kavramı vardır ki, aslında o storynin önem seviyesi veya büyüklüğünü tanımlayabilecek, bir diğer deyişle o işin eforunu tanımlayan sayılardır.

Klasik eforlama yöntemi olan insan*gün yerine story point kullanılmasının birden fazla nedeni var. Aşağıdaki grafik ise gayet net bir şekilde aslında durumu özetliyor. Pek tutarlı değil gibi sanki, ne dersiniz? :)

Peki, bu story pointleri nasıl hesaplıyoruz? Nedir bu verdiğimiz puanlar?

Story pointleri tanımlarken, hayatımıza Fibonacci serisi giriyor işte. Fibonacci serisini neden kullanıyoruz?

Bunu en iyisi Scrum Alliance’ın kurucularından olan Mike Cohn’un sözleriyle açıklayalım.

Bir elinizde bir kilo, diğer elinizde ise iki kilo ağırlık olduğunu düşünün. Bakmadan, hangi elinizde hangi ağırlığın olduğu yüksek ihtimalle tahmin edebilirsiniz çünkü iki kiloluk ağırlık belirgin bir şekilde, bir kilodan daha ağır gelecektir. -%100 daha ağır olduğunu düşünürseniz.

Şimdi ise bir elinizde 20 kilo, diğer elinizde ise 21 kilo ağırlık olduğunu düşünün. Hangi elinizde hangi ağırlığın olduğunu belirlemek daha zor olacaktır çünkü ağırlıklar arasındaki fark belirgin değildir — yalnızca %5 fark bulunmaktadır.

Aslında bu örnek çok net bir şekilde açıklıyor. Story point tanımlarken birine 10, diğerine 11 vermek pek mantıklı olmayacaktır. O aradaki farkı ölçmek zorken, eğer o farkı ölçmek için efor harcarsanız işler daha da karmaşıklaşacaktır.

Photo by Afif Kusuma on Unsplash

Fibonacci serisi burada yardımımıza koşuyor. Genellikle kullanılan seri (0,1,2,3,5,8,13,21..) şeklinde gitmektedir. Bir diğer alternatif versiyon olarak (0, .05, 1, 2, 3, 5, 8, 13, 20, 40, 100) serisini verebiliriz. Aslında buradaki esas mantık, sayılar arasında gözle görülür fark olmasından kaynaklı olarak işleri doğru şekilde sıralayabilmek ve puanlayabilmektir. 1den 100e kadar olan sayı serisinde hem seçimler karmaşıklaşır, hem de doğru story pointleri belirlemek zorlaşır.

0– Herhangi bir business değerinin bulunmadığı durumlar için 0 puan verilebilir. Hem business değerinin bulunmadığı, hem de gerçekleştirmek için bir efor gerektirmeyen, anlık olarak düzeltilebilecek durumlar için geçerlidir.

1- Genellikle sprint içindeki en küçük iştir, tamamlaması ve gerçekleştirmesi bir gün veya daha az sürecek işler için geçerli durumdur.

2- Çok zorlayıcı olmayan, yine de işinde çözülmesi gereken bir problem barındıran işler için geçerlidir.

3- Ortalama zorluğu bulunan, içinde geliştirme sonrası test eforu da barındıran işler için verilebilir.

5- Sık gerçekleştirilmeyen ve kompleksite barındıran işler için tanımlanabilir. İçinde test süreci de yer alabilir. Haftalık sprint planına alınabilecek bir iştir.

8- Pek net olmayan, sorular barındıran ve yüksek ihtimalle bir haftadan fazla sürme ihtimali bulunan, geliştirme ve test eforu yüksek çıkacak işler için kullanılabilir.

13- İçinde risk barındıran, geliştirme süreci karmaşık ve belirsizliklerle dolu işler için kullanılabilir. Genellikle gerçekleştirmesi iki hafta veya daha fazla sürecektir. Sprint planına alınması riskli olan ve sprint içinde gerçekleştirmesi kolay olmayan işler için kullanılabilir.

21- İçinde varsayımların, risklerin çok olduğu, bir sprint içinde tamamlanması mümkün olmayan işler için verilebilir.

Peki siz Fibonacci serisini ve story point kavramını sprint planlamanızda kullanıyor musunuz? Yoksa hala “insan*gün” eforu üzerinden mi çalışıyorsunuz? Fibonacci serisi ve story point kullanıyorsanız, karşılaştığınız farklı durumlar var mı?

Diğer yazılara aşağıdan erişebilirsiniz.

--

--

Berk Buldanlı

Product & Project Management | Data Science | Digital Transformation | Technology Development