İlginizi Çekebilir
  1. Ana Sayfa
  2. Programlama

LEAN Development – Yalın Yazılım Geliştirme

LEAN Development – Yalın Yazılım Geliştirme
+ - 0

LEAN Development – Yalın Yazılım Geliştirme , yazısı daha önce pek yazmadığım türden bir tanım ve bilgilendirme türünde yazılarımdandır. İlgili çeken bir konu olduğundan dolayı yazma gereği duydum ve yazıyorum. LEAN Development – Yalın Yazılım Geliştirme ‘ye bir göz atalım.

LEAN Development – Yalın Yazılım Geliştirme

Konu Başlıkları

  1. Lean Düşüncesinin Doğuşu
  2. Boş Harcamaların Elenmesi
  3. Kalitenin Sağlanması
  4. Bilginin Oluşturulması
  5. Kararların Ertelenmesi
  6. Hızlı Dağıtım Yapılması
  7. Saygı
  8. Tüm Döngünün Optimize Edilmesi

 

Lean Düşüncesinin Doğuşu

1940’lı yılların sonlarında Toyota; Japon sektörleri arasında minik bir araba üreticisiydi. İnsanların parası olmadığından daha düşük maliyetle araba üretimi gereksinim vardı. Düşük maliyetli araba üretimi için de en ucuz yöntem seri üretimdi Bu sebeple Toyota, seri üretim yapmadan düşük maliyetli araba üretmenin yollarını aramaya başlamıştı. Daha sonra Taiichi Ohno önderliğinde Toyota üretim sistemi geliştirildi. Bu sistem, Lean düşüncesin de kaynağıdır. Bu sistemin temel prensibi boşa harcamaları elemektir.

lean development

Ohno, seri üretimde elde edilen değerlerin çoğaltılması yerine daha güzel bir fikir ortaya atmıştır. Müşteri için anlam ifade etmeyen her şey boşuna emektir.

Lean Development Modeli

lean development modeli

Bu yüzden boş harcamaları elemek Lean’in ana prensibidir. Lean’in birinci aşaması boşuna olan giderlerin tespit edilmesi iken ikinci aşaması boş harcamaların egale etmesidir.

agile lean development methods

değer akım haritası

LEAN Yazılım Geliştirmenin 7 Prensibi

  1. Boş Harcamaların Elenmesi
  2. Kalitenin Sağlanması
  3. Bilginin Oluşturulması
  4. Kararların Ertelenmesi
  5. Hızlı Dağıtım Yapılması
  6. Saygı
  7. Tüm Döngünün Optimize Edilmesi

 

lean devolepment

1 – Boş Harcamaların Elenmesi

Müşteri için nelerin değer ifade ettiğinin anlaşılması gerekmektedir. Daha sonra, neyin boş harcama olduğu anlaşılmaya çalışılır.

Yazılımdaki en büyük boşuna harcama ise ekstra özelliklerdir. Araştırmalar, özellik ve fonksiyonların ancak %20’sinin müşteriler tarafından sıklıkla kullanıldığını göstermiştir. Ekstra özelliklerin yazılıma çok büyük bir maliyeti bulunmaktadır. Bu özellikler; yazılımın bakımını çok karmaşık hale getirmektedir.

Üretim Süreci

üretim süreci

Lean , siparişin alınmasından projenin teslim edilene kadar olan zamanda, müşteri için herhangi bir anlam teşkil etmeyen her şeyi egale odaklanır. Yazılım doğası gereği çok çabuk değişir. Çoğunlukla müşteri gerçekten ne istediğini bilmemektedir. ancak projeyi kullandıkça neler gerektiğini daha kolay idrak etmeye başlayacaktır..

Tüm sürenin %20’si geliştirilerek, müşterilerin  isteklerinin %80’i karşılanabilmektedir. Bu sebeple önce müşteri için en fazla değer ifade eden %20’lik kısma odaklanılır, daha sonra müşteri için en fazla değer  ve anlam sağlayan özelliklere bakılır. Lean’de üretimde ve bunun karşılığında projede tanımlanmış yedi boşa harcama Tabloda gösterilmiştir.

Boşa Harcama Tablosu

boşa harcamaların elenmesi

Yarı tamamlanmış işlere örnek olarak, kodlama tamamlanmamış belgeleri düzenlenmemiş, senkronize edilmemiş kodlar, test edilmemiş kod, belgeleri düzenlenmemiş kod ve eklentisi yapılmamış kodu verilebilir.

Ek özellikler ise müşteri istedğine bakmadan ileride kullanılabilir düşüncesi ile geliştirilen özelliklerdir. Bu ek özelliklerin bir çoğu ileride kullanılamamakta ya da anlamını yitirmesi bir yana bu ek özellikler sistemi oldukça karmaşık hale getirmektedirler.

Personellerin farklı projelerde görevlendirilmesi ve durmadan bu projeler arasında değişim yapmaları, o projeye olan odaklarını durmadan kaybetmelerine ve performans kayıplarına sebep olduğu için boşa harcama olarak değerlendirilmektedir.
Beklemeler boşa harcamadır.

çağlayan geliştirme modeli

2 – Kalitenin Sağlanması

Lean’de kalite önemlidir. Kodların hatasız olmasına test aşamasında değilde kodlar yazmaya başlanması gerekir. Lean için yazılım hatalarının hata izleme ve test aşamasında çözülmesi bir boşa giden bir harcamadır.

