57
YALIN YAZILIM YALIN YAZILIM Geliştirme Geliştirme Gürcan Banger Gürcan Banger Sanayi Geliştirme Merkezi – SANGEM Genel Sanayi Geliştirme Merkezi – SANGEM Genel Koordinatörü Koordinatörü Yrd. Doç. Dr. Gülsüm Çalışır Yrd. Doç. Dr. Gülsüm Çalışır Gümüşhane Üniversitesi İletişim Fakültesi Gümüşhane Üniversitesi İletişim Fakültesi

YALIN YAZILIM Geliştirme

  • Upload
    yuri

  • View
    93

  • Download
    3

Embed Size (px)

DESCRIPTION

YALIN YAZILIM Geliştirme. Gürcan Banger Sanayi Geliştirme Merkezi – SANGEM Genel Koordinatörü Yrd. Doç. Dr. Gülsüm Çalışır Gümüşhane Üniversitesi İletişim Fakültesi. Yalın Düşünce. “Bütün yeteneklerin en değerlisi, tek bir sözcüğün yeterli olduğu yerde iki sözcük kullanmamaktır.” - PowerPoint PPT Presentation

Citation preview

Page 1: YALIN YAZILIM Geliştirme

YALIN YAZILIM YALIN YAZILIM GeliştirmeGeliştirme

Gürcan BangerGürcan BangerSanayi Geliştirme Merkezi – SANGEM Genel KoordinatörüSanayi Geliştirme Merkezi – SANGEM Genel Koordinatörü

Yrd. Doç. Dr. Gülsüm ÇalışırYrd. Doç. Dr. Gülsüm ÇalışırGümüşhane Üniversitesi İletişim FakültesiGümüşhane Üniversitesi İletişim Fakültesi

Page 2: YALIN YAZILIM Geliştirme

G. Banger - G. Çalışır 2

Yalın Düşünce

““Bütün yeteneklerin en Bütün yeteneklerin en değerlisi, tek bir sözcüğün değerlisi, tek bir sözcüğün yeterli olduğu yerde iki yeterli olduğu yerde iki sözcük kullanmamaktır.”sözcük kullanmamaktır.”

Thomas Jefferson (1743-1826)Thomas Jefferson (1743-1826)ABD 3. BaşkanıABD 3. Başkanı

Bağımsızlık Bildirisi YazarıBağımsızlık Bildirisi Yazarı

Page 3: YALIN YAZILIM Geliştirme

G. Banger - G. Çalışır 3

Yalın Yazılım

Yalın Yazılım GeliştirmeUnsurları

Yalınİlkeler

YalınAraçlar

Page 4: YALIN YAZILIM Geliştirme

G. Banger - G. Çalışır 4

Yalın Düşünce / Üretim

Anahtar niteliğindeki yalın faaliyet; bir süreci adımlara ayırmak, değer üreten adımları ve değer üretmeyen adımları (atık, fire veya

israf üreten adımları)

ayırt etmektir. Hedef; atığı (israfı ve fireyi) yok etmek

ve değer üreten adımları iyileştirmektir.

Page 5: YALIN YAZILIM Geliştirme

G. Banger - G. Çalışır 5

Yalın Düşünce / Üretim

ÜretimSüreci

Değer üretmeyenATIK adımları

Değer üretmeyengerekli DESTEK

adımları

Değer üretenadımlar

Page 6: YALIN YAZILIM Geliştirme

G. Banger - G. Çalışır 6

Yalın Üretim İlkeleri

Yalın üretim ilkeleri: Değer: Müşteri ve / veya kullanıcı tarafından

tanımlanan değer; Değer akımı: Ürünü üretmek için değer yaratan

adımlar; Akış: Üretim sürecinin sürekli akacak biçimde

tasarlanması; Çekiş: Ürünün müşteri tarafından istenmesi,

sipariş edilmesi; Mükemmellik: Atığı yok ederek mükemmelliğin

sürekli hale getirilmesi.L E

