Günümüzde yazılım dünyasına dair yatırım arttıkça bu çerçevede ortaya çıkan işlerin bütçesi ve kapsamı da genişlemektedir. Bu bağlamda hata payına yer vermeksizin hızla geliştirilmesi gereken birçok proje talebi oluşmaktadır. Bu talepleri karşılayabilmek ve yazılımcılarla yazılım ürünleri kullanıcılarının en yüksek faydasını sağlamak amacıyla çeşitli yöntemler geliştirilmektedir. Scrum da bu yöntemlerden biri olarak değerlendirilebilir. Peki, Scrum nedir ve onu yazılım dünyasında bu kadar önemli kılan özellikleri nelerdir? Gelin, birlikte Scrum’ı yakından inceleyelim ve Scrum sayesinde yazılım dünyasının kazandığı avantajları öğrenelim!

Scrum Nedir?

Scrum, en basit haliyle bir “proje yönetim çerçevesi” şeklinde tanımlanabilir. Yazılım dünyasının günden güne gelişerek ilerleyen imkanları ve bir işi yapmak üzere geliştirilen onlarca yeni yöntem dolayısıyla proje geliştirme, projeyi hayata geçirme, onu test etme ve müşterinin taleplerine göre revize etme süreçleri giderek karmaşık hale gelmiştir. Proje yöneticilerinin ve projede görev alan kişilerin en verimli şekilde çalışabilmesi için projeye bir çerçeve çizilmesi ve bu sınırlar dahilinde çalışma sağlanması oldukça önemlidir. Sıklıkla çevik düşünme yöntemleriyle karşılaştırılan Scrum, bu bağlamda değişkenlik gösterebilen ve esneklik talep edebilen karmaşık projelerin planlama, hayata geçirme ve kontrol aşamalarında, yani proje yönetiminde kullanılan en temel çerçeve özelliği gösterecektir. 1986’da Hirotaka Takeuchi ve Ikujiro Nonaka hazırlanan ve Harvard Business Review’da yayımlanan bir makalede ilk kez tanıtılan Scrum, proje yönetim ekibinde bulunan paydaşların düz bir çizgi üzerinde sadece ve sadece ileri koşan koşucular yerine rugby oynar gibi saha hakimiyeti sağlayan ve gerektiğinde geri de gidebilen oyuncular gibi olmasının çok daha verimli olacağı metaforuyla açıklanmıştır. Scrum kullanımı, proje ekiplerine verimlilik ve sürdürülebilirlik sağlar. Bu yaklaşımda her adım kendi içinde ve proje bir adımlar bütünü şeklinde ele alındıktan sonra sistemli ilerleme gerçekleştirilir. Bu sayede proje en az hata payıyla, en hızlı şekilde hayata geçirilebilir. Her adım hızla tamamlandıktan sonra teslim edilir, yani etap etap teslimat gerçekleştirilir. Bu sayede tek seferde daha küçük bir bölümle ilgilenmesi gereken ekip üyeleri için hataları tespit etmek ya da değiştirilmesi gereken noktaları güncellemek çok daha kolay, hızlı ve öğretici olur. Bu süreçte projede görev alan ekip üyeleri deneyimlerinden çıkarımlar yaparak verimli bir öğrenme süreci geçirir, proje ekibi ve müşteri sürekli iletişim halinde olduğu için güven ortamı sağlanır.

Scrum Prensipleri

Özellikle yazılım dünyasının giderek daha rekabetçi bir hal alması ve yazılımcılardan beklenen yetkinliklerin çok daha geniş bir çerçeveye ulaşması nedeniyle çevik düşünme yaklaşımlarının bir dalı olarak geliştirilen Scrum yöntemi temelde üç ana prensibe dayalıdır.

Şeffaflık

