19 Eylül 2022 - 14.26
Yazılım Projeleri

Kısa Özet; Türksat Bilişim Genel Müdür Yardımcılığı Yazılım Geliştirme Direktörlüğü bünyesinde scrum öne çıkan proje yaşam döngüsü olmakla birlikte kurum kültürü, müşteri ve personel yapısı gereği scrum çerçevesine ek olarak farklı çözüm süreçleri mevcut işleyişe dahil edilmiştir. Çevik yaklaşımla müşteriye çözüm sağlamanın sonuçları yapılan anket çalışmaları ile analiz edilmekte ve başarılı sonuçlar elde edildiği görülmektedir.

 

 

Agile Kavramı

Günümüz yazılım geliştirme süreçlerinde müşteri memnuniyeti anlamında hız belki de en fazla önem verilen parametre. Bu noktada karşımıza çıkan ve gelişim gösterilmesi gereken kabiliyet ise Agile (Çeviklik) olmaktadır. Agile, 2001 yılında yayınlanan Çevik Manifesto' da [1] belgelenen değerleri ve ilkeleri referans alarak projeleri organize etmek için yöntemler ve en iyi uygulamalar anlamına gelir. 
Çevik manifestonun aşağıdaki dört temel değeri, plan odaklı yaşam döngüleri tarafından kabul görmüş ve iş akışlarında güçlü bir alternatif yaratmıştır. Bu değerler; 
•    Süreçler ve araçlardan ziyade bireyler ve etkileşimlere
•    Kapsamlı dokümandan ziyade yazılıma
•    Sözleşme pazarlığından ziyade müşteri iş birliğine
•    Plana bağlı kalmak yerine değişime karşılık vermeye
Temel değerlerin yanında çevik manifestoda yer alan 12 temel ilke [2] ise agile yaklaşım göstermeyi planlayan ekiplere bir yol haritası çizmeyi amaçlamıştır.
Başlangıçta yazılım geliştirme alanında ortaya çıkan agile kavramı esnek yapısı nedeniyle zamanla sektörden bağımsız olarak birçok proje yöneticisi için popüler bir seçim haline gelmiştir. Agile Proje Yönetimi ve diğer proje yaşam döngülerine kısaca bakacak olursak, farklı kaynaklarda küçük değişiklikler gösterse de proje yaşam döngülerini 4 başlık altında toplamak mümkündür. 

1-Öngörücü (Plan odaklı) Yaşam Döngüleri

Detay planlama yapılır, detay plan yapılacak bilgi birikimi vardır, belirsizlik azdır, izleme kontrol etme esastır. Özellikle bilgi işlem projelerinde waterfall (şelale) modeli olarak bilinmektedir. 
 

                      https://www.udemy.com/course/cevik-proje-yonetimi/
 

2-Yinelemeli Yaşam Döngüleri

Öncelikli olarak prototipler çıkararak ürünü geliştirmeyi hedefler, her prototip için paydaşlardan geri bildirim alınır ve bu süreç tekrar eder burada amaç teslimat hızından ziyade ihtiyaçların daha net anlaşılmasıdır.

                      https://www.udemy.com/course/cevik-proje-yonetimi/
 

3-Artırımlı Yaşam Döngüleri

Projenin teslimatları belirli zaman aralıklarında ortaya çıkar. Müşteri kendisi için öncelikli olan özelliklerin daha önce teslim edilmesini bekler. Müşteriye teslimatlar yapıldıkça özellikleri kullanan müşteri ilerleyen aşamada yeni özellikler için güncellemeler yapabilir.

                      https://www.udemy.com/course/cevik-proje-yonetimi/
 

4-Agile Yaşam Döngüsü

Gereksinimlerin sıkça değişmesi sürecin doğasıdır. Çevik yaşam döngüsünde iki alt yaklaşım bulunmaktadır bunlar; yineleme bazlı çevik (zaman kutuları standart sonunda müşteriye teslimat sunulur) ve akış bazlı çevik (zaman kutularının süreleri farklı teslimat önceliğine göre değişir) olarak karşımıza çıkmaktadır.

                      https://www.udemy.com/course/cevik-proje-yonetimi/
 

Yazılım Geliştirme Direktörlüğü'nde Çevik Proje Yönetimi

Agile kavramı için verilen genel tanımlardan sonra Türksat Bilişim Genel Müdür Yardımcılığı, Yazılım Geliştirme Direktörlüğü bünyesinde yer alan projeler için uygulanan proje yaşam döngüleri incelendiğinde; Scrum[3] pratiklerinin işletildiğini görmek mümkündür. Proje bazlı oluşturulmuş takımlar tasarladıkları ve sürekli güncellenen ürün iş listesi maddelerini sprint planlama toplantılarında ürün sahibi onayı ile yeni başlayacak sprinte dahil eder. Kapatılan sprintten kalan maddeler ve yeni eklenen sprint maddeleri ile yeni sprinte başlanır.  Sprint ‘e dahil edilmesi planlanan işlerin performans ölçütü hikâye puanı olarak isimlendirilir. Scrum takımı sprinte dahil edeceği işleri geçmiş sprintlerde tamamladığı işlerin hikâye puanlarını referans alarak belirler, yapılması planlanan işler için hikâye puanı belirleme yöntemlerinden Fibonacci yöntemi genellikle tercih edilmektedir. Aşağıdaki görselde örnek bir projeden alınan sprint iş listesi ekran görüntüsü yer almaktadır. Tablo üzerinde yer alan “To Do” sütunu sprint içerisinde yapılması planlanan işlerin listelendiği alan, “In Progress” sütunu geliştirme ekibinin çalışmalarına devam ettiği alan, “Waiting For Test” sütunu geliştirme ekibinin çalışmalarını tamamladığı ve ilgili test kaynağına yapılan geliştirmenin testinin yapılması için atandığı alandır. “Done” sütunu ise test aşamasını tamamlamış devreye alımı bekleyen görevlerin listelendiği alandır. 