A N

P

RO

DU

CT

ION

Page 7: YALIN YAZILIM Geliştirme

G. Banger - G. Çalışır 7

Yazılımda Yalın İlkeler

Yalın yazılım geliştirme ilkeleri:1. Atığı / israfı / fireyi yok et,2. Öğrenmeyi güçlendir,3. Mümkün olduğunca geç karara bağla,4. Mümkün olan en kısa sürede üret ve

teslim et,5. Takımı güçlendir,6. Bütünlüğü sağla ve yerleştir,7. Bütünü gör.

Page 8: YALIN YAZILIM Geliştirme

G. Banger - G. Çalışır 8

Yalın Düşünce

““İyimserlik, yazılım İyimserlik, yazılım geliştirmede mesleki bir geliştirmede mesleki bir tehlikedir.”tehlikedir.”

Kent BeckKent BeckYazılım mühendisiYazılım mühendisi

Extreme Programming geliştiricisiExtreme Programming geliştiricisi

Agile Manifesto (2001) yazarlarındanAgile Manifesto (2001) yazarlarından

Page 9: YALIN YAZILIM Geliştirme

G. Banger - G. Çalışır 9

Atığı yok et

Yazılım Özellikleri Kullanım Oranı

Daima; 7%

Sıklıkla; 13%

Bazen; 16%

Nadiren; 19%

Asla; 45%

Daima

Sıklıkla

Bazen

Nadiren

Asla

Hibbs, Jewett, Sullivan; The Art of Lean Software Development; 2009

Page 10: YALIN YAZILIM Geliştirme

G. Banger - G. Çalışır 10

Atığı yok et

Geleneksel“ÇağlayanGeliştirme

Modeli”

Bilgi kaybı

Page 11: YALIN YAZILIM Geliştirme

G. Banger - G. Çalışır 11

Yalın Düşünce

““Her şey, olabildiği kadar basit Her şey, olabildiği kadar basit olmalıdır, ama asla daha fazla olmalıdır, ama asla daha fazla değil.”değil.”

Albert EinsteinAlbert Einstein(1879-1955)(1879-1955)

Alman kökenli ABD’li fizikçiAlman kökenli ABD’li fizikçi

Genel Görelilik Kuramı kurucusuGenel Görelilik Kuramı kurucusu

Page 12: YALIN YAZILIM Geliştirme

G. Banger - G. Çalışır 12

Atığı yok et

Bir ürüne, müşteri tarafından algılanabilen DEĞER katmayan şeye ATIK ( muda ) denir.

ATIK kavramı, gereksiz kod ve işlevleri, yazılım geliştirmedeki gecikmeleri, iyi tanımlanmamış ihtiyaçları, kayıt-kuyut işlerini ve bürokrasiyi, yavaş iç iletişimi

içerir.

Page 13: YALIN YAZILIM Geliştirme

G. Banger - G. Çalışır 13

Atığı yok et Atık / İsraf / Fire türleri:

1. Hatalar: Kaynakta yok edilmesi gereken sorunlar,2. Aşırı üretim: İstenmeyen özelliklerin üretilmesi,

eklenmesi,3. Taşıma: Gereksiz iş aktarmalar ve taşımalar,4. Bekleme: Bir başka işin veya sürecin tamamlanmasını

bekleme,5. Envanter: Bekleyen kısmen tamamlanmış işler,6. Hareket: Kişilerin veya malzemelerin sürecin

başarılması açısından gereksiz, amaçsız ve katmayan hareketleri,

7. Aşırı işleme: Müşteri tarafından ihtiyaç duyulmayan aşırı süreçleme / işleme,

8. İnsan kaynağının tam olarak değerlendirilememesi.

Page 14: YALIN YAZILIM Geliştirme

G. Banger - G. Çalışır 14

Atığı yok et

Örnek 1: Eğer yazılım geliştiriciler, müşterinin ihtiyaçlarını aşan bir kod yazdılarsa bu, bir israf örneğidir.