Scrum yönetiminin günümüzde yaygın şekilde kabul edilen ve kullanılan bir yöntem olmasının en temel sebeplerinden biri, bu yöntemin dayandığı şeffaflık ilkesidir. Bir projeyi geliştirmek ve tamamlamak için müşterinin talepleri, proje ekibinde bulunan kişilerin yetkinlikleri ve ilerleme süreci, projenin her bir adımı ve ortaya çıkan problemler gibi birçok etken gözden geçirilmeli ve değerlendirilmelidir. Scrum prensibinin şeffaf olma ilkesi, bütün bu noktaların tüm ekip üyeleri tarafından anbean izlenebilmesine olanak tanır. Bu sayede kümülatif öğrenme gerçekleşirken aynı zamanda sağlanan yüksek kontrol ve güven ortamı sayesinde gelişebilecek hatalar hakkında öngörüler edinilebilir, hata tespit fonksiyonu gelişir ve ortaya çıkan etkenlere karşı esneklik geliştirilebilir.

Kontrol Edilebilme

Scrum yönteminin temel felsefesinde bir işi kısımlara bölmek ve her kısmı kendi içinde de adımlara bölerek mümkün olan en verimli, hata payı en düşük olan ve en hızlı ilerlemeyi sağlamaktır. Bu sayede projenin ilerleyen aşamalarında ortaya çıkıp ilerlemeyi ciddi manada aksatabilecek ya da durdurabilecek hataların oluşma ihtimali en aza indirilir ya da bu hatalar önceden tespit edilip ortadan kaldırılabilir.

Uyarlama

Yazılım dünyası başta olmak üzere günümüzde faaliyet gösteren hemen hemen tüm sektörlerde en önemli değerlerden biri de esneklik ve uyum sağlama becerisidir. Bir proje geliştirilirken ya da yürütülürken ortaya çıkabilecek etkenler her ne kadar öngörülmeye çalışılsa da kimi zaman beklenmedik bazı faktörlerle karşılaşılabilir ya da projenin gidişatı dramatik şekilde değişebilir. Hep ekip üyelerinin hem de projenin bu değişikliklere uyum sağlayabilmek için “uyarlanabilir” olması gerekir. Scrum yaklaşımı, proje adımlarını uyarlanabilirlik kapasitesini geliştirmeyi hedefler.

Scrum Çerçevesi

Scrum yöntemini anlayabilmek için öncelikle “Scrum metodolojisi” adıyla da bilinen “Scrum çerçevesi”ni anlamak gerekir. Scrum çerçevesi; en temel haliyle Scrum yönteminin dayandığı temel değerleri, projede yer alan ekip üyelerinin sorumluluklarını, Scrum etkinliklerini ve taahhütleri kapsar. Buna göre birtakım Scrum bileşenlerinin varlığından bahsetmek mümkündür.

Temel Scrum Bileşenleri

Scrum, oldukça detaylı ancak uyarlanabilir olan bir planlama yöntemidir ve bu yöntemi en doğru şekilde kullanabilmek için temel Scrum kavramlarını tanımak gerekir. Product Backlog: Proje geliştirme ekibinin yol haritası olarak nitelendirilebilecek olan Scrum kavramıdır. Buna göre projenin adımlarının bir listesi çıkarılır, bu adımların ortaya çıkardığı gereksinimler belirlenir ve bu gereksinimler öncelik sırasına göre dizilir. Product Backlog Item: Product backlog üzerinde yer alan her bir gereksinim, bu isimle adlandırılır. Sprint: Projenin her bir adımı ya da aşaması bu isimle adlandırılır. Bunlar, ortalama 1 veya 2 haftada tamamlanması beklenen etaplardır. Her bir sprint kendi içinde küçük aşamalara ayrılır. Sprint Backlog: Sprint içinde yer alan küçük aşamalardır. Her aşamanın gereksinimleri ve gerektirdiği süre detaylı olarak çıkarılır. Scrum Board: Sprint aşamalarının ilerlemesini kontrol etmeyi sağlayan tablodur. Henüz bekleyen görevler “to do” kısmında bulunurken herhangi bir takım üyesi bir aşamayı devraldıysa söz konusu görev “in progress” kısmına taşınır. Görev tamamlandığında test aşaması için hazır hale gelir ve bu sebeple “to verify” etiketi alır. Kontrol tamamlandığında “done” etiketiyle işaretlenebilir. Burndown Chart: Scrum’ın temel ilkelerinden olan şeffaflığı sağlayabilmek için geliştirilen grafiktir. Bu grafiğin dikey ekseninde sprint içinde kalan görev miktarı yer alırken yatay eksende ise sprint için ayrılan günler bulunur.

Scrum Rolleri

