Scrum Kitap Özeti
- 6 minsMerhaba,
Jeff Sutherlands’in yazmış olduğu Scrum: İki Katı İşi Yarı Zamanda Yapma Sanatı adlı kitaba dair notlarımın bir kısmını 2018’de Okuduğum Kitaplar yazısında paylaşmıştım. Notlarımın geri kalanıyla bu yazıyı hazırlayıp taslaklarda bırakmışım, ziyan olmasın diye yayımlamak istedim. Gün bugün… 🙂
Scrum nedir?
Scrum, yazılım geliştirme süreçlerinde yaygın olarak kullanılan bir çerçevedir ve çevik yazılım geliştirme metodolojilerinden biridir. Scrum, esnek ve adaptif bir yaklaşım benimseyerek, projelerin değişen gereksinimlere hızlı bir şekilde cevap verebilmesini sağlar.
Scrum nasıl uygulanır?
1- Ürün sahibi seçin
Başarılacak şeyle ilgili vizyona sahip kişidir. Riskleri, ödülleri, neyin mümkün olduğunu ve ne hakkında tutkulu olduğunu göz önüne alırlar.
2- Ekip seçin
Ekipler küçük olmalı, ideali 3 ila 9 kişi arasındadır.
3- Scrum ustası seçin
Ekibi yavaşlatan şeyleri eleyecek ve yol gösterecek kişidir.
4- Bir ürün iş listesi yaratın ve önceliklendirin
Bu iş listesi ürünün yaşam süresi boyunca var olur ve evrim geçirir. Ürünün yol haritasıdır.
“Öncelik sırasına göre ekip tarafından tamamlanabilmiş her şeyin” tek ve belirli bir görünümüdür.
5- Ürün iş listesini iyileştirin ve önceden kestirin
Listedeki işleri tamamlayacak kişilerin ne kadar emek harcayacaklarını önceden tahmin etmek önemlidir.
- İşleri tamamlamak için yeterli bilgi mevcut mu?
- Tahminde bulunulabilecek kadar küçük bir parça mı?
- Bir şey “tamamlandığında” göstergesi olacak standartlara dair herkes fikir birliğinde mi?
- Gözle görülebilir bir değer katıyor mu?
İş listesini saat cinsinden tahmin etmeye kalkışmayın, çünkü insanlar bu işte kötüdür. Göreceği boyutlara göre tahminde bulunun: Küçük, Orta, Büyük beden gibi. Hatta en iyisi Fibonacci serisini kullanın, her kalem iş için nokta değer tahmininde bulunun: 1,2,3,5,8,13,21…
6- Sprint planlayın
Bu, Scrum toplantılarının ilkidir. Ekip, Scrum master ve ürün sahibi Sprint’i planlamak için bir araya gelir.
Çoğu ekip 1 ya da 2 haftalık Sprint’ler kullanmaktadır. Ekip İş Listesinin en üstüne bakar ve bu Sprint’te ne kadarını tamamlayabileceğini tahmin eder.
Eğer ekip birkaç Sprint’i birlikte bitirmişse, son Sprint’te elde ettikleri sonuçları da göz önüne almalıdır. Bu bitirdikleri işleri gösteren rakam onların Hızıdır. Scrum Ustası ve ekip bu rakamı her Sprint’te artırmaya çalışmalıdır.
Bu toplantı sırasında herkes bu Sprint’te neyi başarmak istediğini gösteren bir Sprint Hedefi üzerinde de anlaşmalıdır.
Scrum’ın ana dayanaklarından biri, ekibin bir Sprint’te neleri tamamlayabileceklerini düşündüklerine karar verdikleri anda noktanın konmasıdır. Bu değiştirilemez ve üzerine ekleme yapılamaz.
Ekip neyi yapabileceklerine dair yaptıkları tahmini gerçekleştirmek için Sprint süresince otonom olarak çalışabilmelidir.
7- İşi görünür kılın
En yaygın yol üç sütunlu bir Scrum Tahtası hazırlamaktır. TODO, DOING, DONE.
Her işe başlandığında TODO’dan DOING’e taşınır.
İş tamamlanınca DONE’a çekilir.
8- Günlük Stand-Up ya da günlük Scrum
Bu Scrum’ın kalp atışıdır. Her gün aynı saatte 15 dakikayı geçmeyecek şekilde ekip ve Scrum Ustası bir araya gelir ve şu 3 soruyu yanıtlar:
- Dün ne yaptın?
- Bugün ne yapacaksın?
- Sprint hedefine ulaşmayı engelleyen bir engel var mı?
Eğer toplantı 15 dakikadan uzun sürüyorsa bir şeyler yanlış ilerliyordur.
Bu toplantıyla birlikte herkesin tüm ekip üyelerinin Sprint içindeki yerlerini bilmesi sağlanır.
Ekibin ilerlemesinin önündeki engel ya da gecikmelerin ortadan kaldırılmasından Scrum Ustası sorumludur.
9- Sprint’in gözden geçirilmesi ya da demosu
Sprint süresince ekibin neleri tamamlandığını gösterdiği toplantıdır.
Sadece Ürün Sahibi, Scrum Ustası ya da Ekip değil, aynı zamanda paydaşlar, yönetim, müşteriler, herkes katılabilir.
Tamamen biten ve üzerine ilave çalışma yapılmadan teslim edilebilecek şeyler gösterilir.
10- Sprint geçmişine bakış
Ekip son Sprint’te neleri tamamladığını gösterdikten sonra oturulur ve neyin yolunda gittiğini, neyin daha iyi olabileceği düşünülür. Ekip olarak, süreçteki gelişim için derhal uygulayabilecekleri şey nedir?
Etkin olmak için bu toplantı belirli bir duygusal olgunluk düzeyi ve güven atmosferi gerektirir. Akılda tutulması gereken önemli husus suçlayacak birini aramadığınızdır, sürece bakmaktasınız.
İnsanlar aynı zamanda kendilerini rahatsız eden konuları mazeret bulmadan ziyade çözüm odaklı olarak açma cesaretine sahip olmak zorundadır. Ekibin geri kalanı da geri beslemeleri dinleyecek, anlayacak ve savunmaya geçmektense çözüm arayacak olgunluğa sahip olmak zorundadır.
11- Tekrar
Ekibin engellerle olan tecrübesi ve süreç gelişimleri dikkate alınarak yeni Sprint döngüsüne başlanır.
Kitaptan Aldığım Diğer Notlar
Sorulması gereken soru projeye esas değeri getiren şey nedir? Bir yazılımın herhangi bir parçasındaki değerin %80’i, özelliklerinin %20’sinde bulunmaktadır.
Scrum ile birlikte ekiplerin üretkenlikleri %300-400 arasında artabiliyor. Ayrıca yapılan işlerin kalitesi de 2 kattan fazla artmakta.
Performansa dayalı primler, terfiler ya da işe alımların tamamı, ekipten ziyade bireysel aktörün üzerine odaklanmıştır ve bunun da büyük bir hata olduğu ortaya çıkmıştır.
Scrum’da önemli düşüncelerden biri ekip üyelerinin işi nasıl yapacaklarına kendilerinin karar vermesidir.
Brooks Yasası: “Gecikmiş bir yazılım projesine insan gücü ilavesi yapmak onu daha da geciktirir.” Ekip üye sayısı sekizin üstüne çıktığında işlerin tamamlanması kayda değer derecede uzun sürmekteydi.
Tıpkı bir Özel Kuvvetler timinde olduğu gibi, bir Scrum ekibindeki herkes diğer herkesin ne yaptığını bilmek zorundadır. Yapılmış olan tüm işler, karşılaşılan güçlükler, kaydedilen ilerlemeler herkese açık ve şeffaf olmalıdır.
Suçlu ve hata aramak yerine birlikte çalışan ve işleri tamamlayan insanlara odaklarak pozitif davranışı ödüllendirmek gerekir.
Sprintler zaman sınırı denilen şeylerdir. Her sprint sonunda kullanıma hazır bir şeyler mutlaka olmalıdır.
Eğer kişiler özel bir unvana sahip olursa, sadece o unvana uygun gibi görünen işleri yapma eğilimi içinde olurlar. Bu yüzden tüm unvanlardan kurtulmak ve kartvizitleri atmak gerekir.
Hayatınızı zaman oluşturur, bu nedenle onu boşa harcamak aslında yavaşça intihar etmenin bir şeklidir.
Eğer beş projeniz varsa yaptığınız işin %75’i boşa gitmektedir. Bu beynin fiziksel sınırlamalarının bir sonucudur.
Eğer bir bug yaratıldığı gün ilgilenilirse bunu düzeltmek 1 saat alıyor. 3 hafta sonra ilgilenilirse 24 saat.
Üretkenliğin zirve noktası haftada 40 saatten sonra düşmektedir. Çok uzun saatler boyunca çalışan insanlar daha fazla hata yapmaya başlıyor. Herhangi bir günde verebileceğiniz sağlıklı karar sayısının bir limiti vardır. O nedenle saat beşte evinize gidin, cep telefonunuzu hafta sonları kapatın. Bir film izleyin. Bu kadar çok çalışmayarak, daha çok ve daha iyi kalitede iş halledeceksiniz.
Sadece gerekeni planlayın. Her şeyi yıllar öncesinden görmeye çalışmayın. Sadece ekiplerinizi çalışır durumda tutacak kadar planlama yapın.
Mutlu insanlar basit bir şekilde daha iyi yapıyorlardı - evde, işte, hayatta. Daha fazla para kazanıyor, daha iyi işlerde çalışıyor, üniversiteden mezun oluyor ve daha uzun yaşıyorlar.
İnsanları gerçekten mutlu eden şeyler, ekipleri harika kılan şeylerle aynıdır: otonomi, ustalık ve amaç.
Kapanış
Scrum tekniği yazılım geliştirmede gerçekten büyük faydalar sağlayabiliyor. Yazılım yaşayan bir varlık gibi. Sürekli, günden güne evrimleşmesi gerekiyor. Bu değişimin getirdiği gereksinimlere hızlıca uyum sağlamak için scrum biçilmiş kaftan.
Sadece yazılım geliştirme değil, bence günlük yaşantımızdaki bazı problemlere de farklı bir perspektifle bakmayı sağlayan bir teknik.
Umarım faydalı bir yazı olmuştur. Şimdilik hoşça kalın! 🙋🏻♂️