ceturk cevik günü
DESCRIPTION
dev \ efor sunumuTRANSCRIPT
dev \ efor projesi ve
çevik yöntemler
Ersan Bilik
Gündem
• dev \ efor ne yapar ?• Nasıl geliştirdik ?• Ne tür zorluklarla karşılaştık ?• Çevik yöntemleri (ve pratiklerini) nasıl
kullandık ?• Kim ne dedi ?• Sonuç
dev \ efor ne yapar ?
Typical Man / Month ? Try dev \ efor
dev \ efor ne yapar ?
DEMO
Nasıl geliştirdik ?
• Herşey bir soruyla başladı.– What is developer and team productivity and how
can we measure it in software engineering field ?
• Bu soruya cevap vermek zor...
Örnek Verelim
• Geliştiricinin kaç satır kod yazdığı bir ölçü mü ?– Measuring performance by more lines of code
number is like considering a plane better than other because it weights more. ( Bill Gates )
• Geliştiricinin ne kadar iş üzerinde çalıştığı bir ölçü mü ?– Nothing is done between 9:00 – 17:00
( Timothy Lister)
Single Point MeasurementF(t) Project 1 Project 2 Project 3 Project 4 Project 5
SLOC 100 150 1250 2000 10000
CC 10 15 120 210 1500
MI 95 80 70 68 60
DIT 4 3 2 3 5
Steve McConnell der ki
Remember that trends are usually more important than single-point measures.Measures of individual productivity tend to be far less useful in comparing one individual to another than they are in seeing how one individual is progressing over time.
Mevcut durum analizi
• Ölçüm yapmak zor.– Araçlar, sürece müdahele ediyor.– Sırf ölçüm yapmak için, araç satın alınıyor.– Araç uzmanları var.– Veriyi yorumlayan uzmanlar var.– etc, etc...– DEĞER YOK !
Oysa cennette...
Ölçüm, mevcut sürece herhangi bir müdahele etmeden, otomatik olarak yapılır, saklanır, raporlar hazırlanır, gelecek “predict” edilebilir.
Bunu başarabilir miyiz ?
• Iteration 0 (Proof of Concept )– Teknik olarak mümkün müdür ?– Hangi platform baz alınacaktır ?– Hangi teknolojiler kullanılacaktır ?– Teknik riskler neler ?– Hangi varsayımlar yapılacaktır ?– Kısıtlar nedir ?
Iterasyon 0
• .NET platformunda yapılacak• .NET geliştirme ortamına (Visual Studio)
mantıksal bir sensör yerleştirilecek• Veriler merkezde konsolide edilecek• Yöneticilere metrik raporları sunulacak
Mimari
Reprospective 0
• Geçen süre - 4 Ay• Tahminlerimize yakın mıyız ? – 1 ay gecikmeli• Yapılabilirlik durumu – Yapılabilir• Riskler – Yüksek Riskler var
Iteration 1 – start the engines
• Mevcut kodu yapılandır ( refactor ) ve modüler hale getir
• Test Driven Development pratiğini uygula• Continious Integration uygula– Hergün 2 release• Debug Build: Her check-in sonrası (CI)• Nightly Build : Her gece sürüm çıkar
Reprospective 1
• Geçen Süre – 3 Ay• Tahminlerimize yakın mıyız ? – Evet• Riskler – Normal riskler var
Risk değerlendirmesi
• Metrikleri konsolide edemiyoruz !• Aktif ve Akışkan zamanlar kendi başlarına bir
değer katmıyor. Ancak, atanan bir görev olduğu taktirde değer ifade ediyor.
• Geliştiricinin “ben şu iş üzerinde çalışıyorum” demesi önemli.
Iteration 2 – polish the engines
• Ürünün kapsamı, Visual Studio ve Team Foundation Server ile entegre olacak şekilde değiştirildi.
• Web arayüzü ve ilgili modülleri tamamen kaldır
• Sadece visual studio kullanan geliştiricilerin kullanacağı bileşeni topluluk sürümü olarak bedava yayınla, geri besleme al, testleri yaptır.
Budur.
Reprospective 2
• Geçen Süre – 2 Ay• Tahminlerimize yakın mıyız ? – Evet• Riskler – Risk kalmadı. Projenin kapsamı ve
yapılacak işler gayet net.
Iteration 3 – rock solid engines !
• Geribeslemelerden aldığımız kullanıcı şikayetlerini değerlendir– Bazı bileşen bağımlılıklarını kaldır– Bugları düzelt– Refactor, refactor, refactor !
Reprospective 3
• Geçen Süre – 1 ay• Tahminlerimize yakın mıyız ? - Tam üstündeyiz• 2. sürüm yayınlandı.
Iteration 4 – Finish him !
• VS Client Enterprise sürüm için özelleştirmeleri yap
• Offline çalışma zamanı gerçekleştir• TFS Sunucu ambarını özelleştir• Takım projelerinin metrik verileri ile
geliştiricilerin efor metriklerini, onlara atanan görevler ile ilişkilendir
Budur.
Reprospective 4
• Kurumsal sürüm, mart ayının ilk haftasında yayımlanacak. ( Beta Sürümü )
• Tahminlerimize yakınız.
Bir Sonra...
• Production ( 1 Haziran )
Altyapımız...
• .NET Geliştirme ortamı ( VS Team System & TFS Server )
Aslında hangi süreci uyguladık ?
• Melez• RUP’tan biraz, ( Inception , Elaboration )
Scrum’dan biraz ( genel proje yönetimi ) XP’den biraz (TDD, Continious Integration, Courage etc..)
• AgileCodartUP
Key Notes...
• Çevik süreçler din, siz de mürit DEĞİLSİNİZ !– En iyi süreç, size ne yapmanız gerektiğini
dayatmayan süreçtir.– En iyi süreç, üzerinize en iyi uyan elbise gibidir.– Olmuyorsa, zorlamayın. Yöneticiniz zorluyorsa,
yöneticinize klavyeyi uzatın ve “sen daha iyi yazıyormuşsun duyduğuma göre” deyin • TDD hikayesi...
Ne dediler ?• This looks very interesting ! Please let me know when you release
the product.– Steve McConnell ( CEO , Construx Software )
• Cool Concept. The key benefit i see here is not to ask anything from developer except to install it.– Eric Sink ( CEO , SourceGear )
• This looks very cool !– Scott Guthrie ( VP of Dev Division, Microsoft )
• These are indeed important improvements because it’s the trend that can really tell the story of your project. You can then start asking intelligent questions and identify troubling trends early on while you still have time to address them.– Jeff Beehler ( Chief of Staff - VSTS , Microsoft )
Ne dediler ?
• Bu biri bizi gözetliyor gibi bişey yani...– KOSGEB mülakatından Prof. Dr. .... ....
• Verileri NASA’dan mı alacaksınız ?– KOSGEB mülakatından Prof. Dr. .... .....
• Ben sizden daha iyi mühendisim !– TUBITAK Hakem inceleme kurulundan Doç. Dr. ...
Teşekkürler
• Sorular ?