Mary ve Tom Poppendieck tarafından yazılan Yalın Yazılım Geliştirme: Çevik Araç Kiti (Addison-Wesley Professional, 2003), orijinal Yalın ilkelerini, araçları ve teknikleri diğer Çevik yöntemlerle karşılaştırır.
Yalın, tümü olmasa da çoğu Çevik yöntemde kolayca uyarlanır ve kullanılır.
Yalın’ın Yedi İlkesi
- İsrafı Ortadan Kaldırmak: Değeri en üst düzeye çıkarın.
- Öğrenmeyi Güçlendirmek: Sık İletişim ve Geri Bildirim Yoluyla
- Olabildiğince Geç Karar Vermek: Erken Planlama, Geç Karar Verme
- Olabildiğince Hızlı Teslim Etmek: Yatırımın Getirisini En Üst Düzeye Çıkarın.
- Ekibi Güçlendirmek: Kendi Kendini Yöneten ve Güvenilir Ekipler kurmak.
- Kaliteyi İnşa Etmek: Kalite Kontrolden Çok Kalite Güvencesine odaklanmak
- Bütünü Görmek: Bir sistemin parçalarını değil, sistemi görün.
Yalın Çevikliği Nasıl Tamamlar?
Yalın, Çevik’i dört farklı şekilde tamamlar ve tüm değer akışı boyunca akış verimliliğini optimize etmek için çalışır;
- Doğru ve değerli olanı yapın: Müşterilerin elde edeceği değeri anlayın ve sunun.
- Hızlı yapın: Müşteri ihtiyacından teslim edilen çözüme kadar geçen süreyi azaltın.
- Doğru yapın: Otomatik test, entegrasyon vb. ile kalite ve hızı garanti altına alın.
- Geri bildirim yoluyla öğrenin: Ürün tasarımını erken ve sık uçtan uca geri bildirime dayalı olarak geliştirin.
Yalın, özellikle çerçeveyi hafif ve esnek tutmaya çalışan birçok Çevik yöntemi etkilemiştir. Yalın, belirli bir Çevik metodolojiden ziyade Kanban metodolojisinin ve çekme sisteminin bir varyasyonudur.
Yalın Üretimde Yedi İsraf
Üretimdeki amaç, her şeyi yalın tutmaktır. İsraf, değerin tersidir. Yalın üretimde yedi israf Shigeo Shingo’nun A Study of the Toyota Production System adlı çalışmasında (Productivity Press, 1989) tanımlanmıştır;
- Aşırı üretim
- Ekstra işleme
- Taşıma
- Bekleme
- Hareket
- Kusurlar
- Envanter
- Aşırı Üretim: Talepten fazlasını üretmek, organizasyonlara her yıl sadece para olarak değil, aynı zamanda işçilik, parça ve artan stoklar açısından maliyet yaratır. Değişken bir pazarda ne kadar üretilmesi gerektiğini tahmin etmek önemlidir. Aşırı üretim yapmamak için daha iyi tahmin yöntemleri gereklidir ve Kanban çekme sistemi yaklaşımı bu ortamda iyi çalışır.
- Ekstra işleme: Süreçte gerçekten ihtiyaç duyulmayan ek adımlardır. XP’nin yazılım geliştirmesindeki sürekli entegrasyon uygulaması gibidir. İşler karmaşıklaşıyor veya süreç adımlarında çok fazla zaman harcıyorsanız, süreci iyileştirmek ve değer akışını basitleştirmek gerekir. Değer akışı, konseptten teslimata kadar olan süreci ifade eder. Müşteriye değer ürettiğimiz akıştır. Süreçte gereksiz adımlar varsa değer akışı doğru şekilde akmayacaktır. Değer akışı haritalama, mevcut sisteme bakmanın ve daha sonra daha etkili bir sistemi tasarlamanın yalın bir yoludur.
- Taşıma: Ürün parçasının bir yerden diğerine nakliyesidir. Birçok kuruluş, bir ürünün bir parçasını üretir ve daha sonra onu farklı bir yere taşır. Bu süreçte aktarmaları azaltmak gerekir.
- Bekleme: Süreç adımları arasındaki gecikmedir. Kendi işinize başlamadan önce başka birinin işini bitirmesini beklemek zorundaysanız ve sonra kendi işinizi yapmak için sınırlı bir zamanınız varsa, sıkıntı var demektir. Beklemek zaman kaybıdır.
- Hareket: Süreç içinde ilerlemektir. İki nokta arasındaki en kısa mesafe düz çizgidir. Çok fazla hareket veya fazladan adım, kusurlara ve zaman kaybına neden olur. Şelale vb. Yöntemlerde fazla uygulama ve belge olabilir. Uzun vadeli, kapsamı belirli projelerde en iyi uygulamalardır, ancak Çevik projelerde etkili olmayı olumsuz etkiler.
- Kusurlar: Ürünlerin özelliklerini/işlevlerini etkileyen kusurlardır. Kusur onarımı pahalıdır. Kuruluşlar, sürecin kalite güvencesi ve kalite kontrol prosedürleri yoluyla kaliteli çıktılar ürettiğinden emin olmak için önceden para harcarlar. Arızalı parça, ekipman ve ürünlerde de kusurları düzeltmek için harcama yapmak zorunda kalırlar.
- Envanter: Bitmemiş mallar envanterde kalır ve satılmaz. Kullanılmayacak veya bitmeyecek öğeleri elde tutmak, başka şeyler için kullanılabilecek değerli öğelerin israfına yol açar.
Yalın Yazılım Geliştirmede Yedi İsraf
Yalın yazılım geliştirmenin amacı, süreçteki ve üründeki zaman kaybını, ekstra adımları veya genel sorunların sebebine yönelik sorulara sürekli olarak cevap vermektir.
- Kısmen yapılan iş
- Ekstra özellikler
- Yeniden Öğrenme
- Aktarmalar
- Gecikmeler/bekleme
- Görev değiştirme/hareket
- Kusurlar
Yazılım geliştirme sisteminden atıkları kaldırmak ve sürekli iyileştirmeye odaklanmak gerekir.
1.Kısmen yapılan iş – Bitti tanımını karşılamayan ürünler, piyasaya sürülemez veya kullanılamaz. Bunun nedeni, plandan önce teknolojinin ne kadar karmaşık olduğunu fark etmeyip zaman ve kaynak israf etmektir.
- Ekstra Özellikler: Herhangi bir projede altın kaplama büyük hatadır. Altın kaplama, müşteriye talep etmedikleri ekstra özellikler veya ilave işlevsellik kazandırmaktır. Vizyonu, hedefi, son kullanıcıyı anlamadığınızı ve/veya değeri yanlış bir şekilde önceliklendirdiğinizi, yanlış spesifikasyona göre ürettiğinizi gösterir. Altın kaplama, kalite ve kapsam kayması ile sonuçlanacak, zaman veya para kaybı olacaktır. Altın kaplamadan kaçınmak gerekir.
- Yeniden öğrenme: Öğrenme değer sağlar ve mümkün olduğunca çok şey öğrenmek önemlidir. Ancak zaten bildiğin bir şeyi yeniden öğrenmek zaman kaybıdır. Belge eksikliği, kötü kodlama uygulamaları ve ekip üyeleri arasında görev geçişleri vb. Bilinen şeyi yeniden öğrenmeye zorlar ve kaos yaratır.
- Aktarmalar: Kuruluşta, hiyerarşik süreçler dizisi, çok fazla dağınık ekip üyesi varsa ve bilgiler iyi bir şekilde dağıtılmıyor veya görünür değilse, kaos vardır. Çevik projeler çapraz fonksiyonel ekipler kullanılarak etkin bir şekilde yönetilebilir. Ekibin tüm işlevlerde etkili olması için ihtiyaç duyduğu tüm bilgilere sahip olduğu anlamına gelir. PMP sınavında dağınık ekiplerle ilgili sorular görebilirsiniz. Ekip üyelerinizi birden fazla lokasyondaysa, devirleri en aza indirmek için her bir lokasyonda çapraz işlevli çalışanlardan oluşan bir ekibe sahip olmanın en iyi uygulama olduğunu unutmamak önemlidir.
- Gecikmeler: Gecikmeler işi yapacak yeterli sayıda insan olmamasından veya bir yinelemede başarılabilecekten çok daha fazla iş seçmekten kaynaklanır. Dış bağımlılıklar kaynaklı gecikmeler deneyimi eksikliğinden veya sadece genel tahmin yapmaktan kaynaklanır.
- Görev Değiştirme: Çoklu görev, aslında oldukça zor olduğu halde süper üretken olduğu düşünülür. Görev değiştirme, birden fazla proje hakkında vizyon sahibi olmanız beklenirken ortak bir vizyona sahip olmanızı imkansız hale getirir. Görev değiştirme israf yaratır. Devam eden çok fazla proje, yetersiz tahmine, kötü analize ve ortak vizyon eksikliğine yol açar.
- Kusurlar: Hiçbir şey, kusurlardan daha fazla israf yaratmaz. Ortak bir vizyona sahip olmak ve müşterinin ne istediğine dair gerçek bir anlayışa sahip olmak gerekir. Kalite güvence sürecini takip ederek, sürecin çalışıp çalışmadığını sürekli olarak denetlemek ve kusurları kalıcı olarak çözerek sürekli iyileşme sağlanabilir. Yeniden düzenleme, kodun çalışma şeklini değiştirmeden kodu değiştirmektir. Sürekli entegrasyonla ve kodun mümkün olduğunca basit olmasını sağlamakla ilgilidir. Bu sayede gözden geçirme, test etme ve değiştirme kolaylaşır.
Sürekli İyileştirme
Kanban, Lean veya diğer çevik yaklaşımlarda sürekli iyileştirme yöntemleri bulunur. Amaç, süreçte ve sonuçlarda israfa veya iyileştirme eksikliğine neyin neden olduğunu bulmaktır. Yalın’da, çoğu zaman süreçte, envanterde, ekipte ve üründe israf olabilir. Bundan kaçınmak için bazı felsefelere bakılabilir;
- Kısıtlar Teorisi (TOC): Süreç akışındaki darboğazların ve kısıtlamaların belirlenerek yeniden yapılandırılmasıdır. Teori, süreç akışında, israf yaratan ve sürecin kendisinin uygulanmasını engelleyen darboğazları nasıl keşfedebileceğinizi açıklar. Kısıtlamaların ne olduğunu öğrendikten sonra, süreç akışınızı iyileştirmek, savurgan veya gereksiz adımları ortadan kaldırmak ve daha kaliteli artımlar üretmek için çalışabilirsiniz.
- Derin Bilgi Sistemi: W. Edwards Deming’in varyasyon ve süreçleri nasıl etkilediği üzerine yaptığı bir çalışmanın başlığıdır. Deming, kalite yönetiminde en iyi uygulamaların sürekli iyileştirilmesi için Shewhart’ın Planla-Uygula-Kontrol Et-Uygulama döngüsünün uyarlanmasından yararlanmıştır. Döngü aynı zamanda geleneksel planlama, yürütme, izleme ve kontrol yaklaşımını takip edecek şekilde çevrilebilir. Derin Bilgi Sistemi, büyük resmi görmek için dört mercek kullanır:
- Kullanılan süreçleri anlayarak bir sistemi anlamak.
- Varyasyonu, kusurların neden oluştuğunu anlamak. Örneğin seri üretimde istatistiksel örnekleme, popülasyonun bir bölümünü temsil edecek bir sonucun gözden geçirilmesine izin verir. İncelemek ve tolerans seviyelerini karşılayan bir aralık olup olmadığına bakmak gerekir.
- İnsan davranış psikolojisini ve teorilerini anlamak. İşi yapan kişilerin anlaşılmasını sağlar.
- Bilgi ve inanç sistemlerine felsefi bir yaklaşım olan Bilgi Teorisini (Epistemoloji) anlamak.
- Yalın Ekonomik Model: Bu model “atık” kavramlarına dayanır.
- Muda veya Atık: Kanban’ın çözmeye yardımcı olduğu Yalın’ın yedi israfı.
- Muri veya Aşırı Yük: Aşırı çalışan çalışanlar veya yetersiz çalışan makineler aşırı yük yaratır. Süreç akışından aşırı yükün kaldırılması gerekir.
- Mura veya Eşitsizlik: Süreçteki farklılıklar atık(muda) ve aşırı yüklenmiş çalışanlar (muri) yaratabilir. Mura, uygun şekilde yönetilmezse kısır döngü ortaya çıkar.
Kuruluşlar, süreç akışındaki israfı fark ettikçe, ürünlerinde çok fazla kusur buldukça, hatalı süreçlerini fark ettikçe düzen ihtiyacı ortaya çıkar. Yalın ve Kanban felsefeleri hem endüstriyel hem de bilgi yönetimi çalışmaları için geçerlidir ve birçok endüstride çalıştıkları kanıtlanmıştır. Diğer çerçevelerle birleşecek kadar esnektirler.
Yalın yazılım geliştirme ile ilgili ilkeler aşağıdadır;
- Gecikmeleri ortadan kaldırmak ve kesintileri azaltmak için çalışmayı sınırlandırmak.
- Yapılması gereken en değerli işi belirlemek.
- Gereksiz olanı yapmaktan kaçınmak.
- İş akışının doğru sırada olmasını sağlamak.
- Atıkları sistemden çıkarmak.
Türkçe eğitimler
İngilizce eğitimler