Örnek 2: Yazılım geliştirmede kodun ve dokümanların biteviye değişik takımlar arasında gidip gelmesi bir başka israf örneğidir.

Örnek 3: Kullanılmamak üzere yarıda bırakılmış kod bir diğer israf örneğidir.

Page 15: YALIN YAZILIM Geliştirme

G. Banger - G. Çalışır 15

Atığı yok et

Örnek 4: Müşteriler tarafından kullanılmayan fazladan süreçler ve özellikler, israf olarak kabul edilmelidir.

Örnek 5: Başka faaliyetleri, takımları veya süreçleri beklemek israf sayılır.

Örnek 6: Hatalı ürünler veya düşük kalite, israfa başka örneklerdir.

Örnek 7: Gerçek değer üretmeyen yönetim giderleri (genel giderler) israftır.

Page 16: YALIN YAZILIM Geliştirme

G. Banger - G. Çalışır 16

Atığı yok et

Atığı yok edebilmek için tanımlamak ve görmek gerekir.

Atığı ayırt etmek ve tanımlamak için değer akım haritalama tekniği kullanılır.

Bu teknik sayesinde atık kaynakları tespit edilir ve atık, israf veya fire yok edilir.

Page 17: YALIN YAZILIM Geliştirme

G. Banger - G. Çalışır 17

Atığı yok et

Page 18: YALIN YAZILIM Geliştirme

G. Banger - G. Çalışır 18

Öğrenmeyi güçlendir

Yazılım geliştirme ortamını iyileştirmede en etkili yaklaşım öğrenmeyi güçlendirmedir.

Yazılım hatalarının birikimi, kodun yazımının hemen ardından sınamaların yapılması ile önlenebilir.

YAZ ve ardından SINA !...

Page 19: YALIN YAZILIM Geliştirme

G. Banger - G. Çalışır 19

Öğrenmeyi güçlendir

1 2 3 SINA

1 2 3

Page 20: YALIN YAZILIM Geliştirme

G. Banger - G. Çalışır 20

Öğrenmeyi güçlendir

Aşırı dokümantasyon veya çok ayrıntılı planlama yerine değişik kod yazma ve yazılım inşası yaklaşımları denenebilir.

Müşterinin ihtiyaçlarını öğrenmek ve şartlarını daha hızlı yerine getirmeye yönelik bilgi toplama sürecinde; kullanıcı ekranlarını (arayüzlerini) anında paylaşmak ve geri bildirim almak kolay ve yararlı bir yoldur.

Page 21: YALIN YAZILIM Geliştirme

G. Banger - G. Çalışır 21

Öğrenmeyi güçlendir

Öğrenme süreci, kısa ardıştırmalı (iteratif) döngülerle hızlandırılabilir.

İçsel yapıyı değiştiren ama dışsal davranışı değiştirmeyen refactoring ile yazılmış modüllerin bir grup halinde sınandığı integration testing yaklaşımları, bu ardıştırmalı döngülere eklemlenebilir.

Page 22: YALIN YAZILIM Geliştirme

G. Banger - G. Çalışır 22

Öğrenmeyi güçlendir

1 2 3

Ardıştırmalı döngüler:Refactoring ve integration testing

Page 23: YALIN YAZILIM Geliştirme

G. Banger - G. Çalışır 23

Öğrenmeyi güçlendir

Müşteri ve kullanıcılarla yapılacak sık ve kısa geri bildirim seanslarından elde edilecek bilgiler, geliştirme sürecinin mevcut aşamasını ve gelecek iyileştirme çabalarını kolaylaştırır.

Yazılımcı

Müşteri / Kullanıcı

Page 24: YALIN YAZILIM Geliştirme

G. Banger - G. Çalışır 24

Öğrenmeyi güçlendir

Kısa müşteri / kullanıcı ziyaretleri sırasında müşteri temsilcileri ve yazılım geliştiriciler, kaynak sorunları öğrenirler ve yeni geliştirmeler için olası çözümler konusunda bilgilenirler.

