SlideShare a Scribd company logo
1 of 26
BAŞARILI PROJELERİn ANAHTARI

ÇevİK YAZILIM GELİŞTİRME PRATİKLERİ
                  Lemi Orhan Ergin
         Principal Software Engineer / Yazılım Ustası
                        Sony Europe
HİÇ yazılım projenİz
Başarisiz oldu mu?
Projeyi zamanında yetistiremedik
                          ,
Daha canlıya çıkamadan iptal ettik
Canlıda sürekli hata buluyorum
Mevcut yazılımı bastan yazmamız gerek
                     ,
                                       -
Proje uzadıkça uzadı, bitecek gibi degil
               -
Yazılım istedigim gibi olmamıs  ,
İstedigim özellikleri eklemiyorlar
Ufak özellikler için bile çok para istiyorlar
Bir kisi isten ayrıldı, proje çıkmaza girdi
      ,
                                      -,
Yazılımı gelistiren takım sürekli degisiyor
             ,
Yazılım mimarisi çok eskiymis   ,
                            - ,
Projenin basarısız olacagı asikardı aslında
             ,
Proje güzel giderken ne oldu da birden battı
Yazılım Projelerİ

BAŞARISIZ
“Tükiye'deki projelerin %50'si çöpe gidiyor”
                               Agile Turkey
                                  -
     “Gerçek masraflar eklendiginde
 teknoloji projelerinin %80'i zarar ediyor”
                          Mercer Consulting
karİyeRİm boyunca 11 büyük çaplı projede çalıştım


         Kalıpçılık endüstrisi için B2B eticaret sitesi
           IBM tabanlı ürün bilgisi yönetim sistemi
           Avrupa için ürün bilgisi yönetim sistemi
                Askeri belge yönetim sistemi
        Tüm Avrupa ülkeleri için pazarlama siteleri
         Tüm Avrupa siteleri için ortak araç çubuğu
      Ana arkaplan bileşenleri, uygulamaları ve API'leri
                Avrupa için ana veri servisleri
          Avrupa için müşteriye özel veri servisleri
         ABD ve Kanada için çekirdek veri servisleri
              E-ticaret dikey ürün satış modulü
karİyeRİm boyunca 11 büyük çaplı projede çalıştım
 6 tanesİ HİÇ CANLIYA ÇIKMADI/KAPANDI/KAPANACAK

         Kalıpçılık endüstrisi için B2B eticaret sitesi
           IBM tabanlı ürün bilgisi yönetim sistemi
           Avrupa için ürün bilgisi yönetim sistemi
                Askeri belge yönetim sistemi
        Tüm Avrupa ülkeleri için pazarlama siteleri
         Tüm Avrupa siteleri için ortak araç çubuğu
      Ana arkaplan bileşenleri, uygulamaları ve API'leri
                Avrupa için ana veri servisleri
          Avrupa için müşteriye özel veri servisleri
         ABD ve Kanada için çekirdek veri servisleri
              E-ticaret dikey ürün satış modulü
BAŞARISIZLIK kaçınılmaz
 ÇÜNKÜ BAŞARISIZ OLMAK İÇİN ÇOK NEDEN VAR

Bilinmeyen gereksinimler     Basarısız takım çalısması
                                    ,            ,       Tanrı yazılımcılar
                    -
Teknik bilgi eksikligi       Yanlıs ürün gelistirme
                                  ,          ,           Sürekli mesai ve verimsiz günler
Yanlıs tasarım ya da kodlama Yönetim zaafları
     ,                                                   Kaliteden verilen ödünler
Sorunları müsteriden gizleme Eksik belgeleme
             ,                                           Sunucu ve altyapı sorunları
Test edilmeden gelistirme
                   ,         İletisim eksiklikleri
                                  ,                      Gereksiz özelliklere odaklanma
Canlıda çıkan hatalar        Kullanılan yanlıs araçlar
                                             ,           Yazılımı sadece kodlama sanmak
Pekİ DÜNYADA BAŞARILI yazılımlar
       NASIL GELİŞTİRİLİYOR?
                    diye sormak hakkınız
ÇEVİK YAZILIM GELİŞTİRME PRATİKLERİ
   basarısı tecrübe ile sabit, dünyaca kabul görmüs,
      ,                                              ,
  basarılı sonuçlar elde eden yazılımlar gelistirmek için
    ,                                        ,
                                            -
         gereken yazılım pratikleri toplulugudur
ÇEVİK YAZILIM GELİŞTİRME PRATİKLERİ
4 Ana kavram üzerİNE KURULMUŞTUR
Erken başarısız olmak
Yazılımda kalİTE STANDARTLARI
Takım   çalışması
BİLGİ PAYLAŞIM ORTAMI
      OLUŞTURMAK
ÇEVİK YAZILIM GELİŞTİRME PRATİKLERİ
             NelerdİR?
MüŞTERİ İLE DÜZENLİ OLARAK GÖZDEN GEÇİRİN
                 Proje kapsamını küçük parçalara bölün
               Herseyi en bastan planlamaya kalkmayın
                  ,          ,
                        Kısa döngülerle yazılım gelistirin
                                                    ,
EĞER
            sistemi bozan yeni özellikler,
 koda dokunmaktan korkan yazılımcılar,
               ömrünü bitirmis projeler,
                               ,
               , -
     nasıl çalıstıgı anlasılmayan kodlar,
                          ,
        son anda ortaya çıkan hatalar,
                uzun test etme süreleri,
                       bitmeyen projeler
                        İSTEMİYORSANIZ


     Test edİLEBİLİR KOD YAZIN
Yazılımı TDD İLE GELİŞTİRİN
      Çok katmanda test edİN
Hata ÇÖZMEDEN ÖNCE MUTLAKA TEST YAZARAK HATAYI YENİDEN YARATIN
  TESTİ YAZILMAMIŞ HATALAR BİR GÜN YENİDEN HORTLAR
Kodu süreklİ YENİDEN YAPILANDIRIN
                        (REFACTOrıNG)