Lean proje geliştirimine göre; testlerin amacı hatanın oluşumundan kaçınmaktır. Bu sebeple kalitenin gerçekleşmesi için, kodun baştan hatasız olması gerekmektedir.

 

3 – Bilginin Oluşturulması

Şelale modelinin adımlarından birisi, istek ve kodlamayı birbirlerinden ayırmış olmasıdır. Ne kadar detaylı tasarım dökümanları hazırlanırsa hazırlansın, birçok tasarımın kodlama aşamasında şekil aldığı görülmüştür. Harward Business Üniversitesinde prof olan Alan MacCormak, başarılı ve sağlıklı Yazılım Mühendisliği için aşağıdaki 4 adımı tanımlamıştır.

• Müşteri tarafından belirlenmiş kısa tanımlı sürümler.
• Derlemeler günlük yapılmalı böylece sık entegrasyon ile geri besleme sağlanmalıdır.
• Takım ve liderler iyi karar alma yetisinde olmalıdırlar.
• Yazılım, yeni özellikleri kolayca ekleyebileceğimiz bir mimariye sahip olmalıdır.

Lean Yazılım Geliştirme Sistemine göre, geliştirme süreci içerisinde sistematik olarak süreç öğrenilmeli ve de sistematik olarak süreç geliştirilmeye çalışılmalıdır. Süreç ilerlemesi geliştirme takımının sorumluluğu olmalıdır.

Tahminlemenin iyi yapılabilmesi için, mümkün olduğunca varsayımlardan uzak olunmalıdır. Eğer sistem; karmaşık, detaylı ve çok ileri tarihli bir zamanı kapsıyorsa tahminleme zorlaşacaktır. Deneyimlere göre deneysel metodolojiler, diğer metolojilere göre daha iyi tahminleme yapmaktadır. Çünkü süreç geliştikçe, süreç daha iyi tahminlenmekte ve planlama bilinen şeyler üzerinden yapılmaktadır

4 – Kararların Ertelenmesi

Lean’de planlar, kararlar, zor tasarım problemlerinin nasıl çözüleceği; elde yeterince veri yoksa, çok fazla belirsizlik varsa sonraya bırakılmaktadır. Bu zor kararlar mümkün olduğunca geç alınmalıdır. Bu tüm kararların sonraya bırakılması anlamına gelmemektedir. Fakat belirsizlik ve zorluk durumlarında daha iyi sonuca ulaşmak için kararlar ertelenebilmektedir.

5 – Hızlı Dağıtım Yapılması

Şirketlerde dağıtım hızlı yapılırsa rekabetçi piyasada avantaj elde edilmekte, mümkün olduğunca hızlı geri dönüş sağlanmaktadır. Ayrıca yazılım çok çabuk değiştirilebilen bir ürün olduğundan, hızlı dağıtım ile müşterinin fikir değiştirip değişik bir ürün istemesi zorlaşmaktadır

Hızlı dağıtım yapmak için kaliteden ödün verilmemelidir. Kaliteyi sağlamak için çok dikkatli olunup yavaş ilerlenmesi gerektiğini kabul eden bir düşünce vardır. Fakat Lean kaliteyi yükseltmek için; yavaş hareket edip dikkatli olmak yerine, süreci durmadan ilerleterek, ürünü en baştan itibaren kalite faktörünü düşünerek tasarlayarak ve müşterinin değişen isteklerine rakiplerinden hızlı cevap vererek ulaşılması gerektiğini savunmakadır. Lean kalite ve hızın beraber yürüyebilen iki faktör olduğunu düşünmektedir

6 – Saygı

Lean takımı içerisinde; görevi, pozisyonu ne olursa olsun tüm takım üyeleri birbirine saygı göstermelidir. Hiçbir zaman tek bir iyi yol yoktur. Hiçbir süreç geliştirilemeyecek kadar mükemmel değildir. İnsanların süreci ilerletebilmeleri için, birbirlerine saygılı davranarak iletişimde bulunmaları şarttır

7 – Tüm Döngünün Optimize Edilmesi

Lean sitemine göre, yazlım sistemi sipariş alınmasından sistemin teslim edilmesine kadar olan tüm süreçte optimize edilmelidir. Eğer sürecin sadece belirli noktaları optimize edilirse, tüm süreç bundan olumsuz etkilenmektedir.


LEAN Development – Yalın Yazılım Geliştirme yazımızda bu kadar dostlar. Diğer yazılarımızda görüşmek üzere.

Programlama hakkındaki diğer yazılarım için tıklayabilirisiniz.

Takipte ve Sağlıcakla kalın. ;)

Bu yazıya tepkiniz ne oldu?

Yazar Hakkında

Lise Ağ Sistemleri ve Yönetimi bölümü, üniversite Bilgisayar Programcılığı bölümü Ön Lisans, Yönetim Bilişim Sistemleri Lisans öğrenimi aldım. Askerlik görevimi tamamladım. Uzmanlık alanım; C# ve SQL Programlama dilleri ile müşteri odaklı, kullanıcı dostu ERP ve CRM gibi sistemleri geliştirmektir. Ayrıca şuanda PHP ve MYSQL alanında projeler geliştirmekteyim. C++, Phyton, Xamarin, MVC gibi konuları öğrenmek ve kendimi geliştirme çabası içerisindeyim. Discord için: https://discord.gg/FBxZeHu9

Değerli yorumlarınızı bekliyorum. :)