Scrum takımları kendi içinde ikiye ayrılır. Bu ayrıma göre Scrum rollerinden ilki “pig roller” olarak adlandırılan gruptur ve proje sürecinde asıl işi yapan paydaşlar bu kişilerdir. Diğer roller ise “chicken roller” olarak adlandırılır ve bu gruba dahil olan paydaşlar, projenin gerçekleştirilme sürecinde yer almazlar. “Chicken roller” müşteriler ve satıcılar gibi Scrum sürecinde pasif olan kişilerken “pig roller” ise proje sahibi, Scrum master ve geliştirme takımı şeklinde sıralanabilir. Proje Sahibi: Müşteri ile geliştirme takımı arasındaki iletişimi sağlayan ve planlamayı gerçekleştiren bileşendir. Projenin özelliklerini belirleyerek “product backlog”u oluşturan proje sahibi, gidişata göre sprintleri düzenleme ya da iptal etme yetkisine de sahiptir. Scrum Master: Geliştirme takımının çalışma sürecinde ortaya çıkabilecek problemleri ve bu problemlere sebep olan etkenleri tespit edip bunların temizliğini sağlamakla görevli kişidir. Scrum hakkında geniş bilgiye sahip olan ve hem teori hem de pratikte tecrübeli olan bu kişi, “takım yöneticisi” değildir ancak “takım sorumlusu” şeklinde nitelendirilebilir. Geliştirme Takımı: Geliştirme takımı, projenin vücuda getirilmesi ve gerçekleştirilmesi konusunda görevli olan ve genellikle 5 ya da 7 kişiden oluşan ekiptir. Bu ekip, “sprint backlog”u oluşturur. Çapraz şekilde çalışan ve bu sayede tanımlanmış spesifik herhangi bir görevi olmayan bu kişiler kendilerine task atanmasını beklemez, sprint üzerinden bir aşama seçip bu adımı gerçekleştirdikten sonra yeni bir adıma geçebilir.

Scrum Etkinlikleri

Scrum, temel olarak her aşamanın planlandığı ve kontrol edildiği bir yaklaşım olduğundan dolayı bu yaklaşımın en doğru şekilde kullanılabilmesi için bazı temel etkinlikler, toplantılar bulunur. Farklı toplantıların hedefleri değişiklik gösterir. Sprint Planlama: Sprint planlama toplantılarında ekip üyeleri gelecek olan sprintteki işler, bu işlerin tamamlanması için mevcut olan gereklilikler, ortaya çıkabilecek engeller ve gereken süre gibi konularda bazı tahminlerde bulunur. Bu sayede sprinte ve bu sprint içinde yer alan işlerin nasıl bölünüp gerçekleştirileceğine dair öngörüler sağlanır. Bir işin karmaşıklık seviyesi ve proje ekibinin karşısına çıkabilecek olan bilinmeyen etken miktarı, sprint süresiyle ters orantılıdır. Yani, karmaşa ve bilinmeyen ne kadar fazlaysa sprint o kadar kısa sürmelidir. Bu sayede çevik bir yaklaşım kurulabilir. Günlük Scrum: Bu toplantıların bir diğer adı da “stand-up”tır çünkü bunlar günlük olarak gerçekleştirilir ve dolayısıyla çok kısa sürmesi beklenir. Her bir proje görevlisi günlük görevlerini bildirir, sprint üzerindeki gelişimini kısaca açıklar ve karşısına çıkabilecek zorluklar hakkında tahminlerde bulunur. Sprint Değerlendirme: Sprint tamamlandıktan sonra proje paydaşlarının bir araya gelerek süreci değerlendirdikleri bir toplantıdır. Sprint Retrospektifi: Bu toplantı tipi, her sprint sonunda ekibin bir araya gelerek bir önceki sprintte karşılaştıkları sorunları, kullanılan yaklaşımların işe yarayan ve yaramayan noktalarını, bu sprintte öğrendiklerini paylaştıkları bir yöntemdir. Gelecek sprintlerin planlamasının iyileştirilmesi için geri dönüşler oldukça önemlidir.

Scrum Önemi

