KANBANA HAZIRLIK
Yazılım Teslim Sisteminizde Akışı İyileştirmek İçin 10 Adımlık Bir Kılavuz
Bu kitabın odağı: Kanbana Hazırlık. Kanban, bir dil olsaydı “Kanban’a Hazırlık”, Kanban’ın abece’si olurdu. Bu kitabı okuyarak birçok sözcük oluşturabilir, cümle yazabilir ve kendinizi bir adım ileriye götürebilirdiniz. O dilin derinliklerine inmek isterseniz diyelim ki Nazım gibi bir şiir yazmak isterseniz o zaman daha derin kitaplara ihtiyaç duyardınız. David Anderson’un mavi kitabı, Joakim Sundén ve Marcus Hammarberg’in “Kanban In Action”, Mike Burrows’un “Kanban from the Inside”, Jim Benson’ın “Personal Kanban” kitaplarını okumaya ihtiyaç duyardınız. Eğer sizde abece’yi öğrenme aşamasındaysanız bu kitap tam da sizin için. Kitabı okuduktan sonra Kanban kullanmaya başlayabilirsiniz. Aklınıza takılan sorulara beraber cevaplar bulmaya çalışabiliriz.
Çevirdiğim tüm kitapları pür dikkat okuyarak geri bildirimleriyle kitapların daha düzgün bir Türkçe’yle ifade edilmesine yardım eden Ayşenur Yılmaz’a çok teşekkür ederim. Yaptığımız işler konusunda geri bildirim almanın çok önemli olduğunu düşünüyorum. Geri bildirimler yaptığımızın daha güzel ve daha doğru olmasına yardım ediyor. Kitap hakkındaki geri bildirimlerinizi sizden sonra okuyacaklara bir iyilik olarak düşünebilirsiniz, geri bildirimlerinizin ne kadar değerli olduğunu bu açıdan bakınca görebilirsiniz. Lütfen geri bildirimlerinizi iletin.
site@yilmazcihan.com
Kasım 2018
Cihan Yılmaz
Kitabı indirebileceğiniz bağlantı:
Kanban'a Hazırlık
Kanbana Hazırlık[/caption]
Kanbana Hazırlık İçerik
Önsöz
James Sutton’ın Önsözü
Giriş
Arka Plan
Ne zaman Kanban kullanmalıyım?
Kanban nedir?
Kanban kullanmaya nasıl başlayabiliriz?
Kanban nerede kullanılabilir?
Kanban Mitleri
Adım 1: İş akışınızı görselleştirin
Yazılım teslim sisteminizi anlama
Sisteminizi görselleştirme
Adım 2: Çalışılan İş Sayısını Limitleme
Çalışılan iş sayısını limitlemeyi anlama
Çalışılan iş sayısı limitlerini görselleştirme
Çalışılan iş sayısında doğru limitleri bulma
Adım 3: Kalite Güvencesi Kurallarını Belirleme ve Bu Kuralları Açık Bir Hale Getirme
Kaliteyi anlama
Kuralları görselleştirme
Adım 4: Ritimleri Ayarlama
Ritmi anlama
Doğru ritimleri bulma
Adım 5: Akışı Ölçme
Metrikleri anlama
Neyi ölçmeliyiz?
Kümülatif akış diyagramı
Kümülatif akış diyagramını okuma
Sistem teslim süresi
Hata oranı
Bloklanan maddeler
Adım 6: Önceliklendirme
Gecikmenin maliyeti
Önceliği görselleştirme
Adım 7: Hizmet Sınıflarını Tanımlama
İş tipleri
Hizmet sınıflarını tanımlama
Hizmet sınıflarını görselleştirme
Adım 8: Akışı Yönetme
Karar alma filtreleri
Akışı iyileştirin, kullanımı değil
Darboğazları rahatlatma
Tamponları kullanma
Teslim planlama Deney
Adım 9: Hizmet Seviyesi Anlaşmalarını Belirleme
Doğru hizmet seviyesi anlaşmalarını belirleme
Adım 10: Sürekli İyileştirmeye Odaklanma
James Sutton’ın Önsözü
Kanban, bir işi tüm yaşam döngüsü boyunca “çekmek” için kullanılan endüstriyel bir tekniktir. Kanban, işin daha düzgün bir şekilde ve daha yüksek bir oranda akmasını sağlar. Aynı zamanda Kanban normalde gizli kalmış aktiviteleri aydınlatan bir ışık yakar. Bu, iki seviyede görünürlük sağlar; bireysel aktiviteler ve bir bütün olarak yaşam döngüsü.
Fabrika üretim sistemleri yıllar boyunca kanban’ın faydalarından yararlandı: yüksek üretkenlik, yüksek kalite ve işleri hakkında daha çok bilgi ve kontrol sahibi olan tatminkâr çalışanlar. Son döneme kadar hiç kimse kanban pratiklerinin yazılım geliştirme gibi bilgi işi (knowledge work) alanına dönüştürülebileceğini düşünmemişti. Kanban’ın bu alanlarda yardımı olup olamayacağı dahi açık değildi.
2000’lerde David Anderson, Rosetta Stone’da böyle bir dönüşümü başardı ve Kanban’da uygulanan fikirleri yazılım geliştirme için uygulanabilir bir şekilde geliştirdi. David Anderson, 2010 yılında yayınlanan Kanban adlı kitabında VGA çözünürlüğünde resmi çizdi. Bu, bütün bir endüstrinin Kanban yaklaşımını kullanarak birçok farklı ürün tipinde ve birçok farklı durumda deneyler yapmasını sağladı. Bu deneyleri yapanlar Kanban’ın, Scrum’dan Waterfall’a her geliştirme yaşam döngüsünde işe yaradığını gördüler. Kanban, Scrum ve Waterfall’la yarışmaktan öte onları tamamlar.
Anderson’un kitabı iki şeyi eksik bıraktı: Kanban’daki bilgi işinin teori ve pratiğinin detaylandırıldığı ek bir seviye ve dalışa geçecek kişiler için “başlangıç kılavuzu”.
İhtiyaç duyulan ek detay David Anderson’un yeni kitabıyla geliyor. Diyebiliriz ki bu kitap büyük ekran bir TV’de HD çözünürlükte olacak (Kitap hakkında David’le biraz konuştum).
Kanbana Hazırlık, Başlangıç Kılavuzu
Bulmacanın diğer parçası, “başlangıç kılavuzu”, okumak üzere olduğunuzdur: Jesper Boeg’in mini kitabı “Kanban’a Hazırlık”. İşinizi nerede yaparsanız yapın izleyebileceğiniz bir iPhone video podcast. Büyük HD bir resmin mükemmel tamamlayıcısı.
Uygulayıcıların Kanban’a hızlı bir başlangıç yapabilmeleri için “Kanban’a Hazırlık” kitabını okumalarını içtenlikle öneririm. Kitap, Kanban’ı hızlıca ve acısız bir şekilde deneyimlemeniz için sizi etkin kılacaktır…ve Kanban’ı deneyimlerken duyacağınız endişeyi yatıştıracaktır. Geniş bir açıdan kitap birçok kişinin aynı dalışı göze alması için ilham olurken bizim endüstrimiz alet çantamızdaki bu yepyeni aracın, Kanban’ın, getirdiği bütün faydalarla kullanım alanını genişletecektir.
James Sutton
Giriş
Arka Plan
Kanban’ı uygulamak için adım adım kılavuza başlamadan önce konsepti tanıtmak için birkaç dakika ayıralım. Böylece her bir adımın Kanban değişim yönetim modeliyle uyumlu olduğunu göreceksiniz. Bu mini kitabın kapsamı Kanban’daki fikirleri derinlemesine açıklamak değildir; bu konuda derinlemesine bilgi istiyorsanız David J. Anderson’un harika Kanban kitabını öneririm:
http://www.amazon.com/Kanban-Successful-Evolutionary-Technology-Business/ dp/0984521402/ref=sr_1_1?ie=UTF8&qid=1313588404&sr=8-1
Derinlemesine anlatmak yerine kısa bir giriş, bunu takiben nasıl başlanabileceğine dair adım adım önerilerimi vermeyi umuyorum.
Kanban ya da daha açık olarak “yazılım geliştirme için Kanban sistemi”, geleneksel Çevik metotlarla karşılaştırıldığında yazılım geliştirme için Yalın Ürün Geliştirme ilkelerinin daha direkt uygulanmasını temsil eder. Akış ve bağlam üzerindeki kalıcı odakla Kanban, Çevik yaklaşımlara göre daha az önden tanımlı bir yaklaşım sunar ve Scrum, XP gibi geleneksel yaklaşımlara popüler bir tamamlayıcı olur.
Kanban sözcüğü Japonca’dır ve anlamı “Görsel Kart”tır. Kanban ifadesi arandığında Google’ın 5 milyondan fazla sonuç dönmesinin nedeni; üretim hattının görsel olarak kontrol edilmesi ve dengelenmesi için Toyota’da yıllardır kullanılan sistemi ifade etmesi ve Yalın prensiplerin uygulanışıyla neredeyse eş anlama dönüşmesidir. Diyesi kanban sistemleri Bilgi Teknolojileri içinde yeni bir düşünceyken Toyota’daki Yalın üretim sisteminde 50 yıldan fazla süredir kullanılıyor.
Yazılım geliştirmede Kanban’ın kullanımına Don Reinertsen ile yakın iş birliğinde bulunan David Anderson öncülük etmiştir. David Anderson, Bilgi Teknolojileri’nde yapılan geliştirme, bakım ve operasyon işlerinde Yalınlık bilgisinin artması, iş akışının görselleştirilmesi ve iyileştirilmesi için Kanban’ın kullanılmasına gayret etmektedir.
Ne zaman Kanban kullanmalıyım?
Eğer aşağıdaki sorulardan birine ya da daha fazlasına cevabınız evet ise kitabın devamını okumaktan fayda göreceksiniz:
- Organizasyonunuzda Çeviklik’i uygulamak için bir süredir uğraşıyorsunuz fakat bir başarı elde edemediniz mi?
Bir süredir Çeviklik’i uyguluyorsunuz ve performans gelişimi yatay bir duruma mı geldi?
İçinde bulunduğunuz şartlara uymayan Çevik pratikleri kullanmak için çok zaman harcıyor musunuz?
Altındaki ilkeleri anlamadan Çeviklik’i bir kontrol listesi olarak mı kullanıyorsunuz?
Dondurulmuş, yüksek bağlılık isteyen ve planlanmış döngüler yerine esnekliğe mi ihtiyacınız var?
Öncelikleriniz günlük olarak değişiyor mu?
Çevik ürün geliştirme için tasarlanmış süreçleri, bakım ve operasyon gibi aslında pekte uyumlu olmayan şartlar içinde mi kullanıyorsunuz?
Waterfall tipinde bir yönetimden Çeviklik’e geçerken yüksek seviyedeki organizasyonel direnci önlemek için kademeli bir geçişe mi ihtiyacınız var?
Hedefiniz, Scrum kurallarının sıkı bir şekilde uygulayarak çalışmak olabilir, belki de Waterfall kullanıyor olabilirsiniz ya da var olan Çeviklik uygulamalarınızı iyileştirmek için uğraşıyorsunuzdur, birçok durumda Yalınlık’ı derin bir şekilde anlamak fayda sağlayacaktır ki Kanban, Yalınlık için mükemmel bir katalizör olduğunu kanıtlamıştır.
Kanban nedir?
Kanban’ın ne olduğuna dair birçok farklı tanım vardır. Fakat büyük bir çoğunluğun hem fikir olduğu tanım Kanban’ın aşağıdaki ilkelere odaklanan bir değişim yönetim metodu olduğudur:
- İşi Görselleştir
- Net olmayan bir fikirden teslim edilebilir bir yazılıma kadar değer zincirinizdeki her bir adımı görselleştirin.
- Üzerinde Çalışılan İş Sayısını Kısıtlayın
- Her bir aşamada çalışılmaya izin verilen iş miktarını açık bir şekilde belirleyin.
- Kuralları Açık Bir Hale Getirin
- İşi yaparken uyduğunuz kuralları açık bir hale getirin.
- Akışı Ölçün ve Yönetin
- Bilgiye dayanan kararlar almak için Akışı Ölçün, Yönetin ve sonuçları görselleştirin.
- İyileştirme Fırsatlarını Belirleyin
- Sürekli iyileştirmenin herkesin işi olduğu bir Kaizen kültürü oluşturun.
Altta yatan felsefeyle birlikte yapmanız gerekenler:
- Şuanda yaptığınız şeyle başlayın
Artırımsal, evrimsel değişimi sürdürme konusunda hem fikir olun
Hali hazırda bulunan sürece, rollere, sorumluluklara ve unvanlara saygı duyun
Yalınlık’a aşina olanlar buradaki birçok ilkenin, Yalın çekme sisteminin ve sürekli iyileştirme (Kaizen) kültürü oluşturmanın temelinde olduğunu fark edecektir. Kanban’ın ilk ve en önemli yaptığı şey; yazılım geliştirme sisteme Yalınlıkla ilgili fikirlerin girişi için katalizör olarak hizmet etmesidir. Bu aynı zamanda David’in kitabında da belirtilmiştir:
”…Kanban (capital K) is the evolutionary change method that utilizes a kanban (small k) pull system, visualization, and other tools to catalyze the introduction of Lean ideas into technology development and IT operations”
David J. Anderson, Kanban 2010
”…Kanban (büyük K), kanban(küçük k) çekme sistemini, görselleştirmeyi ve diğer araçları, Yalınlık fikirlerinin teknoloji geliştirme ve BT operasyonları içinde tanıtılması için katalizör olarak kullanan evrimsel değişim metodudur”
David J. Anderson, Kanban 2010
Gelecek bölümlerde birçok Kanban tahtası örneği göstereceğiz ve işleyişini açıklayacağız. Konsept hakkında bir fikriniz oluşması için Resim 1 örnek olarak verilmiştir.
Gördüğünüz gibi tüm iş görünür kılınmıştır. Üzerinde çalışılan iş sayılarının limitleri yerlerinde belirtilmiştir (her kolonun başlığına yazılmış). Kurallar net bir şekilde görselleştirilmiş ve akış ölçülüyor. Fark ettiğiniz gibi son kolon için belirlenmiş bir limit yoktur. Bunun nedeni tahtasını örnek aldığımız bu takımın düzenli bir şekilde haftalık teslimler (Salı, 15:00) yapmaya karar vermesidir. Bunun anlamı biten tüm işlerin belirlenen saatte teslim edilmesidir.
Kanban, tamamıyla evrimsel değişimi gerçekleştirmek üzerinedir
Bu basit adımlar bunu gerçekleştirmede son derece faydalı olduklarını kanıtlamışlardır. Böyle bir sisteme “Kanban Çekme Sistemi” dememizin nedeni; görselleştirilmiş akış ve iş sayısı limitleriyle sisteme kapasitesinden fazla iş sokmayı engellemesidir. Sadece belirli sayıda işe (görsel kartlar, kanbans) erişim vardır, bu nedenle yeni bir işe başlamadan önce var olan işleri tamamlamanız gerekir. Bu, bir işlevselliğin, tahminler ya da talep baz alınarak itilmesinden ziyade kapasite baz alınarak sistem boyunca çekilmesiyle sonuçlanır.
Tahtanızın nasıl görünmesi gerektiğine dair kurallar yoktur. Tek limit hayal gücünüz, yaratıcılığınız ve elektronik sistemlerin kısıtları ya da duvarınızdaki boşluktur. Bu bir başlangıç kılavuzu olduğuna göre ilkeleri göstermek için oldukça basit tahta örnekleri kullanacağız.