Yazılımcı

Müşteri / Kullanıcı

Page 25: YALIN YAZILIM Geliştirme

G. Banger - G. Çalışır 25

Öğrenmeyi güçlendir

Bu ziyaretlerde müşteri ve kullanıcılar da yazılım geliştirme çabalarına bağlı olarak kendi ihtiyaçlarını daha iyi kavrarlar.

Yazılımcı

Müşteri / Kullanıcı

Page 26: YALIN YAZILIM Geliştirme

G. Banger - G. Çalışır 26

Öğrenmeyi güçlendir

Yazılım geliştirmenin en önemli sorunlarından birisi ürünün geleceğinin (hatta bir sonraki aşamasının) açık ve net olarak görülememesidir.

Bu belirsiz (bulanık) durumun ana kaynağı, geliştirilmekte olan ürünün geleceğine ilişkin bilgi ve deneyimimizdeki boşluklardır.

…kod…

??

Page 27: YALIN YAZILIM Geliştirme

G. Banger - G. Çalışır 27

Öğrenmeyi güçlendir

Bu boşluklar, geliştirmenin daha sonraki aşamalarında “pahalıya mal olacak” tasarım ve geliştirme geri dönüşlerine neden olur.

Bu durumu aşmanın anahtar faaliyetlerinden birisi müşteri ve kullanıcı ile iletişim ve ilişki içinde olmaktır.

…kod…

??

Page 28: YALIN YAZILIM Geliştirme

G. Banger - G. Çalışır 28

Öğrenmeyi güçlendir

Burada sözü edilen ilişki ve iletişim, sadece mevcut çözümlere odaklanmaz.

Müşteri ve kullanıcı ile iletişim halinde geleceğe yönelik çözümlerin şart ve kısıtlarını aşacak imkânlar ve kolaylıklar bulmaya çalışır.

Bu yaklaşıma küme tabanlı öğrenme (set-based learning) adı verilir.

…kod…

??

Page 29: YALIN YAZILIM Geliştirme

G. Banger - G. Çalışır 29

Öğrenmeyi güçlendir

Yazılım geliştirici Müşteri / Kullanıcı

Gelecekteki ihtiyaçlarımız,

müstakbel sorunlarımız…

Birlikte geliştirebileceğimiz

yaklaşımlar, müstakbel

ihtiyaçlarınızı tatmin edecek çözümler…

Küme temelli öğrenme

( Set-based learning )

ortamı

Page 30: YALIN YAZILIM Geliştirme

G. Banger - G. Çalışır 30

Geç karara bağla Yazılım geliştirme süreci, birtakım

belirsizlikleri içerir. Bu nedenle başarılı sonuçlar elde

etmek için seçenek temelli (seçenekleri

değerlendiren) yaklaşımlar kullanılmalıdır. Yazılım projesini varsayımlar ve

öngörüler üzerine kurmak yerine; gerçekler belirleninceye kadar bazı bağlayıcı kararları geciktirmek gerekebilir.

Page 31: YALIN YAZILIM Geliştirme

G. Banger - G. Çalışır 31

Geç karara bağla

Yazılım projesinin karmaşıklık düzeyi arttıkça, projeye daha fazla değişebilme kapasitesi verilmelidir.

Bağlayıcı kararların olabildiğince geciktirilmesi, projenin değişebilme kapasitesini ve yeteneğini artırır.

Az önce sözü edilen ardıştırmalı döngüler yaklaşımı da bu fikri destekler.

Page 32: YALIN YAZILIM Geliştirme

G. Banger - G. Çalışır 32

Geç karara bağla

Bazı önemli kararların geciktirilmesindeki ana fikir, müşterilerin ve kullanıcıların gerçek ihtiyaçlarının farkına varmaları için zamana ihtiyaç duymalarıdır.

Bazı kararların geç verilebilmesi için bir çevik yazılım geliştirme (agile software development) yaklaşımının yaratılmış olması gerekir.