Scrum yöntemi, değeri özellikle son yıllarda anlaşılmış olan ve birçok sektörde kullanılan oldukça geçerli bir yaklaşımdır. Scrum, belirsizliği ve dolayısıyla riski yüksek projelerde en verimli ve risksiz çalışmayı sağlar. Proje yönetimini çok daha kolay hale getiren Scrum yaklaşımı aynı zamanda ekiplerin kendi kendine öğrenebilmesini ve mobilite kazanmasını da mümkün kılar. Bu şekilde masrafları azaltmayı sağlayan Scrum yaklaşımı aynı zamanda kalifiye ve pratiklik kazanmış elemanların gelişmesi için de oldukça önemlidir. “Sürekli iyileştirme” sağlayan Scrum yöntemi, çok daha hızlı problem tespiti ve problem çözümü imkanı sağlarken aynı zamanda yaratıcı yöntemlerin keşfine de olanak tanır. Ekiplerin çalışma verimliliğini ve hızını artıran Scrum yaklaşımı, iş kalitesini en yüksek seviyede tutmaya da imkan tanır.

Scrum ve Agile Farkı

Agile yani çevik düşünme yöntemleri özellikle yazılım dünyasında projelere ve müşterilere karşı geliştirilen bir yeni nesil yaklaşım yöntemidir. Buna göre proje geliştirme sürecinin kendisi yerine bu süreçte görev alan bireylerin birbiriyle kurduğu etkileşim, projenin nedenini ve nasılını açıklayan karmaşık detaylarla dolu dokümantasyonlar yerine verimli ve gerekli şekilde işleyen yazılımlar, projenin sözleşme pazarlığını yapmak yerine müşterinin ihtiyaçlarını ve yaklaşımını tanımak öncelenir. Çevik düşünme yöntemlerinde projenin her adımını sıkı sıkıya planlayarak bu plana sadık kalmak yerine değişime ve gerekliliklere uyum sağlayabilmek asıl hedeftir. Agile, yani çevik yazılım geliştirme manifestosuna bağlı olarak ortaya çıkan birçok yaklaşım bulunmaktadır. Scrum da bu yaklaşımlardan biri olarak değerlendirilebilir. Agile felsefesinin “esneklik” anlayışına dayalı şekilde geliştirilen Scrum; proje ekibi ve müşteri arasında sürekli iletişim sağlar ve değişkenlik gösteren şartlara hızla uyum sağlamayı hedefler. Yapılan araştırmalara göre Agile felsefesine göre hareket eden takımların %70’i Scrum ya da Scrum hibriti yaklaşımları kullanmaktadır.

Yazılım Geliştirmede Scrum Neden Önemlidir?

Kurumsal iletişim, pazarlama, iş geliştirme gibi farklı departmanlar da Scrum yönteminden faydalanabiliyor olsa da bu yaklaşım özellikle yazılım dünyasında büyük öneme sahiptir. Bunun sebebi, yazılım projelerinin giderek daha kapsamlı ve karmaşık bir hal alıyor olmasından kaynaklıdır. Yazılım geliştirme sürecinde Scrum yaklaşımının sağladığı birçok fayda bulunur. Zor Durumlarda Dahi Hızlı Çözüm Geliştirme: Yazılım geliştirme sürecinde ekiplerin ya da ekip üyelerinin karşısına çeşitli zorluklar çıkabilir. Scrum yöntemi tüm ekip üyelerinin ve her bir ekibin işin ilerleyişi hakkında bilgi sahibi olmasını hedeflediği için ortaya herhangi bir sorun çıkması durumunda ortak akıl yürütme sayesinde hızlı aksiyon alınabilir, projenin parçalanan adımları bireysel olarak ve birbiri arasında değerlendirilerek etkin problem çözümü sağlanabilir. Değişen Etkenlere Uyum Sağlama: Yazılım geliştirme sürecinde açığa çıkan problemler, geliştirilen yeni yaklaşımlar, ortaya çıkan yeni beklentiler gibi birçok etken; ekiplerin esnek şekilde çalışabilmesini ve projenin uyarlanabilir özellikte olmasını gerektirir. Scrum yönteminin temel prensibi bu yaklaşım olduğundan dolayı Scrum metodu yazılım geliştirme sürecini çok daha pratik hale getirir. İş Kalitesini Koruma: Yazılım geliştirme süreci adım adım ilerleyen ve her bir halkası birbirine bağlı olan bir zincir biçiminde olan bir etkinliktir. Bu süreçte her bir halkanın kalitesini korumak, zincirin sağlamlığını da sağlayacaktır. Scrum yönteminde iş planlaması en ince detaylarına kadar gerçekleştirildiğinden dolayı bir halkanın sağlamlığından emin olmadan diğer halkaya geçilmez ve bu sayede kalite korunur. Verimli Çalışan Ekipler Oluşturma: Scrum yönteminde ekiplerin iş gücünün ve bitirilmesi gereken işlerin planlaması oldukça detaylı şekilde yapıldığından dolayı her bir ekip üyesi önündeki problemi kolayca anlayabilir. Aynı zamanda tüm ekip üyelerinin sürece hakim olması sayesinde hata payı azalır, verimlilik artar. Bu sayede birbiriyle uyumlu ve verimli şekilde çalışan ekipler ortaya çıkar. Yatırım Gelirini Artırma: Yazılım geliştirme süreçlerinde kullanılan kaynağın planlamasının iyi şekilde yapılması ve bu sayede en az zararla en yüksek kârın sağlanması oldukça önemlidir. Scrum yaklaşımı sayesinde kaynak planlaması kolayca yapılabilir, herhangi bir kaynağın ziyan olması engellenebilir ve doğru yerlere yapılan yatırım sayesinde projenin genel başarısı artırılabilir.

