2. Lemİ Orhan Ergİn
yılından bu yana Sony’de Yazılım Ustası
yılından bu yana Tüsside, BYM,
GittiGidiyor/eBay ve Sony’de yazılımcı,
takım lideri, teknik koordinatör ve SM
yılında Jim Coplien tarafından CSM
sertifikası
seneden fazla Scrum Master’lık
sprint ve Scrum takımlarında Scrum
Master ve takım elemanı olarak 4 sene
dönüsüm, yazılım takımlarında ve
organizasyonlarda çevik kültür insaası
konularında deneyim
2001
2012
2009
1
56
agile
,
,
@lemiorhan
4. Projeyi yetiştiremedik, ek süre istiyoruz
Yetiştirmemiz imkansız, ama söz verdik bir kere
Daha canlıya çıkmadan iptal ediyoruz
Canlıda sürekli hatalarla karşılaşıyoruz
Mevcut yazılımı baştan yazmamız gerek
Proje uzadıkça uzadı, bitecek gibi de görünmüyor
Projenin başarısız olacağı aşikardı aslında
Proje güzel giderken ne oldu da birden battı
“
”Proje yönetİMİ / Takım
5. İstenen özellikleri eklemek çok maliyetli
Bir kişi ayrıldı proje çıkmaza girdi
Geliştiren takımda çalışanlar sürekli değişiyor
Yazılımın mimarisi ve teknolojisi çok eski
Bir hata çözüyorum yeni hatalar oluşuyor
Bazı modüllere yıllardır kimse dokunmamış
Hata çözmekten yeni özellik ekleyemiyorum
Aynı manuel testleri defalarca kez tekrarlıyoruz
“
”Yazılım gelİŞTİRİCİ
7. 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ü
Her bİRİ
EN AZ 6 AYLIK
PROJELERDİ
8. 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 tanesİ
Ya hİç canlıya çıkmadı
ya kapandı
ya kapanacak
%55
16. Nİhaİ hedef
müşterİ memnunİyetİdİr
1
Müşterinin talep ettiği yazılımda
istediği özelliklere hızlı bir şekilde
sahip olma hakkı vardır
tabi müsterinizin bu kadar mutlu
etmeyi basaramayabilirsiniz,
,
30. ÇevİK yazılım geLİŞTİRME SADECE
PROJE PLANLAMASIndaN İBARET DEĞİLDİR
Proje planlaması çevik yazılım geliştirmenin bir bölümüdür
31. ÇevİK yazılım geLİŞTİRME
Proje planlama ve yönetimi
Yazılım geliştirme pratikleri
Müşteri memnuniyeti
Takım çalışması
Motivasyon
Biz burası üzerinde duracagız,
-
36. HIZLI GERİBİLDİRİM
Çevik yöntemler ve yalınlık şunlara odaklanır:
YAVAŞ GERİBİLDİRİMİ HIZLANDIRMAK
BİR PROJEYİ
ÇEVİK Pratİkler
KULLANARAK GELİŞTİRELİM
37. Çalışanlarınızı “kaynak”tan ziyade birer “yetenek” olarak görün (No headcount calculation)
Bilgi ve tecrübeyi paylaşmaktan zevk alan kişilerle çalışın (Collaborative & Volunteer)
Çevik yöntemler ve pratikler hakkında eğitim verin (Up-Front Education)
Takımda tutkulu ve disiplinli yazılımcılar bulundurun (Passionate Developer)
En iyi teknolojiyi değil, en ucuza değişiklik yapabileceğiniz teknolojileri seçin.
Proje Öncesİ
Yazılım Geliştici
İş Analisti
Test Mühendisi
Ürün Sahibi
38. Yazılım
Geliştici
Farklı görevlerden insanlarla takım oluşturun (Cross functional teams)
Takım elemanları olarak birbirinize yakın oturun (Sitting CLOSE)
İlk önce, geribildirim alabileceğiniz asgari özellikleri yazın (Minimum Viable Product)
Müşteriye değer katacak özelliklere odaklanın (Prioritization)
Proje öncesi uzun detaylı tasarımdan kaçının (Short Up-Front Design)
Detaylı belgeleme yerine yeteri kadar belge oluşturun (Agile Documentation)
Çevik olabilmeniz için gerekli teknik altyapıyı kurun
Projeye Hazırlık
İş Analisti
Test
Mühendisi
39. Sürüm
Kontrol
Sistemi
Yazılım
Geliştici
İş Analisti
Test
Mühendisi
Yazılan kodu mutlaka sürüm kontrol sisteminde tutun (Version Control System)
Eşli programlama yapın (Pair Programming)
Başkalarının yazdığı kodu gözden geçirin (Code/Peer Review)
Yeni her geliştirmeyi farklı bir dalda yapın (Code Branching)
Temiz kod prensiplerini takip edin (Clean Code Principles)
Teknik yetenekleri geliştirebilmek için düzenli kod kataları yapın (Code Kata)
Tasarım şablonları yanında, mimari ve deyimsel şablonları da kullanın (Idiomatic Patterns)
BDD ile müşteri gözünden tasarlayın (Behaviour Driven Development)
TDD ile yazılımcı gözünden tasarlayın (Test Driven Development)
YAZILIM GELİŞTİRME ve Sosyal Programlama
40. Mesajlaşma Servisleri (eposta, mesaj)
Sürekli
Bütünleştirme
Sürüm
Kontrol
Sistemi
Her gün en az bir kere başkalarının komitlerini alın ve bütünleştirin (Continuous Integration)
Yazılmış testleri anında çalıştırın ve geribildirim alın (Continuous Build)
Kodunuzda test edilmemiş yerleri bulup testlerinizi iyileştirin (Code Coverage)
Silmekten korkmayın, tasarımı testler yardımıyla yenileyin (Refactoring)
Tüm döngünün bitmesi ve geribildirim alman en fazla 10 dakika sürsün (10 min build)
Süreklİ BÜTÜNLEŞTİRME (Continuous INTEGRATION)
Yazılım
Geliştici
İş Analisti
Test
Mühendisi
41. Paket/Sürüm Deposu
Mesajlaşma Servisleri (eposta, mesaj)
Sürekli
Dağıtım
Sürüm
Kontrol
Sistemi
Yazılım
Geliştici
İş Analisti
Test
Mühendisi
Her gün çalışan kodun bir kopyasını canlıya çıkabilecekmiş gibi hazırlayın (SNAPSHOT)
Kodun çalışan son hali daima depoda ya da CVS’de hazır bulunsun (Continuous delivery)
Süreklİ DAĞITIM (Continuous Delivery)
42. DEV TEST & QA STAGING PROD
Yazılımcıların deney yapabileceği, uygulamayı test edebileceği bir ortam kurun (DEV)
Performans ve yük testlerinin yapılabileceği ayrı bir ortamınız olsun (TEST/QUALITY ASSURANCE)
Canlı öncesi kullanıcı kabul testlerinin yapılabileceği bir ortam bulundurun (STAGING/UAT/SIT)
GelİŞTİRME ORTAMLARI (development Environments)
43. Paket/Sürüm Deposu
Mesajlaşma Servisleri (eposta, mesaj)
Sürüm
Kontrol
Sistemi
Yazılım
Geliştici
İş Analisti
Test
Mühendisi
Kısa aralıklarla sürüm çıkın (SHORT RELEASES)
Tek tıkla sürüm çıkabilecek teknik altyapıyı kurun (Continuous DEPLOYMENT)
Uygulamaların sürüm çıkma ve açılma sürelerini hızlandırın (Fast bootup)
Yazılım geliştirmeden ve BT operasyonlarından anlayan DevOps’lar yetiştirin (DEVOPS)
SÜRÜM ÇIKMA
DEV
TEST & QA
STAGING
PROD
Sürekli
Sürüm
45. eXtreme Programming pratikleri olmadan çevik olmaktan sözetmek
anlamsızdır. XP ise ancak tutkulu yazılımcılar ile başarılır.“
”İsa Göksu
Agile Practice Lead