You can access the English version via this link.

Bu yazıda “çevik (agile) proje yönetimi nedir” sorusuna kısaca değineceğim. Ardından da çevik proje yönetim metodolojisi olan scrum ile yeni tanışacaklar için scrum içerisinde yer alan roller ve toplantılar hakkında genel bilgilere yer vereceğim.

Photo by İrfan Simsar on Unsplash

Her iş kolunun kendine has zorlukları vardır. Yazılım sektörü de bir istisna değildir. Trendlerin ve taleplerin hızlı değişmesi bu sektörde çalışmanın zorlukları arasında önemli bir yer tutar. Bu sebeple özellikle yazılım sektöründe değişime ayak uydurmak oldukça önemlidir.

Ne en güçlü olan tür hayatta kalır, ne de en zeki olan… Değişime en çok adapte olabilendir, hayatta kalan.

Charles Darwin

Çevik Proje Yönetimi (Agile Project Management)

Çevik proje yönetimi, proje geliştirme sürecinin küçük adımlar halinde yapılması ilkesine dayanan bir anlayıştır. Projenin kapalı kapılar ardında geliştirilip bir anda ortaya koyulması yöntemini reddeder. İteratif olarak ürünün geliştirilmesini, yeni özellikler eklendikçe kullanıcıların ve ürün ile ilgilenen kişilerin hizmetine sunulmasını teşvik eder.

Çevik Proje Yönetimi Prensipleri

Çevik proje geliştirme yönteminin ilk adımları 1950'lere kadar dayanmaktadır. Buna karşın prensiplerin dokümante edilmesi 2001 yılına denk gelmektedir. Bu doküman aracılığıyla 4 ana madde ve 12 kural ile çevik proje geliştirme yönteminin sınırları daha belirgin hale getirilmiştir.

Süreçler ve araçlardan ziyade bireyler ve etkileşimlere
Kapsamlı dökümantasyondan ziyade çalışan yazılıma
Sözleşme pazarlıklarından ziyade müşteri ile işbirliğine
Bir plana bağlı kalmaktan ziyade değişime karşılık vermeye

değer vermeye kanaat getirdik.

4 ana madde ile elde etmeye çalıştığımız çıktı sadece çalışan bir yazılımı elde etmek değildir. Müşterinin taleplerine uygun şekilde çalışan bir yazılım elde etmektir. Sonuçta isteneni yapmayan bir yazılım projesi başarılı olarak tamamlanmış sayılamaz.

Scrum

Çevik proje yönetim şeklinin öne sürdüğü 4 ana kurala göre değişime hızlı uyum sağlayabilecek bir proje yönetim kültürüne erişmeyi amaçlamış olalım. Scrum bu amaca ulaşmak için kullanabileceğimiz yollardan biridir. Bir diğer deyişle scrum, çevik proje yönetimi metodolojilerinden biridir.

Scrum yönteminin kalbinde 3 ilke vardır: şeffaflık, denetleme, adaptasyon.

Şeffaflık: Proje süreci gizli kapaklı ilerletilmemelidir. Ortaya çıkan iyi veya kötü gelişmeler ilgili kişiler tarafından takip edilebilir olmalıdır.

Denetleme: Belli aralıklarla üründe yapılan geliştirmeler ilgili kişilere teslim edilir ve sonuçlar değerlendirilir.

Adaptasyon: Sadece proje analizi kapsamında hazırlanan dokümana göre değil, gelen değişiklik talepleri de değerlendirilerek proje geliştirme süreci devam etmelidir.

Scrum Takımındaki Roller

Original Image Soure Link

Scrum Master

Bu roldeki kişiler scrum kurallarını iyi bilen kişiler olmalıdır. Scrum master rolündeki kişileri bisikletteki destek tekerlerkleri gibi düşünebiliriz. Scrum takımındaki kişilerin scrum metodolojisine uygun hareket etmeleri için kişilere yardımcı olmak scrum master rolündeki kişinin görevidir. ‘Master’ kısmına odaklanıp bu roldeki kişileri yönetici olarak düşünmemeliyiz. Özellikle çevik proje yönetimi şeklini yeni benimsemiş ve scrum metodolojisi ile yeni tanışmış ekiplerde scrum master aktif rol oynar ve geçiş sürecinin daha yumuşak geçmesine yardımcı olur.

Ürün Sahibi (Product Owner)

Scrum master isimlendirmesinde olduğu gibi bu rolün isimlendirmesi de kafa karışıklığı yaratmaya çok müsaittir. Ürün sahibi tek başına kararlar alan ve geliştirme takımına bunları dayatma gücüne sahip olan kişi değildir. Bu roldeki kişilerin görevleri geliştirme takımı ile paydaşlar (stakeholders) arasındaki iletişimi sağlamaktır. Ürün sahibi rolündeki kişi, paydaşlardan alınan geri bildirim ve talepler doğrultusunda ürün üzerinde ne gibi geliştirmelerin yapılması gerektiğini belirler ve bu kararları önceliklendirir. Önceliklendirilmiş kararlar doğrultusunda geliştirmeleri iş parçaları haline getirir ve geliştirme takımına iletir.

Geliştirme Takımı (Development Team)