Page 33: YALIN YAZILIM Geliştirme

G. Banger - G. Çalışır 33

Geç karara bağla

Çevik yazılım geliştirme ortamı (agile software development environmant), müşteri ve kullanıcıların ihtiyaçlarını daha iyi belirlemeleri açısından bağlayıcı kararların geciktirilebilmesine imkan tanır.

Böylece aceleyle alınmış yanlış teknolojik yatırımların da önüne geçilmiş olur.

Page 34: YALIN YAZILIM Geliştirme

G. Banger - G. Çalışır 34

Hızlı üret ve teslim et

Hızlı teknoloji evrimleşmesi çağında kalıcı ve sürdürülebilir olan, en hızlı ve çevik olandır.

Bir ürün minimum (önemsiz) hata ile üretilip teslim edilebilirse, hızlı biçimde geri bildirim alınır; ek ihtiyaçlar ve talepler bir sonraki ardıştırma (iterasyon) ile ilişkilendirilebilir.

Page 35: YALIN YAZILIM Geliştirme

G. Banger - G. Çalışır 35

Hızlı üret ve teslim et Hızlı ve çevik olamadan bağlayıcı

kararların geciktirilmesi mümkün olmaz.

Hız, müşterinin ve kullanıcının dün ne istediğini değil; bugünkü gerçek ihtiyaçlarını karşılamayı güvence altına alır.

Müşteri, gerçek ihtiyaçlarını açıklıkla öğrenecek ve bilecek; geliştirici, bunlara hızla ve çeviklikle çözüm üretecektir.

Page 36: YALIN YAZILIM Geliştirme

G. Banger - G. Çalışır 36

Hızlı üret ve teslim et

Tam Zamanında Üretim (Just In Time) yaklaşımı, yazılım üretiminde de uygulanabilir.

Bu amaçla kendini yönetip denetleyebilen takımlar oluşturmak gerekir.

Bu takımlar, projeyi görev parçaları halinde gerçekleştirirler.

Page 37: YALIN YAZILIM Geliştirme

G. Banger - G. Çalışır 37

Hızlı üret ve teslim et

Hızlı üretim, tam zamanında teslimat ve israfın azaltılması,

değer akım sürecini / süresini kısaltır.

Page 38: YALIN YAZILIM Geliştirme

G. Banger - G. Çalışır 38

Hızlı üret ve teslim et

Yalın yazılım geliştirme süreci:1. Müşteri, yazılım ürününü belirleyen

ihtiyaçlarını iletir.2. Geliştirme ekibi, ürünü görev

parçalarına ayırır. Her parçanın ayrı bir kart (kanban) üzerine yazıldığını düşünebilirsiniz.

3. Kart üzerinde işin gerektirdiği girdiler ve zamanlama belirtilmiştir.

4. Her takıma bir kart (iş) verilir.

Page 39: YALIN YAZILIM Geliştirme

G. Banger - G. Çalışır 39

Hızlı üret ve teslim et

5. Her takım elemanı her sabah ayakta yapılan bir toplantıda bir gün önce yaptıklarını anlatır, o gün ve ertesi gün yapılacak işleri özetler, çalışma arkadaşlarından veya müşteriden sağlanacak girdileri belirtir.

6. Böylece bir yandan takım içi saydamlık sağlanırken diğer yandan takım içi iletişim geliştirilmiş olur.

Page 40: YALIN YAZILIM Geliştirme

G. Banger - G. Çalışır 40

Hızlı üret ve teslim et

Toyota Ürün Geliştirme Sistemi ile yazılım geliştirme (Küme tabanlı tasarım, set-based design):

1. Her iş parçası (kanban) için en az üç takıma potansiyel çözüm geliştirme görevi verilir.

2. Böylece her takım problem uzayını öğrenir ve bir potansiyel çözüm geliştirir.

3. Geçersiz bulunan çözüm(ler) elenir.