Süreklİ tümleştİRME İLE HATALARI
                ANINDA FARKEDİN
              (CONTINUOUS INTEGRATION)
EşLİ PROGRAMLAMA YAPIN
(PAIR PROGRAMMING)
YAZILan KODLARI
TAKIMCA İNCELEYİN
(CODE REVıEW)
TemİZ KOD YAZIM KURALLARINA UYUN
(CLEAN CODE)
KOD ANALİZİ ARAÇLARI İLE GİZLİ HATALARI BULUN
(CODE ANALYSIS)
KODUNUZU VERSİYONLAYIN VE
HER FIRSATTA DALLANDIRIN
(CODE VERSIONING & BRANCHING)
Kısa aralıklarla sürüm çıkın
(short releases)
Ön Tasarımı kısa tutun
(short up-front design)

YeteRİ KADAR BELGELEYİN
(AGILE DOCUMENTATION)




 GELECEĞİ NETLEŞTİRMEYE
       ÇALIŞMAYIN
ÇALIŞMALARINIZIN EVRİMLEŞMESİNE İZİN VERİN
İç Eğİtİmler ORGANİZE EDİN
BIRAKIN Çalışanlar İş arkadaşlarını eğİTSİN
ÇEVİK YAZILIM GELİŞTİRME PRATİKLERİ
Başarılı projeler gelİştİrmenİzİ sağlar

  Müsteri ile düzenli olarak gözden geçirin.
      ,

  Test edilebilir kod yazın, yazılımı TDD ile gelistirin, çok katmanlı test edin.
                                                  ,

  Kodu sürekli yeniden yapılandırın (refactoring)

  Sürekli tümlestirme ile hataları anında farkedin (continuous integration)
                 ,

  Esli programlama yapın (pair programming)
   ,

  Yazılan kodları takımca inceleyin (code review)

  Temiz kod yazım kurallarına uyun (clean code)

  Kod analizi araçları ile gizli hataları bulun (code analysis)

  Kodunuzu versiyonlayın ve her fırsatta dallandırın (versioning & branching)

  Kısa aralıklarla sürüm çıkın (short releases)

  Ön tasarımı kısa tutun (short up-front design)

  Yeteri kadar belgeleyin (agile documentation)
                                          -

  Bırakın çalısanlar is arkadaslarını egitsinler (internal trainings)
              ,       ,
referanslar
        “Yazılım projeleri çöpe gidiyor” - Agile Turkey
          http://www.agileturkey.org/Haberler/Detay/Yazilim-Projeleri-Cope-Gidiyor

“Software Project Failure Costs Billions..” - Galorath Incorporated
 http://www.galorath.com/wp/software-project-failure-costs-billions-better-estimation-planning-can-help.php




                           Kullanılan resİmler
  http://commons.wikimedia.org/wiki/File:Train_wreck_at_Montparnasse_1895_2.jpg
  http://www.publicdomainpictures.net/view-image.php?image=19963&picture=sad-woman
  http://vetton.ru/61345/
  http://wnyinjurylawyers.com/assets/slider-slip.jpg
  http://blackboardmktg.com/wp-content/uploads/2011/11/blackboard-backgrounds-wallpapers.jpeg
  http://www.acclaimimages.com/_gallery/_image_pages/0420-1010-1615-0910.html
  http://nutrition.about.com/od/tryingtogainweight/tp/foodstogainweight.htm
  http://www.journalofappliedecology.org/view/0/editorschoice491.html
  http://blog.cathysparkle.com/the-truth-about-soap/
  http://www.delawareonline.com/blogs/2008/09/he-pingping.html
  http://www.gemdiamonds.com/gem/image_uploads/backgrounds/1cuttingpolish.jpg
  http://icedcoffee.deviantart.com/art/Zombies-145858724
  http://www.lookfordiagnosis.com/mesh_info.php?term=Quadruplets&lang=1
linkedin




                             @lemiorhan
blogger slideshare twitter




                             @lemiorhan

                             @lemiorhan
                                                   Lemİ orhan ergİn
                             agilistanbul.com      lemiorhan@agilistanbul.com
                                                Principal Software engineer / yazılım ustası
                                                               Sony europe

More Related Content

Viewers also liked

How to Improve Knowledge Motivation Innovation in Agile Organizations
How to Improve Knowledge Motivation Innovation in Agile OrganizationsHow to Improve Knowledge Motivation Innovation in Agile Organizations
How to Improve Knowledge Motivation Innovation in Agile OrganizationsLemi Orhan Ergin
 
Git - Bildiğiniz Gibi Değil
Git - Bildiğiniz Gibi DeğilGit - Bildiğiniz Gibi Değil
Git - Bildiğiniz Gibi DeğilLemi Orhan Ergin
 
Happy Developer's Guide to the Galaxy: Thinking About Motivation of Developers
Happy Developer's Guide to the Galaxy: Thinking About Motivation of DevelopersHappy Developer's Guide to the Galaxy: Thinking About Motivation of Developers
Happy Developer's Guide to the Galaxy: Thinking About Motivation of DevelopersLemi Orhan Ergin
 
Unleashed Power Behind The Myths: Pair Programming (CraftSummit15)
Unleashed Power Behind The Myths: Pair Programming (CraftSummit15)Unleashed Power Behind The Myths: Pair Programming (CraftSummit15)
Unleashed Power Behind The Myths: Pair Programming (CraftSummit15)Lemi Orhan Ergin
 
Code Your Agility - Tips for Boosting Technical Agility in Your Organization
Code Your Agility - Tips for Boosting Technical Agility in Your OrganizationCode Your Agility - Tips for Boosting Technical Agility in Your Organization
Code Your Agility - Tips for Boosting Technical Agility in Your OrganizationLemi Orhan Ergin
 
SCRUM - The Art of Doing Twice The Work in Half The Time from Jeff Sutherland
SCRUM - The Art of Doing Twice The Work in Half The Time from Jeff SutherlandSCRUM - The Art of Doing Twice The Work in Half The Time from Jeff Sutherland
SCRUM - The Art of Doing Twice The Work in Half The Time from Jeff SutherlandAlamanda Shantika Santoso
 