Sprint süreleri iki haftalık periyotlar olarak belirlenmiştir. Sprint gözden geçirme sırasında tamamlanan maddeler için toplantıya katılan katılımcılara demo yapılır ve devam eden işler hakkında bilgi verilir. Gözden geçirme sırasında kapatılan sprinte ait farklı grafiklerden yararlanılarak scrum takımının performansı takip edilmektedir. Örneğin aşağıdaki grafik, hız grafiği olarak adlandırılmaktadır. Scrum takımının sprint planlama sırasında taahhüt ettiği işler ve bu işlerin ne kadarının tamamlandığını gösteren bir grafiktir. Bu grafiğe göre en son kapatılan (en sağda kalan) sprint için scrum takımı taahhüt ettiği çalışmanın üzerine çıkmış fakat genel ortalamanın altında kalmıştır.

Hız grafiklerinin yanında eksiltmeli ve artırımlı iş bitirme çizelgeleri de scrum takımları tarafından performans değerlendirmeleri için kullanılmaktadır. 

 

Bu çizelge üzerinden yapılacak değerlendirme ise zamana bağlı olarak kılavuz çizgisi ve kalan değerler çizgisinin örtüşerek azalmasıdır. Bu sonuç ekibe sprint planlama sırasında tahmin edilen iş miktarı ve tamamlanan iş miktarının zamana göre doğru ilerleyip ilerlemediğini göstermektedir.

Sprint kapanışının son aşaması retrospektif toplantısında ise scrum takımı sprint süresince iyi yaptığı ve daha iyi yapabileceklerini düşündükleri işleri şeffaf bir şekilde kayıt altına alır ayrıca tamamlanan sprintin açılışı sırasında belirledikleri aksiyonlar içerisinden tamamlananlar işaretlenir ve yeni sprintte yapılması planlananlar listeye eklenir. 
Scrum çerçevesine uygun olarak işletilen projelerin yönetimi scrum değerlerine (taahhüt, odak, açıklık, saygı ve cesaret) sadık kalmak kaydıyla küçük çaplı süreç ve rol eklentilerine esneklik göstermektedir. Örneğin proje içerisinde çalışmalarını sürdüren scrum takımının geliştirici ekibi ve ürün sahibi aynı proje içerisinde konumlandırılmış amacı müşterilerin ilettiği hataları çözmek olan ve bu kapsamda kendine ait Kanban [4] tahtası üzerinden işlerini takip eden Kanban ekibi ile yakın olarak çalışmaktadır. Buradaki öncelikli amaç scrum takımının geliştirici ekibine doğrudan müşterilerden hata ya da yeni geliştirme talebi yapılmaması, iletilen sorunların servis masası aracılığı ile Kanban ekibine iletilmesi ve genellikle yeni fonksiyonel geliştirmeler yapan scrum geliştirici ekibinin izole edilmesidir. Scrum uygulanan farklı bir projede ise geliştirici ekibin yanında scrum kılavuzunda yer almayan proje yöneticisi ve analist rolü bulunmaktadır. Bu iki rolün ürettiği çıktı kılavuzda yer alan ürün sahibi rolünün biraz daha genişletilmiş versiyonu gibi değerlendirilebilir. Örnek vermek gerekirse sprinte alınacak işler, bu işlerin yapılma sırası ile devreye alım planları gibi daha çok karar verme (planlama) süreci gerektiren işler proje yöneticisinin görevi iken analist müşteri ile kontak kurma, yapılacak fonksiyonel geliştirmenin analizini yaparak prototip oluşturma ve geliştirici ekibe işin özelliklerini teslim etmekten sorumludur. Aynı projede uygulanan bir başka çalışma yaklaşımı ise birden fazla sprinte dahil edilerek tamamlanması öngörülen (yapılacak geliştirme için aynı fonksiyon üzerinde birden fazla geliştirici çalıştığı durumda) işler için analist tarafından yapılan analiz sonrası tüm scrum ekibinin katıldığı bir tasarım değerlendirme toplantısı yapılmakta ve geliştirme aşamasına geçilmektedir daha sonra testlerin yapılması ile çalışma tamamlanmaktadır. Analiz, tasarım, geliştirme ve test aşamalarını içeren bu tür çalışmalar uygulanan scrum pratiğinin bazı noktalarda waterfall (şelale) modelinden etkilendiği ve hybrid (melez) bir yaşam döngüsü uygulandığını göstermektedir. 

Özetle; Türksat Bilişim Genel Müdür Yardımcılığı Yazılım Geliştirme Direktörlüğü bünyesinde scrum öne çıkan proje yaşam döngüsü olmakla birlikte kurum kültürü, müşteri ve personel yapısı gereği scrum çerçevesine ek olarak farklı çözüm süreçleri mevcut işleyişe dahil edilmiştir. Çevik yaklaşımla müşteriye çözüm sağlamanın sonuçları yapılan anket çalışmaları ile analiz edilmekte ve başarılı sonuçlar elde edildiği görülmektedir.

Kaynakça

[1]: https://agilemanifesto.org/iso/tr/manifesto.html

[2]: https://agilemanifesto.org/iso/tr/principles.html

[3]: https://scrumguides.org/docs/scrumguide/v2020/2020-Scrum-Guide-Turkish-2.0.pdf

[4]: https://kanban.university/wp-content/uploads/2021/11/The-Official-Kanban-Guide_Turkish_A4.pdf


 

Ali İmre

BT Proje Yöneticisi

Yazılım Geliştirme Direktörlüğü