Ürünü oluşturan kişilerin oluşturduğu ekiptir. Takım kendi kendine hareket eder, yani otonomdur. Bu sebeple yönetici (manager) rolünde birine ihtiyaç duyulmaz. Bunun yanı sıra ekip üyeleri birbirlerinden farklı alanlarda uzmanlaşmış olabilirler. Buna karşın yine de tek bir işle meşgul olmazlar, çapraz görev dağılımı yapabilmelidirler. Böylece ürün hakkındaki bilgiler tek bir kişide birikmez, ekip içerisine yayılır.

Scrum Toplantıları

Çevik proje geliştirmenin temelinde ürünün iteratif olarak geliştirilmesi olduğundan bahsetmiştik. Scrum metodolojisinde bu iterasyonlar 1–4 hafta arasındaki süreler olarak belirlenmelidir. Bu süreye scrum takımı karar verir ve bu süre zarfında ürüne yeni özellikler kazandırır. Karar verilen zaman döngüsü de sprint olarak adlandırılır. Yani sprint dediğimiz kavram sabit süreli iterasyonlara verilen isimdir. Scrum metodolojisinde yer alan toplantılar da sprint kavramının etrafında şekillenmektedir.

Image Source Link

Sprint Planlama (Sprint Planning)

Sprint, planlama toplantısı ile başlar. Scrum master, geliştirme ekibi ve ürün sahibinin katılımı ile bu toplantı gerçekleştirilmektedir. Planlama toplantılarının amacı, ürün için talep edilen geliştirmelerin yer aldığı ürün iş listesi (product backlog) içerisindeki işlerden bir kısmının geliştirme ekibi ile paylaşılmasıdır. Bu toplantının sonunda aktif sprint içerisinde yapılmasına karar verilen işler, ürün iş listesinden sprint iş listesine (sprint backlog) alınır.

Günlük Scrum Toplantısı (Daily Scrum Meeting)

Geliştirme takımından herkesin katılımı ile günlük toplantılar yapılmaktadır. Scrum master ünvanındaki kişinin de toplantıya katılması ve günlük toplantı kurallarına uyulduğundan emin olması önerilir. Ürün sahibinin katılması zorunlu olmasa da katılım göstererek süreç hakkında bilgi alması için iyi bir fırsattır.

Günlük toplantılarda geliştirme takımında yer alan kişiler dün neler yaptıklarını, bugün neler yapacaklarını anlatırlar. Bunları anlatmalarının amacı hesap vermek değil, takım arkadaşları ile bilgi paylaşmaktır. Üstlenilen görevlerin tamamlanması konusunda bloklanılan, yardım beklenen bir konu varsa bu toplantıda belirtilir.

Zaman sınırı olan bir toplantıdır. 15 dakika gibi bir sürede toplantının tamamlanması beklenir. Toplantının uzamasına mahal vermemek için bu toplantılar genelde ayakta yapılmaktadır.

Sprint Değerlendirme (Sprint Review)

Scrum takımı üyeleri (scrum master, ürün sahibi ve geliştirme takımı) ve önemli paydaşların katılımı ile bu toplantı yapılmaktadır. Bu toplantının amacı sprint süresince geliştirmesi tamamlanmış ve ürünün bir parçası haline gelmiş özelliklerin tanıtılmasıdır. Bir nevi ürünün reklamını yapmak da diyebiliriz. Paydaşlardan geri bildirimler alınır ve gerekiyorsa ürün üzerinde revizyonlar yapılır. Paydaşların ürün gelişim sürecine dahil olmaları için kullanılan kritik toplantılardan biridir.

Sprint Retrospektif (Sprint Retrospective)

Scrum takımının tamamının katılımı ile yapılan toplantıdır. Sprint sürecinin takım olarak değelendirilmesi amacıyla düzenlenir. Nelerin daha iyi yapılabileceği veya nelerin iyi yapıldığı konuları üzerine konuşulur. Ekip arkadaşları birbirlerine geri bildirimler verir ve bu sayede daha iyi işleyen bir ekibin oluşması amaçlanır.

İyi (Glad), Kötü (Sad), Sinir Bozucu (Mad) veya Başlayalım (Start), Devam Edelim (Continue), Yapmayalım (Stop) gibi farklı formatları olan bir toplantıdır. Açık iletişim ve üyeler arasında güven bu toplantının olmazsa olmazları arasıdadır.

Ürün İş Listesi Düzenleme (Product Backlog Refinement | Grooming)

Scrum takımındaki bireylerin katılımı ile yapılmaktadır. Toplantının amacı ürün iş listesinin düzenlenmesi ve işlerin detaylandırılmasıdır. Bu toplantı içerisinde sorulan sorular bir sonraki sprint planlama toplantısına kadar cevaplanmalı ve bu şekilde işler netleştirilmelidir. Bu toplantı sayesinde ürün iş listesi içerisindeki işler netleşmiş olacaktır ve tüm ekibin ortak noktaya geldiği işler haline gelecektir. Bu toplantının bir sonucu olarak planlama toplantıları daha verimli geçecektir ve daha kısa sürecektir.

Eğer sürekli düzenli tutulmuş bir ürün iş listesi varsa bu toplantı yapılmayabilir. Bir diğer deyişle diğer toplantıların aksine bu toplantı opsiyoneldir.

Umarım yararlı bir yazı olmuştur. Diğer yazılarıma göz atmak için bu linke tıklayabilirsiniz.

var software = ConvertFrom(caffeine)

var software = ConvertFrom(caffeine)