Subscribe:

11 Aralık 2016 Pazar

Yazılım Geliştirme Yöntemi Olarak Kanban ve Kullanılma Sebepleri

Üniversitede gördüğüm ilgili derslerde karşıma çıkmayan, iş hayatı içerisinde deneyimleme fırsatı bulduğum bir yazılım geliştirme yöntemi hakkında araştırma yapmak ve bunu yazıya dökmek istedim.
Kanban ilk olarak 1950 yılında lojistik zinciri kontrol altında tutmak için Toyota'nın bir mühendisi tarafından Toyota Üretim Sistemi çerçevesinde kullanılmaya başlamış. Kelime olarak japoncada görsel işaret ve kart anlamına gelmekteymiş. Görsel bir kart olması neyin, ne zamana kadar ve ne kadar üretileceğini göstermektedir.
Yarım yüzyıldır Toyota firmasında üretim uygulamalarında kullanılan Kanban sistemi ve 2004 yılında ilk defa yazılım sektöründe Microsoft firmasında kullanılmaya başlanmış. Günümüzde BBC, E-bay, Linkedin gibi birçok firmanın IT operasyonlarında Kanban yaklaşımını başarı ile kullanmaktadır.

Örnek olarak vereceğim, finans sektöründe faaliyet gösteren bir teknoloji şirketinde, 2004-2009 yılları arasında şelale yöntemi ile yazılım geliştirilmiş. Geliştirilecek ana uygulamanın başlangıç düzeyindeki temel gereksinimlerinin net olduğu bu dönemde, klasik proje disiplini ile uyumlu olması ve yeni oluşturulmuş mühendislik ekipleri tarafından bilinen yöntem olması gibi pratik nedenlerle Şelale yöntemi benimsenmiştir. Yöntemin yapısına uygun olarak Analiz, Yazılım ve Test fonksiyonlarının her biri için farklı müdürlükler kurulmuştur. Ancak Şelale yönteminin uygulanması sırasında işletmede aşağıdaki sorunlar ile karşılaşılmıştır:
  • Gereksinimlerin geliştirilmesi, analiz ve fonksiyonel tasarım çalışmalarının tamamlanması ve müşteri onayı alınması için geçen zamanın fazla olması,
  • Yöntemin doküman ve kayıt odaklı olması nedeniyle oluşan çalışan memnuniyetsizliği,
  • Gereksinimleri sabitleme gayretinin yarattığı müşteri memnuniyetsizliği,
  • Basit taleplerin büyük paketler içinde karşılanmasına neden olan üretim yönteminin yarattığı taleplerin geç karşılanması sorununun oluşturduğu müşteri memnuniyetsizliği.
 Bu sorunların etkisiyle müşteri memnuniyeti beklenen düzeyin altında kalmış ve 2009 yılında işletmede yeni yöntem arayışına girilmiştir.
 Gerek küçük taleplerin hızla karşılanması, gerekse belirsizliği yüksek büyük taleplerin kullanılabilir parçalarla geliştirilmesi için çevik yönteme ihtiyaç duyulduğu ve en uygun yaklaşımın Scrum olduğu düşünülmüştür. Böylece, 2009 yılında ilk olarak bir altyapı yazılımı servisinde yaklaşık 3 ay boyunca pilot olarak denendikten sonra Şelale yöntemine kıyasla başarılı sonuçlar verdiği görülen Scrum, kısa bir zaman içinde şirketin tüm yazılım geliştirme ekipleri tarafından kademeli olarak uygulanmaya başlanmıştır. Scrum’la birlikte analiz, tasarım, kodlama, test vb. adımlar ayrı müdürlükler tarafından değil, aynı takımlar içinde gerçekleştirilmesi planlanmıştır. Böylelikle şirketin organizasyon yapısı Scrum ile uyumlu hale getirilerek, fonksiyonel olarak uzmanlaştırılmış küçük servisler oluşturulmuştur. İlk başlarda üretim hızı ve müşteri memnuniyeti artsada son yıllarda yeniden müşteri memnuniyeti açısından sorun yaşanmıştır.
Çevik yöntem ile yazılım geliştirme kararı alan işletme, değişkenliğin yükselmeye başladığı ve daha çok küçük ek iyileştirme taleplerinin karşılandığı 5 yıl boyunca Scrum yöntemini uygulamıştır. Scrum’da ise, temelde doküman görmeyen müşterinin kalite beklentisi karşılanamamış, yöntemin yeniden gözden geçirilmesine ihtiyaç duyulmuştur. Uzun yıllardır kullanılan temel üretim uygulaması üzerinde alınan müşteri taleplerinin artık çoğunlukla küçük eforlu işler olması nedeniyle ve müşterinin hızlı sonuç, daha yüksek kalite beklentisini karşılamak için Kanban yöntemi uyarlanarak yeni süreç tasarımına geçilmiştir. Kanban uygulaması ile birlikte kalite ölçümü de yapılan bir performans yönetim sistemi kurulmuştur.

Kanban özetle iş akışının devamlılığını ve sürekli teslimatı, çıktıyı vurgulamaktadır. Anlık olarak sürecin bir adımıyla ilgili yapılan işlerin sayısını kısıtlayarak akışın tıkanmamasını sağlamaya çalışır. Organizasyonlarda süreçleri görsel hale getirerek , israfı önleyerek üretkenliği artıran  2. nesil çevik (Agile) yöntem olarak da adlandırabiliriz.


0 yorum:

Yorum Gönder