The Elephant In The Room: Motivation (Tips To Improve Motivation Throughout A...
The Elephant In The Room: Motivation (Tips To Improve Motivation Throughout A...The Elephant In The Room: Motivation (Tips To Improve Motivation Throughout A...
The Elephant In The Room: Motivation (Tips To Improve Motivation Throughout A...Lemi Orhan Ergin
 
Professional Software Development, Practices and Ethics
Professional Software Development, Practices and EthicsProfessional Software Development, Practices and Ethics
Professional Software Development, Practices and EthicsLemi Orhan Ergin
 
Grafico diario del dax perfomance index para el 11 12-2013
Grafico diario del dax perfomance index para el 11 12-2013Grafico diario del dax perfomance index para el 11 12-2013
Grafico diario del dax perfomance index para el 11 12-2013Experiencia Trading
 
Ready Player One - Week 2 Check-in
Ready Player One - Week 2 Check-inReady Player One - Week 2 Check-in
Ready Player One - Week 2 Check-incenter4edupunx
 
Система Постройком
Система ПостройкомСистема Постройком
Система Постройкомkulibin
 
Alimentazione americana e Mc donald' s Vittoria Tomas
Alimentazione americana e Mc donald' s Vittoria TomasAlimentazione americana e Mc donald' s Vittoria Tomas
Alimentazione americana e Mc donald' s Vittoria TomasAntonietta Palmieri
 
獅子山下女同志
獅子山下女同志獅子山下女同志
獅子山下女同志lalacamp07
 
Functional Programming in Groovy
Functional Programming in GroovyFunctional Programming in Groovy
Functional Programming in GroovyEvgeny Goldin
 

Viewers also liked (20)

How to Improve Knowledge Motivation Innovation in Agile Organizations
How to Improve Knowledge Motivation Innovation in Agile OrganizationsHow to Improve Knowledge Motivation Innovation in Agile Organizations
How to Improve Knowledge Motivation Innovation in Agile Organizations
 
Git - Bildiğiniz Gibi Değil
Git - Bildiğiniz Gibi DeğilGit - Bildiğiniz Gibi Değil
Git - Bildiğiniz Gibi Değil
 
Happy Developer's Guide to the Galaxy: Thinking About Motivation of Developers
Happy Developer's Guide to the Galaxy: Thinking About Motivation of DevelopersHappy Developer's Guide to the Galaxy: Thinking About Motivation of Developers
Happy Developer's Guide to the Galaxy: Thinking About Motivation of Developers
 
Unleashed Power Behind The Myths: Pair Programming (CraftSummit15)
Unleashed Power Behind The Myths: Pair Programming (CraftSummit15)Unleashed Power Behind The Myths: Pair Programming (CraftSummit15)
Unleashed Power Behind The Myths: Pair Programming (CraftSummit15)
 
Code Your Agility - Tips for Boosting Technical Agility in Your Organization
Code Your Agility - Tips for Boosting Technical Agility in Your OrganizationCode Your Agility - Tips for Boosting Technical Agility in Your Organization
Code Your Agility - Tips for Boosting Technical Agility in Your Organization
 
SCRUM - The Art of Doing Twice The Work in Half The Time from Jeff Sutherland
SCRUM - The Art of Doing Twice The Work in Half The Time from Jeff SutherlandSCRUM - The Art of Doing Twice The Work in Half The Time from Jeff Sutherland
SCRUM - The Art of Doing Twice The Work in Half The Time from Jeff Sutherland
 
The Elephant In The Room: Motivation (Tips To Improve Motivation Throughout A...
The Elephant In The Room: Motivation (Tips To Improve Motivation Throughout A...The Elephant In The Room: Motivation (Tips To Improve Motivation Throughout A...
The Elephant In The Room: Motivation (Tips To Improve Motivation Throughout A...
 
Professional Software Development, Practices and Ethics
Professional Software Development, Practices and EthicsProfessional Software Development, Practices and Ethics
Professional Software Development, Practices and Ethics
 
Sailor moon
Sailor moonSailor moon
Sailor moon
 
Artikel FI
Artikel FIArtikel FI
Artikel FI
 
Grafico diario del dax perfomance index para el 11 12-2013
Grafico diario del dax perfomance index para el 11 12-2013Grafico diario del dax perfomance index para el 11 12-2013
Grafico diario del dax perfomance index para el 11 12-2013
 
Duke
DukeDuke
Duke
 
2.7 mbonfim
2.7 mbonfim2.7 mbonfim
2.7 mbonfim
 
Top 6 Data Blogs
Top 6 Data BlogsTop 6 Data Blogs
Top 6 Data Blogs
 
Ready Player One - Week 2 Check-in
Ready Player One - Week 2 Check-inReady Player One - Week 2 Check-in
Ready Player One - Week 2 Check-in
 
Система Постройком
Система ПостройкомСистема Постройком
Система Постройком
 
Brochure about Stanford Corporate Governance Research Initiative
Brochure about Stanford Corporate Governance Research InitiativeBrochure about Stanford Corporate Governance Research Initiative
Brochure about Stanford Corporate Governance Research Initiative
 
Alimentazione americana e Mc donald' s Vittoria Tomas
Alimentazione americana e Mc donald' s Vittoria TomasAlimentazione americana e Mc donald' s Vittoria Tomas
Alimentazione americana e Mc donald' s Vittoria Tomas
 
獅子山下女同志
獅子山下女同志獅子山下女同志
獅子山下女同志
 
Functional Programming in Groovy
Functional Programming in GroovyFunctional Programming in Groovy
Functional Programming in Groovy
 

Similar to Başarılı Projelerin Anahtarı: Çevik Yazılım Geliştirme Pratikleri

E-ticarette Bilgi Teknolojileri - Bilgi Üniversitesi E-ticaret Akademi 2012.0...
E-ticarette Bilgi Teknolojileri - Bilgi Üniversitesi E-ticaret Akademi 2012.0...E-ticarette Bilgi Teknolojileri - Bilgi Üniversitesi E-ticaret Akademi 2012.0...
E-ticarette Bilgi Teknolojileri - Bilgi Üniversitesi E-ticaret Akademi 2012.0...Hakan ERDOGAN
 
İyi yazılım mühendisi nasıl olunur? En doğru kariyer adımları nasıl atılır?
İyi yazılım mühendisi nasıl olunur? En doğru kariyer adımları nasıl atılır?İyi yazılım mühendisi nasıl olunur? En doğru kariyer adımları nasıl atılır?
İyi yazılım mühendisi nasıl olunur? En doğru kariyer adımları nasıl atılır?Ahmet Başaran
 
E-ticarette Yazılım ve Altyapı
E-ticarette Yazılım ve AltyapıE-ticarette Yazılım ve Altyapı
E-ticarette Yazılım ve AltyapıMurat Kader
 
Web İçin Teknoloji Geliştirmek
Web İçin Teknoloji GeliştirmekWeb İçin Teknoloji Geliştirmek
Web İçin Teknoloji GeliştirmekVolkan Özçelik
 
Programlama projeleri
Programlama projeleriProgramlama projeleri
Programlama projelerisersld96
 
Mobil Pentest Eğitim Dökümanı
Mobil Pentest Eğitim DökümanıMobil Pentest Eğitim Dökümanı
Mobil Pentest Eğitim DökümanıAhmet Gürel
 
Agile (cevik) yaklasim_ile_scrum_yontemi-savas-dogan-cc-by
Agile (cevik) yaklasim_ile_scrum_yontemi-savas-dogan-cc-byAgile (cevik) yaklasim_ile_scrum_yontemi-savas-dogan-cc-by
Agile (cevik) yaklasim_ile_scrum_yontemi-savas-dogan-cc-bySavaş DOĞAN
 
0 btg - urun gelistirme yasam donugusu cozumleri (borland ve embarcadero) ara...
0 btg - urun gelistirme yasam donugusu cozumleri (borland ve embarcadero) ara...0 btg - urun gelistirme yasam donugusu cozumleri (borland ve embarcadero) ara...
0 btg - urun gelistirme yasam donugusu cozumleri (borland ve embarcadero) ara...BTGrubu
 
Açık Kaynak Kodlu Yazılım Geliştirme
Açık Kaynak Kodlu Yazılım GeliştirmeAçık Kaynak Kodlu Yazılım Geliştirme
Açık Kaynak Kodlu Yazılım GeliştirmeSerkan Kaba
 
Programlama danismani
Programlama danismaniProgramlama danismani
Programlama danismanisersld96
 
Eticaret akademi Yazılım ve IT süreçleri
Eticaret akademi Yazılım ve IT süreçleriEticaret akademi Yazılım ve IT süreçleri
Eticaret akademi Yazılım ve IT süreçleriMurat Kader
 
Yazılım Mimarileri - Yazılım Geliştirme Modelleri
Yazılım Mimarileri - Yazılım Geliştirme ModelleriYazılım Mimarileri - Yazılım Geliştirme Modelleri
Yazılım Mimarileri - Yazılım Geliştirme ModelleriKubra Kose
 
What is Raspberry Pi and Using
What is Raspberry Pi and Using What is Raspberry Pi and Using
What is Raspberry Pi and Using o__duman
 
Vhdl seminerleri
Vhdl seminerleriVhdl seminerleri
Vhdl seminerlerisersld80
 
Meteor.js Hakkinda
Meteor.js HakkindaMeteor.js Hakkinda
Meteor.js HakkindaUğur Oruc
 
Çevik Manifesto Sunum
Çevik Manifesto Sunum Çevik Manifesto Sunum
Çevik Manifesto Sunum ERCAN CETIN
 
Mobil uygulamalarda tasarım süreçleri - Devfest Sivas 15
Mobil uygulamalarda tasarım süreçleri - Devfest Sivas 15Mobil uygulamalarda tasarım süreçleri - Devfest Sivas 15
Mobil uygulamalarda tasarım süreçleri - Devfest Sivas 15Hasan Yalcin
 
Hepsiburada Micro Frontends Dönüşümü
Hepsiburada Micro Frontends DönüşümüHepsiburada Micro Frontends Dönüşümü
Hepsiburada Micro Frontends DönüşümüOğuzhan Aslan
 
Analist_Test_CetinKaya
Analist_Test_CetinKayaAnalist_Test_CetinKaya
Analist_Test_CetinKayaÇetin Kaya
 

Similar to Başarılı Projelerin Anahtarı: Çevik Yazılım Geliştirme Pratikleri (20)

E-ticarette Bilgi Teknolojileri - Bilgi Üniversitesi E-ticaret Akademi 2012.0...
E-ticarette Bilgi Teknolojileri - Bilgi Üniversitesi E-ticaret Akademi 2012.0...E-ticarette Bilgi Teknolojileri - Bilgi Üniversitesi E-ticaret Akademi 2012.0...
E-ticarette Bilgi Teknolojileri - Bilgi Üniversitesi E-ticaret Akademi 2012.0...
 
İyi yazılım mühendisi nasıl olunur? En doğru kariyer adımları nasıl atılır?
İyi yazılım mühendisi nasıl olunur? En doğru kariyer adımları nasıl atılır?İyi yazılım mühendisi nasıl olunur? En doğru kariyer adımları nasıl atılır?
İyi yazılım mühendisi nasıl olunur? En doğru kariyer adımları nasıl atılır?
 
E-ticarette Yazılım ve Altyapı
E-ticarette Yazılım ve AltyapıE-ticarette Yazılım ve Altyapı
E-ticarette Yazılım ve Altyapı
 
Web İçin Teknoloji Geliştirmek
Web İçin Teknoloji GeliştirmekWeb İçin Teknoloji Geliştirmek
Web İçin Teknoloji Geliştirmek
 
Programlama projeleri
Programlama projeleriProgramlama projeleri
Programlama projeleri
 
Mobil Pentest Eğitim Dökümanı
Mobil Pentest Eğitim DökümanıMobil Pentest Eğitim Dökümanı
Mobil Pentest Eğitim Dökümanı
 
Agile (cevik) yaklasim_ile_scrum_yontemi-savas-dogan-cc-by
Agile (cevik) yaklasim_ile_scrum_yontemi-savas-dogan-cc-byAgile (cevik) yaklasim_ile_scrum_yontemi-savas-dogan-cc-by
Agile (cevik) yaklasim_ile_scrum_yontemi-savas-dogan-cc-by
 
0 btg - urun gelistirme yasam donugusu cozumleri (borland ve embarcadero) ara...
0 btg - urun gelistirme yasam donugusu cozumleri (borland ve embarcadero) ara...0 btg - urun gelistirme yasam donugusu cozumleri (borland ve embarcadero) ara...
0 btg - urun gelistirme yasam donugusu cozumleri (borland ve embarcadero) ara...
 
Açık Kaynak Kodlu Yazılım Geliştirme
Açık Kaynak Kodlu Yazılım GeliştirmeAçık Kaynak Kodlu Yazılım Geliştirme
Açık Kaynak Kodlu Yazılım Geliştirme
 
Programlama danismani
Programlama danismaniProgramlama danismani
Programlama danismani
 
Eticaret akademi Yazılım ve IT süreçleri
Eticaret akademi Yazılım ve IT süreçleriEticaret akademi Yazılım ve IT süreçleri
Eticaret akademi Yazılım ve IT süreçleri
 
Yazılım Mimarileri - Yazılım Geliştirme Modelleri
Yazılım Mimarileri - Yazılım Geliştirme ModelleriYazılım Mimarileri - Yazılım Geliştirme Modelleri
Yazılım Mimarileri - Yazılım Geliştirme Modelleri
 
What is Raspberry Pi and Using
What is Raspberry Pi and Using What is Raspberry Pi and Using
What is Raspberry Pi and Using
 
Jenkins
JenkinsJenkins
Jenkins
 
Vhdl seminerleri
Vhdl seminerleriVhdl seminerleri
Vhdl seminerleri
 
Meteor.js Hakkinda
Meteor.js HakkindaMeteor.js Hakkinda
Meteor.js Hakkinda
 
Çevik Manifesto Sunum
Çevik Manifesto Sunum Çevik Manifesto Sunum
Çevik Manifesto Sunum
 
Mobil uygulamalarda tasarım süreçleri - Devfest Sivas 15
Mobil uygulamalarda tasarım süreçleri - Devfest Sivas 15Mobil uygulamalarda tasarım süreçleri - Devfest Sivas 15
Mobil uygulamalarda tasarım süreçleri - Devfest Sivas 15
 
Hepsiburada Micro Frontends Dönüşümü
Hepsiburada Micro Frontends DönüşümüHepsiburada Micro Frontends Dönüşümü
Hepsiburada Micro Frontends Dönüşümü
 
Analist_Test_CetinKaya
Analist_Test_CetinKayaAnalist_Test_CetinKaya
Analist_Test_CetinKaya
 

More from Lemi Orhan Ergin

Clean Software Design: The Practices to Make The Design Simple
Clean Software Design: The Practices to Make The Design SimpleClean Software Design: The Practices to Make The Design Simple
Clean Software Design: The Practices to Make The Design SimpleLemi Orhan Ergin
 
Unwritten Manual for Pair Programming
Unwritten Manual for Pair ProgrammingUnwritten Manual for Pair Programming
Unwritten Manual for Pair ProgrammingLemi Orhan Ergin
 
10 Faulty Behaviors of Code Review - Developer Summit Istanbul 2018
10 Faulty Behaviors of Code Review - Developer Summit Istanbul 201810 Faulty Behaviors of Code Review - Developer Summit Istanbul 2018
10 Faulty Behaviors of Code Review - Developer Summit Istanbul 2018Lemi Orhan Ergin
 
Irresponsible Disclosure: Short Handbook of an Ethical Developer
Irresponsible Disclosure: Short Handbook of an Ethical DeveloperIrresponsible Disclosure: Short Handbook of an Ethical Developer
Irresponsible Disclosure: Short Handbook of an Ethical DeveloperLemi Orhan Ergin
 
Scrum Events and Artifacts in Action
Scrum Events and Artifacts in ActionScrum Events and Artifacts in Action
Scrum Events and Artifacts in ActionLemi Orhan Ergin
 
DevOps & Technical Agility: From Theory to Practice
DevOps & Technical Agility: From Theory to PracticeDevOps & Technical Agility: From Theory to Practice
DevOps & Technical Agility: From Theory to PracticeLemi Orhan Ergin
 
Fighting with Waste Driven Development - XP Days Ukraine 2017
Fighting with Waste Driven Development - XP Days Ukraine 2017Fighting with Waste Driven Development - XP Days Ukraine 2017
Fighting with Waste Driven Development - XP Days Ukraine 2017Lemi Orhan Ergin
 
Git Anti Patterns - XP Days Ukraine 2017
Git Anti Patterns - XP Days Ukraine 2017Git Anti Patterns - XP Days Ukraine 2017
Git Anti Patterns - XP Days Ukraine 2017Lemi Orhan Ergin
 
Waste Driven Development - Agile Coaching Serbia Meetup
Waste Driven Development - Agile Coaching Serbia MeetupWaste Driven Development - Agile Coaching Serbia Meetup
Waste Driven Development - Agile Coaching Serbia MeetupLemi Orhan Ergin
 
Git Anti-Patterns - Extended Version With 28 Common Anti-Patterns) - SCTurkey...
Git Anti-Patterns - Extended Version With 28 Common Anti-Patterns) - SCTurkey...Git Anti-Patterns - Extended Version With 28 Common Anti-Patterns) - SCTurkey...
Git Anti-Patterns - Extended Version With 28 Common Anti-Patterns) - SCTurkey...Lemi Orhan Ergin
 
Git Anti-Patterns: How To Mess Up With Git and Love it Again - DevoxxPL 2017
Git Anti-Patterns: How To Mess Up With Git and Love it Again - DevoxxPL 2017Git Anti-Patterns: How To Mess Up With Git and Love it Again - DevoxxPL 2017
Git Anti-Patterns: How To Mess Up With Git and Love it Again - DevoxxPL 2017Lemi Orhan Ergin
 
Git Anti-Patterns: How To Mess Up With Git and Love it Again
Git Anti-Patterns: How To Mess Up With Git and Love it AgainGit Anti-Patterns: How To Mess Up With Git and Love it Again
Git Anti-Patterns: How To Mess Up With Git and Love it AgainLemi Orhan Ergin
 
Clean Software Design - DevNot Summit Istanbul 2017
Clean Software Design - DevNot Summit Istanbul 2017Clean Software Design - DevNot Summit Istanbul 2017
Clean Software Design - DevNot Summit Istanbul 2017Lemi Orhan Ergin
 
Test Driven Design - GDG DevFest Istanbul 2016
Test Driven Design - GDG DevFest Istanbul 2016Test Driven Design - GDG DevFest Istanbul 2016
Test Driven Design - GDG DevFest Istanbul 2016Lemi Orhan Ergin
 
Let The Elephants Leave The Room - Remove Waste in Software Development - Bos...
Let The Elephants Leave The Room - Remove Waste in Software Development - Bos...Let The Elephants Leave The Room - Remove Waste in Software Development - Bos...
Let The Elephants Leave The Room - Remove Waste in Software Development - Bos...Lemi Orhan Ergin
 
Lost in Motivation in an Agile World
Lost in Motivation in an Agile WorldLost in Motivation in an Agile World
Lost in Motivation in an Agile WorldLemi Orhan Ergin
 
TDD - Inevitable Challenge for Software Developers (phpkonf15 keynote)
TDD - Inevitable Challenge for Software Developers (phpkonf15 keynote)TDD - Inevitable Challenge for Software Developers (phpkonf15 keynote)
TDD - Inevitable Challenge for Software Developers (phpkonf15 keynote)Lemi Orhan Ergin
 
Trespassing The Forgotten and Abandoned: Ethics in Software Development
Trespassing The Forgotten and Abandoned:  Ethics in Software DevelopmentTrespassing The Forgotten and Abandoned:  Ethics in Software Development
Trespassing The Forgotten and Abandoned: Ethics in Software DevelopmentLemi Orhan Ergin
 
Software Craftsmanship - Building A Culture For The Future (GDG DevFest Istan...
Software Craftsmanship - Building A Culture For The Future (GDG DevFest Istan...Software Craftsmanship - Building A Culture For The Future (GDG DevFest Istan...
Software Craftsmanship - Building A Culture For The Future (GDG DevFest Istan...Lemi Orhan Ergin
 
Teoriden Pratiğe Mikroservisler - Özgür Web Teknolojileri Günü 2014
Teoriden Pratiğe Mikroservisler - Özgür Web Teknolojileri Günü 2014Teoriden Pratiğe Mikroservisler - Özgür Web Teknolojileri Günü 2014
Teoriden Pratiğe Mikroservisler - Özgür Web Teknolojileri Günü 2014Lemi Orhan Ergin
 

More from Lemi Orhan Ergin (20)

Clean Software Design: The Practices to Make The Design Simple
Clean Software Design: The Practices to Make The Design SimpleClean Software Design: The Practices to Make The Design Simple
Clean Software Design: The Practices to Make The Design Simple
 
Unwritten Manual for Pair Programming
Unwritten Manual for Pair ProgrammingUnwritten Manual for Pair Programming
Unwritten Manual for Pair Programming
 
10 Faulty Behaviors of Code Review - Developer Summit Istanbul 2018
10 Faulty Behaviors of Code Review - Developer Summit Istanbul 201810 Faulty Behaviors of Code Review - Developer Summit Istanbul 2018
10 Faulty Behaviors of Code Review - Developer Summit Istanbul 2018
 
Irresponsible Disclosure: Short Handbook of an Ethical Developer
Irresponsible Disclosure: Short Handbook of an Ethical DeveloperIrresponsible Disclosure: Short Handbook of an Ethical Developer
Irresponsible Disclosure: Short Handbook of an Ethical Developer
 
Scrum Events and Artifacts in Action
Scrum Events and Artifacts in ActionScrum Events and Artifacts in Action
Scrum Events and Artifacts in Action
 
DevOps & Technical Agility: From Theory to Practice
DevOps & Technical Agility: From Theory to PracticeDevOps & Technical Agility: From Theory to Practice
DevOps & Technical Agility: From Theory to Practice
 
Fighting with Waste Driven Development - XP Days Ukraine 2017
Fighting with Waste Driven Development - XP Days Ukraine 2017Fighting with Waste Driven Development - XP Days Ukraine 2017
Fighting with Waste Driven Development - XP Days Ukraine 2017
 
Git Anti Patterns - XP Days Ukraine 2017
Git Anti Patterns - XP Days Ukraine 2017Git Anti Patterns - XP Days Ukraine 2017
Git Anti Patterns - XP Days Ukraine 2017
 
Waste Driven Development - Agile Coaching Serbia Meetup
Waste Driven Development - Agile Coaching Serbia MeetupWaste Driven Development - Agile Coaching Serbia Meetup
Waste Driven Development - Agile Coaching Serbia Meetup
 
Git Anti-Patterns - Extended Version With 28 Common Anti-Patterns) - SCTurkey...
Git Anti-Patterns - Extended Version With 28 Common Anti-Patterns) - SCTurkey...Git Anti-Patterns - Extended Version With 28 Common Anti-Patterns) - SCTurkey...
Git Anti-Patterns - Extended Version With 28 Common Anti-Patterns) - SCTurkey...
 
Git Anti-Patterns: How To Mess Up With Git and Love it Again - DevoxxPL 2017
Git Anti-Patterns: How To Mess Up With Git and Love it Again - DevoxxPL 2017Git Anti-Patterns: How To Mess Up With Git and Love it Again - DevoxxPL 2017
Git Anti-Patterns: How To Mess Up With Git and Love it Again - DevoxxPL 2017
 
Git Anti-Patterns: How To Mess Up With Git and Love it Again
Git Anti-Patterns: How To Mess Up With Git and Love it AgainGit Anti-Patterns: How To Mess Up With Git and Love it Again
Git Anti-Patterns: How To Mess Up With Git and Love it Again
 
Clean Software Design - DevNot Summit Istanbul 2017
Clean Software Design - DevNot Summit Istanbul 2017Clean Software Design - DevNot Summit Istanbul 2017
Clean Software Design - DevNot Summit Istanbul 2017
 
Test Driven Design - GDG DevFest Istanbul 2016
Test Driven Design - GDG DevFest Istanbul 2016Test Driven Design - GDG DevFest Istanbul 2016
Test Driven Design - GDG DevFest Istanbul 2016
 
Let The Elephants Leave The Room - Remove Waste in Software Development - Bos...
Let The Elephants Leave The Room - Remove Waste in Software Development - Bos...Let The Elephants Leave The Room - Remove Waste in Software Development - Bos...
Let The Elephants Leave The Room - Remove Waste in Software Development - Bos...
 
Lost in Motivation in an Agile World
Lost in Motivation in an Agile WorldLost in Motivation in an Agile World
Lost in Motivation in an Agile World
 
TDD - Inevitable Challenge for Software Developers (phpkonf15 keynote)
TDD - Inevitable Challenge for Software Developers (phpkonf15 keynote)TDD - Inevitable Challenge for Software Developers (phpkonf15 keynote)
TDD - Inevitable Challenge for Software Developers (phpkonf15 keynote)
 
Trespassing The Forgotten and Abandoned: Ethics in Software Development
Trespassing The Forgotten and Abandoned:  Ethics in Software DevelopmentTrespassing The Forgotten and Abandoned:  Ethics in Software Development
Trespassing The Forgotten and Abandoned: Ethics in Software Development
 
Software Craftsmanship - Building A Culture For The Future (GDG DevFest Istan...
Software Craftsmanship - Building A Culture For The Future (GDG DevFest Istan...Software Craftsmanship - Building A Culture For The Future (GDG DevFest Istan...
Software Craftsmanship - Building A Culture For The Future (GDG DevFest Istan...
 
Teoriden Pratiğe Mikroservisler - Özgür Web Teknolojileri Günü 2014
Teoriden Pratiğe Mikroservisler - Özgür Web Teknolojileri Günü 2014Teoriden Pratiğe Mikroservisler - Özgür Web Teknolojileri Günü 2014
Teoriden Pratiğe Mikroservisler - Özgür Web Teknolojileri Günü 2014
 

Başarılı Projelerin Anahtarı: Çevik Yazılım Geliştirme Pratikleri

  • 1.
  • 2. BAŞARILI PROJELERİn ANAHTARI ÇevİK YAZILIM GELİŞTİRME PRATİKLERİ Lemi Orhan Ergin Principal Software Engineer / Yazılım Ustası Sony Europe
  • 3. HİÇ yazılım projenİz Başarisiz oldu mu? Projeyi zamanında yetistiremedik , Daha canlıya çıkamadan iptal ettik Canlıda sürekli hata buluyorum Mevcut yazılımı bastan yazmamız gerek , - Proje uzadıkça uzadı, bitecek gibi degil - Yazılım istedigim gibi olmamıs , İstedigim özellikleri eklemiyorlar Ufak özellikler için bile çok para istiyorlar Bir kisi isten ayrıldı, proje çıkmaza girdi , -, Yazılımı gelistiren takım sürekli degisiyor , Yazılım mimarisi çok eskiymis , - , Projenin basarısız olacagı asikardı aslında , Proje güzel giderken ne oldu da birden battı
  • 4. Yazılım Projelerİ BAŞARISIZ “Tükiye'deki projelerin %50'si çöpe gidiyor” Agile Turkey - “Gerçek masraflar eklendiginde teknoloji projelerinin %80'i zarar ediyor” Mercer Consulting
  • 5. karİyeRİm boyunca 11 büyük çaplı projede çalıştım Kalıpçılık endüstrisi için B2B eticaret sitesi IBM tabanlı ürün bilgisi yönetim sistemi Avrupa için ürün bilgisi yönetim sistemi Askeri belge yönetim sistemi Tüm Avrupa ülkeleri için pazarlama siteleri Tüm Avrupa siteleri için ortak araç çubuğu Ana arkaplan bileşenleri, uygulamaları ve API'leri Avrupa için ana veri servisleri Avrupa için müşteriye özel veri servisleri ABD ve Kanada için çekirdek veri servisleri E-ticaret dikey ürün satış modulü
  • 6. karİyeRİm boyunca 11 büyük çaplı projede çalıştım 6 tanesİ HİÇ CANLIYA ÇIKMADI/KAPANDI/KAPANACAK Kalıpçılık endüstrisi için B2B eticaret sitesi IBM tabanlı ürün bilgisi yönetim sistemi Avrupa için ürün bilgisi yönetim sistemi Askeri belge yönetim sistemi Tüm Avrupa ülkeleri için pazarlama siteleri Tüm Avrupa siteleri için ortak araç çubuğu Ana arkaplan bileşenleri, uygulamaları ve API'leri Avrupa için ana veri servisleri Avrupa için müşteriye özel veri servisleri ABD ve Kanada için çekirdek veri servisleri E-ticaret dikey ürün satış modulü
  • 7. BAŞARISIZLIK kaçınılmaz ÇÜNKÜ BAŞARISIZ OLMAK İÇİN ÇOK NEDEN VAR Bilinmeyen gereksinimler Basarısız takım çalısması , , Tanrı yazılımcılar - Teknik bilgi eksikligi Yanlıs ürün gelistirme , , Sürekli mesai ve verimsiz günler Yanlıs tasarım ya da kodlama Yönetim zaafları , Kaliteden verilen ödünler Sorunları müsteriden gizleme Eksik belgeleme , Sunucu ve altyapı sorunları Test edilmeden gelistirme , İletisim eksiklikleri , Gereksiz özelliklere odaklanma Canlıda çıkan hatalar Kullanılan yanlıs araçlar , Yazılımı sadece kodlama sanmak
  • 8. Pekİ DÜNYADA BAŞARILI yazılımlar NASIL GELİŞTİRİLİYOR? diye sormak hakkınız
  • 9. ÇEVİK YAZILIM GELİŞTİRME PRATİKLERİ basarısı tecrübe ile sabit, dünyaca kabul görmüs, , , basarılı sonuçlar elde eden yazılımlar gelistirmek için , , - gereken yazılım pratikleri toplulugudur
  • 10. ÇEVİK YAZILIM GELİŞTİRME PRATİKLERİ 4 Ana kavram üzerİNE KURULMUŞTUR
  • 13. Takım çalışması
  • 15. ÇEVİK YAZILIM GELİŞTİRME PRATİKLERİ NelerdİR?
  • 16. MüŞTERİ İLE DÜZENLİ OLARAK GÖZDEN GEÇİRİN Proje kapsamını küçük parçalara bölün Herseyi en bastan planlamaya kalkmayın , , Kısa döngülerle yazılım gelistirin ,
  • 17. EĞER sistemi bozan yeni özellikler, koda dokunmaktan korkan yazılımcılar, ömrünü bitirmis projeler, , , - nasıl çalıstıgı anlasılmayan kodlar, , son anda ortaya çıkan hatalar, uzun test etme süreleri, bitmeyen projeler İSTEMİYORSANIZ Test edİLEBİLİR KOD YAZIN Yazılımı TDD İLE GELİŞTİRİN Çok katmanda test edİN
  • 18. Hata ÇÖZMEDEN ÖNCE MUTLAKA TEST YAZARAK HATAYI YENİDEN YARATIN TESTİ YAZILMAMIŞ HATALAR BİR GÜN YENİDEN HORTLAR
  • 19. Kodu süreklİ YENİDEN YAPILANDIRIN (REFACTOrıNG) Süreklİ tümleştİRME İLE HATALARI ANINDA FARKEDİN (CONTINUOUS INTEGRATION)
  • 20. EşLİ PROGRAMLAMA YAPIN (PAIR PROGRAMMING) YAZILan KODLARI TAKIMCA İNCELEYİN (CODE REVıEW)
  • 21. TemİZ KOD YAZIM KURALLARINA UYUN (CLEAN CODE) KOD ANALİZİ ARAÇLARI İLE GİZLİ HATALARI BULUN (CODE ANALYSIS) KODUNUZU VERSİYONLAYIN VE HER FIRSATTA DALLANDIRIN (CODE VERSIONING & BRANCHING)
  • 22. Kısa aralıklarla sürüm çıkın (short releases) Ön Tasarımı kısa tutun (short up-front design) YeteRİ KADAR BELGELEYİN (AGILE DOCUMENTATION) GELECEĞİ NETLEŞTİRMEYE ÇALIŞMAYIN ÇALIŞMALARINIZIN EVRİMLEŞMESİNE İZİN VERİN
  • 23. İç Eğİtİmler ORGANİZE EDİN BIRAKIN Çalışanlar İş arkadaşlarını eğİTSİN
  • 24. ÇEVİK YAZILIM GELİŞTİRME PRATİKLERİ Başarılı projeler gelİştİrmenİzİ sağlar  Müsteri ile düzenli olarak gözden geçirin. ,  Test edilebilir kod yazın, yazılımı TDD ile gelistirin, çok katmanlı test edin. ,  Kodu sürekli yeniden yapılandırın (refactoring)  Sürekli tümlestirme ile hataları anında farkedin (continuous integration) ,  Esli programlama yapın (pair programming) ,  Yazılan kodları takımca inceleyin (code review)  Temiz kod yazım kurallarına uyun (clean code)  Kod analizi araçları ile gizli hataları bulun (code analysis)  Kodunuzu versiyonlayın ve her fırsatta dallandırın (versioning & branching)  Kısa aralıklarla sürüm çıkın (short releases)  Ön tasarımı kısa tutun (short up-front design)  Yeteri kadar belgeleyin (agile documentation) -  Bırakın çalısanlar is arkadaslarını egitsinler (internal trainings) , ,
  • 25. referanslar “Yazılım projeleri çöpe gidiyor” - Agile Turkey http://www.agileturkey.org/Haberler/Detay/Yazilim-Projeleri-Cope-Gidiyor “Software Project Failure Costs Billions..” - Galorath Incorporated http://www.galorath.com/wp/software-project-failure-costs-billions-better-estimation-planning-can-help.php Kullanılan resİmler http://commons.wikimedia.org/wiki/File:Train_wreck_at_Montparnasse_1895_2.jpg http://www.publicdomainpictures.net/view-image.php?image=19963&picture=sad-woman http://vetton.ru/61345/ http://wnyinjurylawyers.com/assets/slider-slip.jpg http://blackboardmktg.com/wp-content/uploads/2011/11/blackboard-backgrounds-wallpapers.jpeg http://www.acclaimimages.com/_gallery/_image_pages/0420-1010-1615-0910.html http://nutrition.about.com/od/tryingtogainweight/tp/foodstogainweight.htm http://www.journalofappliedecology.org/view/0/editorschoice491.html http://blog.cathysparkle.com/the-truth-about-soap/ http://www.delawareonline.com/blogs/2008/09/he-pingping.html http://www.gemdiamonds.com/gem/image_uploads/backgrounds/1cuttingpolish.jpg http://icedcoffee.deviantart.com/art/Zombies-145858724 http://www.lookfordiagnosis.com/mesh_info.php?term=Quadruplets&lang=1
  • 26. linkedin @lemiorhan blogger slideshare twitter @lemiorhan @lemiorhan Lemİ orhan ergİn agilistanbul.com lemiorhan@agilistanbul.com Principal Software engineer / yazılım ustası Sony europe