Agile

Lean Yaklaşımı

Sözlük anlamı

Lean

YALIN

KARMAŞIK OLMAYAN

KOLAY ANLAŞILAN

GÖSTERİŞSİZ

SÜSSÜZ, SADE

Lean Product Development, Yalın Üretim

Lean prensiplerinin kökeni yalın üretimden gelir. İsminden de anlaşıldığı üzere aslında bir yazılım geliştirme yaklaşımı değil, ürün üretme yaklaşımıdır. Temelinde, çalışana değer verme ve sürekli gelişim vardır.

 

Toyota Production System — TPS
Lean Product Development Toyota tarafından geliştirilmiştir. 1948 yılında geliştirilmeye başlanmış ve uzun süre güncellenmiştir. Araba üretiminde kullanılmıştır. Toyota’nın genel hedefi seri üretim ile maliyeti en aza indirgemek ve bununla birlikte kaliteden ödün vermemektir. Bu doğrultuda üretim yaklaşımlarını sürekli geliştirdiler.

 

Marry & Tom POPPENDİECK

Lean Software Development

Her ne kadar Lean yaklaşımı üretim yaklaşımı olsa da yazılım geliştirme işlemlerine uyarlanabilir. Agile yazılım geliştirme metodolojisinin tarihçesinde çok önemli bir rolü vardır.

Lean Prensipleri

İsrafı önle! (Eliminate Waste) Lean yaklaşımında temel olan üründür. Her şey ürün odaklıdır.

Yazılım geliştirme işlemi için aşağıdakiler israf olarak nitelendirilebilir;

  • Müşterinin istemediği özelliklerin geliştirilmesi
  • Gereksiz beklemeler ve süreçler
  • Müşterinin isteklerinin olmaması
  • Hatalar
  • Gereksiz arayüz tasarımları

Hatta bazı yazılım geliştiriciler için dokümantasyon, yönetim ve planlama süreçleri dahi israf sayılabilmektedir. Her ne kadar tamamının israf olduğu düşüncesine katılmasam da sürekli gelişen sistemlerde statik dokümantasyon oluşturmanın israf olacağı kanaatindeyim. Çünkü her aşamada dokümanı revize etmek için adam gün kaybı olacak. Bunun yerine dinamik/otomatik doküman oluşturan yapıların kullanılması, kodlar için geliştirilen projede açıklamaların yazılması tercih edilmelidir.

Sürekli öğren! (Amplify Learning) Takımın sürekli öğrenmesi için çalışmalar yapılmalıdır. Bilginin güncel olması sağlanmalıdır.

Karar vermek için uygun zamanı kolla! (Decide as Late as Possible) Mümkün olduğunca tüm bileşenleri verileri toplamadan karar verilmemelidir. Çünkü eksik bilgiler ile karar verip işe koyulmak sonradan birçok problemi ortaya çıkaracaktır. Ayrıca karar verme noktasında geç kalınmaması, en doğru zamanın hesaplanması gerekir.

Ürünü hızlı teslim et! (Delive as Fast as Possible) Ürünün hızlı teslim edilmesi müşteriyi memnun eder. Mümkün olduğunca ürünün hızlı üretilmesi gerekmektedir. Dolayısı ile sadece müşterinin istediği şekilde ürün üretilmelidir. Ne eksik ne fazla.

Takımın gücünü ve güvenini artır! (Empower the Team) Takımın kapasitesini ve gücünü artırmak için gerekenleri yapmaktan sakınılmamalıdır. Ayrıca takımın birbiri içerisinde güvenini sağlamak gerekir. Takıma ne kadar değer verilirse çalışanlar da birbirine aynı derece değer verir. Kesinlikle takım içinde kişi bazlı suçluluk duygusunun oluşmaması için doğru planlama yapılmalıdır. 

Bütünlüğü sağla! (Built Integrity In) Sistemin sahibi ile bütünlük sağlanmalıdır. Mutlaka hem sistem içi iletişimi sağlam tutmak hem de müşteri ile iyi bir bağ kurmak gerekir. Ayrıca müşteriyi her aşamada doğru anlamak gerekir. 

Müşterinin
Ben de bu şekilde yapardım. Tam istediğim gibi olmuş.
şeklinde düşünmesi bütünlüğün sağlandığını gösterir.

Bir işi yaparken sistemin bütününü gözet! (See the Whole) Bir iyileştirme veya ekleme yapılırken mutlaka sistemin bütünü düşünülmelidir. Parçalı bağımsız iyileştirmelerden kaçınılmalıdır.

 


“Seri üretim yap, maliyeti düşür, kaliteden ödün verme!”

Japonya’da bir fabrikada maliyeti düşük, kaliteli ürün üretmek istiyordu. 

Düşünülünce seri üretim, maliyetin asgari düzeyde kalmasını sağlayabilir. Sanki bu yöntemle kaliteli ürün çıkmasını beklemek pek mümkün değil.

Seri üretilen ürünlerin aynı probleme sahip olması ürün kalitesinin düşmesine neden oluyordu. Bu durum üretim maliyetini artırıyordu. Sorunu çözmek için bir çok fikir ortaya atıldı. Bunlardan bir tanesi kalite kontrolün işçi tarafından üretim bandında yapılması idi.

“Eğer işçi herhangi bir problemi tespit ederse üretim bandını durdurabilmeli!”

Tabi bu fikir kimilerine göre mantıklı olsa da kimileri için pek uygun değildi.(o yıllarda işçiye değer vermek…);

  • Acaba bu yapılmalı mı? Yapılırsa fabrika zarar görmez mi?
  • Üretim bandının kontrolünü nasıl bir işçiye verebiliriz?
  • Aralıksız üretim yaparken bir işçi nasıl olurda fabrikayı durdurur?
  • Bu yetki üretim planına zarar vermesin sakın.
  • vs.

Bu fikrin uygulanması ilk zamanlarda sürekli üretimin durmasına sebep oldu. Kaliteye engel olan durumlar ortadan kaldırılıdıkça üretim bandının durdurulması eylemi azaldı. Ve sonrasında hedeflenen şekilde az maliyetle seri üretim yapılırak kaliteli ürünler üretilildi.

İşçiye kalite kontrolünün yaptırılması ve üretimi durdurma yetkisinin verilmesi örneği, çalışana değer vermedir, güvenmedir. Bu hikaye takıma güvenmeye ve takımın gücünün artırılmasına bir örnektir.


Yazılım geliştirme süreçlerinde belkide bir çoğunuzun Lean Yaklaşımı ile bağlantı kurabildiniz. Yazılım geliştirme işlemi aslında bir ürünün ortaya çıkarılması ve ayakta tutulması değil mi? Aslında her geliştirici daha hızlı, daha az maliyetli ve kaliteli yazılım geliştirmek ister. – Yazılımcılar maliyeti sevmezler. Mutlaka toplantılarda bir işin maliyeti konuşulur. – Bir de yaptığınız iş içinize sinecek. Belki bu da kaliteyi gösterir.

Sending
User Review
0 (0 votes)

Leave a Comment