Page 41: YALIN YAZILIM Geliştirme

G. Banger - G. Çalışır 41

Hızlı üret ve teslim et

4. Eleme sonrası kalan çözümler karşılaştırılır ve bir tanesi uygun olarak belirlenir.

5. Uygun çözüm seçeneği üzerinde açık görüşme açılarak iyileştirme önerileri geliştirilir.

6. Geliştirilen çözüm, bunu geliştirecek takıma verilir.

Page 42: YALIN YAZILIM Geliştirme

G. Banger - G. Çalışır 42

Takımı güçlendir

İcranın (yönetimin) başarısı, ayrıntıları doğru elde etmekten geçer.

Doğru ayrıntıları ise en iyi o işi gerçekten yapanlar anlar.

Mükemmeliyete ulaşmak için geliştiricileri teknik kararların ayrıntıları ile ilişkilendirmek temel önemdedir.

Page 43: YALIN YAZILIM Geliştirme

G. Banger - G. Çalışır 43

Takımı güçlendir Geliştirici ekibin (takımların) gerekli

uzmanlıkla donatıldığı ve doğru liderlikle yönetildiği durumda; ekip, daha iyi teknik kararlar ve daha iyi süreç kararları verebilir.

Yalın yazılım üretiminde temel yaklaşım, bağlayıcı kararların geç alınması ve üretim ile teslimatın hızlı ve çevik olması nedeniyle tüm işlerin merkezî otorite tarafından yönetilmesi mümkün olmaz.

Page 44: YALIN YAZILIM Geliştirme

G. Banger - G. Çalışır 44

Takımı güçlendir

Yalın uygulama; iş planlaması yapmak için çekiş (pull) teknikleri kullanır; çalışanların sonraki adımda ne yapılacağını bilmeleri için yerel sinyal mekanizmalarından yararlanılır. (Kanban sistemi)

Page 45: YALIN YAZILIM Geliştirme

G. Banger - G. Çalışır 45

Takımı güçlendir

Yalın yazılım geliştirmede; çekiş mekanizması, çalışan yazılımın iyileştirilmiş sürümlerinin düzenli aralıklarla sunulması konusunda bir anlaşmadır.

Yerel sinyal sistemi; görünür çizelgeler, günlük toplantılar, kısmî ve kapsamlı yazılım sınamaları ile gerçekleştirilir.

Page 46: YALIN YAZILIM Geliştirme

G. Banger - G. Çalışır 46

Bütünlüğü sağla, yerleştir

Kullanıcının bir ürün hakkında “Evet; benim istediğim tam da bu…” şeklindeki algılaması durumunda; o sistemin bütünlüğe sahip olduğu söylenir. Buna algılanan bütünlük adı verilir.

Pazar payı, algılanan bütünlüğün kaba bir ölçümüdür.

Page 47: YALIN YAZILIM Geliştirme

G. Banger - G. Çalışır 47

Bütünlüğü sağla, yerleştir

Kavramsal bütünlük; sistemin merkezî kavramlarının düzgün ve kaynaşmış bir bütün olarak birlikte çalışmaları anlamına gelir.

Kavramsal bütünlük, algılanan bütünlüğün sağlanmasında kritik önemdedir.

Page 48: YALIN YAZILIM Geliştirme

G. Banger - G. Çalışır 48

Bütünlüğü sağla, yerleştir

Yazılım ürünü, bir başka bütünlük düzeyi daha gerektirir.

Yazılım, yararlılığını zamana yaygın olarak sağlamalıdır.

Yazılımın zamana uyum göstererek evrimleşmesi beklenir.

Ölçütler: Kaynaşık mimari, yararlılık, amaca uygunluk, onarılabilme, uyumluluk, genişleyebilirlik…

Page 49: YALIN YAZILIM Geliştirme

G. Banger - G. Çalışır 49

Bütünü gör

Geliştirme süreci boyunca küçüklü büyüklü hatalar birikerek yazılım son ürününde tanımı ve çözümü zor sorunlara yol açarlar.

