24 Eylül 2016

Scrum'da Development Team Büyüklüğü ve Başarılı Bir Takımın Genel Özellikleri

Scrum Development Team

Scrum'da Development Team, Sprint sonunda istenilen ürünü Definition of Done (DoD) çerçevesinde Done yapan ve üretime geçebilecek seviyedeki o ürünü teslim etmekten sorumlu olan kişilerden oluşur.

Increment'ler(İş parçacığı) sadece Development Team tarafından geliştirilir. Development Team, kendi işlerini planlamak ve yönetmek için kurulmuş yapılardır. Ortaya çıkan sinerji, geliştirme takımının verimliliğini ve etkinliğini artırmaktadır.

Başarılı bir Development Team'in Özelliklerinden bahsedecek olursak;

1) Takım her zaman kendi kendini yönetir. Bunun için bir yönetici veya otorite beklemeye ihtiyaç duymaz. Scrum Master dahil, Dev Team'in Product Backlog'dan alınan PBI'ların nasıl yapılacağına veya ne kadarının alınması gerektiğine tek başına karar veremez. Planlama sonunda da takım olarak alınacak iş büyüklüğü Commit edilmektedir.

2) Development Team çoklu beceri setine sahip olup tek bir alanda uzmanlaşan aynı kişiler tarafından kurulmazlar. Increment oluşturmak için takım Development, Testing, Backend, Analysis gibi birçok özelliği kendi içinde barındırır ve bir bütün olarak davranır.

3) Scrum'da Development Team üyeleri takım üyesi olup bu unvan dışında gelişmiş yeteneklerine göre takım içinde Analiz, Programcı, Testçi, Sistemci gibi unvanlar almaz ve rol ayrımı yapılmaz. Ayrıca Development Team'in lideri yoktur(Takım Lideri) herkes eşittir. Bütün üyeler her işi yapabilir.

4) Development Team içinde hiçbir alt takıma Scrum'da izin verilmez. Örnekle Analiz ve Test takımı gibi ayrımlara gidilirse Scrum amacından sapar ve Waterfall yapısına döner. Takım tüm bu süreçleri kendi içinde yapar ve bu becerilere zaten sahiptir.

5) Development Team üyeleri bireysel olarak uzmanlaştıkları alanlar olabilir. Done edilip sunulan üründen her zaman Development Team'in tamamı sorumludur. Örnekle Production ortamında bulunan yazılımsal hatadan sadece testçi veya eksik analizden dolayı işin bitmemesinden sadece Analist sorumlu değildir. Yine aynı şekilde geliştiricinin tahmin edemediği bir Impediment sonucu ürünün yapılamamasından yine sadece Developer sorumlu değildir.

Development Team Büyüklüğü ve Yapısı

Geliştirme takımının büyüklüğü önemlidir, takım hızlı ve çevik davranabilmelidir. Takım içi üyelerin birbiri ile koordinasyon ve uyumu da önemlidir. Takım, sayı olarak üçten az ve dokuzdan fazla olmamalıdır. Bu kurala uyan takımlar genelde başarılı olabilir. 3 ≤ Development Team ≤ 9

Takım üç kişiden az olursa etkileşim olmaz ve üretkenlik azalır. Sprint sonunda Increment teslim etmekte zorlanabilirler. Dokuzdan fazla üyesi olan takımı ise koordine etmek çok zordur ve fazla karmaşıklığa neden olur.

Sayının çok fazla olması takım içi kopuşların olması hatta guruplaşmalar gibi sonuçlar doğurabilir. Kapasiteye göre alınan iş çok olacağından bir PBI üzerine takımca yoğunlaşmak daha da zorlaşır. Bu seferde PBI'ları Sprint sonuna yetiştirebilmek için takım üyeleri PBI sorumluluklarını tek başlarına almaya çalışırlar. Sprint sonuna doğru tüm süreci yönetmek ve planlamak güçleşir.

1) Development Team sayısı dokuz veya dokuza yakınsa PBI'lara odaklanma ve aynı anda kaç PBI alınması gerektiği takım tarafından planlanması gerekir. Bu konu Retrospective toplantısında konuşulup bir Kaizen aksiyonu çıkarılabilir.

2) Takım her an birbiri ile iletişim içinde olmalı ve dağınık olarak oturmamalıdır. Sayısı az olan takımlarda yetkinlik düzeyi de iyi ise organize olma ve iş çıkarma hızı daha yüksek olabiliyor. Çünkü koordine etmesi daha basit oluyor.

3) Takım sayısının dokuzdan fazla olması Scrum Master üzerinde istemese de yönetimsel olarak organize etmek ve üyeleri koordine etmek zorlaşabiliyor. Yine bu olumsuzluk PBI'ı Done yapma sürecine giderken takım üyelerini aynı konuda dedicate etmek daha da güç hal alıyor.

4) Bir takımın forming, storming, norming, performing süreçleri vardır. Takım iniş ve çıkış evrelerinden sonra norming ile kendini tanır ve oturur. Daha sonra performansa geçer.

5) Scrum Master ve Product Owner, Sprint iş listesindeki işi yapmadıkları sürece Development Team üye sayısına dahil değildir.

Increment: Artım, BT veya programlama literatüründe ++ olarak da geçer. Çalışan ürüne denir.

Self Organize: Takımın kendi kendine organize olması ve beraber iş çıkarmasıdır. Kendini yönetmesidir. Her kişi kendini ve işi yönetir, takımı yönetmez.

Cross Functional: Takım bütün olarak kodlama, test, analiz, altyapı gibi gerekli tüm safhalarını tamamlayacak yetenekte insanlardan oluşmak zorundadır.

Hiç yorum yok:

Yorum Gönder