Scrum Eğitimi ve Scrum Sertifikası

Pazarlama, finans, yazılım geliştirme gibi birçok alanda kullanılabilen Agile yaklaşımlar ve Scrum felsefesi; iş yaşamında bireysel ve kurumsal olarak büyük fayda sağlayan değerler arasında yer alır. Bu sebeple iş hayatına atılan kişilerin Scrum eğitimi almayı düşünmesi önerilir. Scrum eğitimi kapsamında kişilere Scrum, Agile ve Lean yaklaşımları farklı seviyelerde tanıtılır. Bu yaklaşımlar doğrultusunda çeşitli örnekler verilir, çalışmalar yapılır. Yaygın şekilde tercih edilen Scrum sertifikası çeşitleri ise “Scrum Master Sertifikası” (CSM) ve Scrum Proje Sahibi Sertifikası” şeklinde sıralanabilir.

Scrum Hakkında Sık Sorulan Sorular

Scrum Nedir Ne İşe Yarar?

Scrum, çevik düşünme yöntemlerinden doğan bir proje yönetme yaklaşımıdır ve karmaşık, belirsizliklerle dolu, riskli projelerin risksiz, hızlı ve kaliteli şekilde gerçekleştirilmesine olanak tanımayı hedefler. Bu sırada proje paydaşları ve ekip üyeleri iletişim halinde kalır, ekip üyeleri kendi kendini eğitir, hatalar öngörülebilir ya da hemen tespit edilip düzeltilebilir.

Scrum Sistemi Nedir?

Scrum sistemi, projeyi parçalayarak mümkün olan en risksiz ve en esnek planlamayı gerçekleştirmeyi hedef alan bir yaklaşımdır. Bunun için proje paydaşları ve ekip üyeleri sürekli iletişim halinde kalarak çalışır.

Scrum Ve Agile Arasındaki Fark Nedir?

Agile, çeşitli projelerin gelişen etkenlere kolayca uyum sağlayabilmesini hedefleyen bir yaklaşımdır. Scrum ise Agile yaklaşımından doğan bir proje yönetimi metodudur.

Scrum Süreçleri Nedir?

Scrum süreçlerinde öncelikle gelen projenin projeksiyonu niteliğinde olan project backlog çıkarılır ve ardından planlama yapılır. Planlamanın ardından sprintler üzerinde çalışılır ve bu sırada düzenli toplantılar yapılarak ilerleme takip edilir. Sprintlerin içindeki görevler, sprintler ve sonunda ise proje tamamlanıp teslim edilir. Bu süreçte müşteri sürekli proje geliştirme ekibiyle bağlantı halinde olduğu için esneklik ve güven ortamı sağlanır, aynı zamanda ekip üyeleri planlı çalışma sayesinde mobilite kazanır. Bununla birlikte iş de en hızlı ve en hatasız şekilde adım adım teslim edilir.

Diğer Yazılar