Büyük işlerin küçük parçalara bölünmesi ve farklı geliştirme aşamalarının standartlaştırılması ile hataların kaynak nedenleri bulunabilir ve önlenebilir.

Page 50: YALIN YAZILIM Geliştirme

G. Banger - G. Çalışır 50

Bütünü gör

ÖRNEK: Ishikawa ( Kılçık ) Diyagramı

Page 51: YALIN YAZILIM Geliştirme

G. Banger - G. Çalışır 51

Bütünü gör

Sistem büyüdükçe geliştirme örgütlenmesi karmaşıklaşır;

Değişik takımlar tarafından üretilen parça sayısı artar;

Yeni ilişkiler ortaya çıkar; Böylece bu karmaşık yapıyı bir bütün

olarak yönetmenin önemi bir kez daha ortaya çıkar.

Page 52: YALIN YAZILIM Geliştirme

G. Banger - G. Çalışır 52

Bütünü gör

Karmaşık sistemlerde bütünlüğün sağlanması, çeşitliliğe sahip farklı alanlarda derin uzmanlık bilgi ve deneyimi gerektirir.

Böyle bir durumda herhangi bir alandaki bir uzmanın, sistemin bütünsel performansına odaklanmak yerine kendi uzmanlık uygulamasını abartmaya çalışması sık rastlanan bir sorundur.

Page 53: YALIN YAZILIM Geliştirme

G. Banger - G. Çalışır 53

Bütünü gör

Çoklu geliştirmeden kaynaklanan sorunları çözmenin araçları ölçme ve sözleşme yapmadır.

Geliştiricilerin ve tedarikçilerin performansları, yazılımın tümü dikkate alınarak ölçülmelidir.

Farklı taraflar aynı yazılım projesinde yer aldıklarında gerekli hukuk, sözleşme ile oluşturulmalıdır.

Page 54: YALIN YAZILIM Geliştirme

G. Banger - G. Çalışır 54

Bütünü gör

Sayılan sorunların aşılması için ilk koşul, yalın düşüncenin tüm ekip tarafından tam ve doğru anlaşılmasıdır.

Büyük düşün,Küçük adım at,

Hızlı yanıl, Çabuk öğren…

Page 55: YALIN YAZILIM Geliştirme

G. Banger - G. Çalışır 55

Yalın İlkeler

Yalın yazılım geliştirme ilkeleri:1. Atığı / israfı / fireyi yok et,2. Öğrenmeyi güçlendir,3. Mümkün olduğunca geç karara bağla,4. Mümkün olan en kısa sürede üret ve

teslim et,5. Takımı güçlendir,6. Bütünlüğü sağla ve yerleştir,7. Bütünü gör.

Page 56: YALIN YAZILIM Geliştirme

G. Banger - G. Çalışır 56

Yalın araçlar

Yalın İlke Araçlar

1- Atık 1-Atığı görme, 2- Değer akım haritalama,

2- Öğrenme 3- Geri bildirim, 4- Ardıştrma, 5- Eşzamanlama, 6- Küme tabanlı geliştirme,

3- Kararlar 7- Seçenekli düşünme, 8- Sorumlu son dakika, 9- Karar verme,

4- Hız 10- Çekiş sistemleri, 11- Kuyruk kuramı, 12- Gecikme maliyeti,

5- Takım 13- Yönetişim, 14- Motivasyon, 15- Liderlik, 16- Uzmanlık,

6- Bütünlük 17- Algılanmış bütünlük, 18- Kavramsal bütünlük, 19- Refactoring, 20- Sınama,

7- Görme 21- Ölçümler, 22- Sözleşmeler.

Page 57: YALIN YAZILIM Geliştirme

G. Banger - G. Çalışır 57

Yalın Düşünce

““Binlerce millik bir yolculuk, Binlerce millik bir yolculuk, tek bir adımla başlamalıdır.”tek bir adımla başlamalıdır.”

Çin atasözü