Upgrade to Pro — share decks privately, control downloads, hide ads and more …

Rapid Application Development

Rapid Application Development

Daron Yondem

May 24, 2009
Tweet

More Decks by Daron Yondem

Other Decks in Programming

Transcript

  1. Daron Yöndem
    Microsoft Regional Director, MVP

    View Slide

  2. Bir sistemin tasarım ve uygulama
    süreçlerini asgari sınırlarda zorlayarak
    kısaltan bir yazılım geliştirime
    metodolojisidir.

    View Slide

  3. 1991de ortaya atıldı.
    Bolca CASE den faydalanılır.
    • computer-aided software engineering
    Müşteri taleplerini olabildiğince hızlı
    şekilde sonuca çevirmeyi amaçlar.

    View Slide

  4. Ucuz yazılım! Kim istemez?
    Değişen dünya, hızlı iş hayatına uyum
    sağlayan yazılım üretme süreci.
    3-4 yıl süren projelerin sonunda projede
    kullanılan teknolojilerin çokten demode
    olması sorunsalı?

    View Slide

  5. time boxing
    prototyping
    iterative development
    deneyimli bir takım!
    yönetim

    View Slide

  6. Yazılım geliştirme süreçleri olabildiğince
    kısa tutulmalı.
    Component based development, OOP
    avantajları kullanılarak yazılım
    olabildiğince Parralel Programlanır!
    Deadline tarihleri yakın tutularak sarkmalar
    engellenmeli.
    Geliştirme ekibi üzerinde kesinlikle ağır bir
    stres oluşturulmalı.

    View Slide

  7. İşlevsel mükemmeliğime önem vermeden
    hızlıca ilk faz müşteri ile paylaşılmalı.
    Interaktif bir demo ile projenin kısmi çalışır
    hali hemen müşteriye iletilmeli.
    Böylece feedback alımı yazılım geliştirme
    sürecinin çok daha başlarına çekilmeli.

    View Slide

  8. Proje özellikleri farklı döngülere bölünmeli.
    Her döngü kendi deadlineına sahip olmalı.
    Her döngüde yazılıma yeni özellikler
    eklenerek arada prototipin müşteriye
    sunulması ile her döngü sonunda feedback
    alınmalı.

    View Slide

  9. Takım olabildiğince ufak tutulmalı.
    Takım üyeleri maksimum deneyime sahip
    olmalı.
    Motivasyon kesinlikle ÇOK önemli!

    View Slide

  10. Bürokrasiyi yok edin!
    Kağıt işlerini ortadan kaldırın!
    Dokümantasyonu geleceğe bırakın!
    Test kodlarını geleceğe bırakın! Müşteri
    kendi testini yapsın ;)

    View Slide

  11. Joint Application Development!
    Projenin sahipleri, şirket ortakları ve
    programcılarınızı toplayıp beraber
    WorkShoplar yapın!

    View Slide

  12. Müşteri ihtiyaçlarını analistler değerlendirir.
    Yazılım ekibi bir prototip hazırlar CASE
    araçları ile.
    Prototip müşteri onayından geçer (Spec
    Dokümanları değil!)
    Kodlama başlar. I-CASE araçları kullanılır.
    Müşteri her adımda onay verir.
    Müşteriden «ok» geldiği gibi proje teslim
    edilir.

    View Slide

  13. Projelerde çoğu zaman geliştirme
    sürecinde gelen yeni özellik talepleri başta
    belirlenenlerden kat kat fazla olur!
    Yazılımınızı muhteşemleştirmeye
    çalışmayın! Teslim etmeye çalışın!

    View Slide

  14. Yazılımcılar ne kullanacak?

    View Slide

  15. Object Relation Mapping
    Veritabanı erişim kodunuzu bırakın
    bilgisayarınız yazsın!
    Yazılım katmanları arası iletişimi
    olabildiğinc üzerinizden atın.
    Yazılımcıların iş kurallarına ve işlevselliğe
    odaklanması gerekir.

    View Slide

  16. Bir ORM hikayesi : LINQ

    View Slide

  17. Drag&Drop Cenneti
    SQLDataSource?
    • Artıları
     Çok Hızlı geliştirme süreci
     Deneyim gerektirmeyen geliştirme olanakları
    • Eksileri
     Reusability SIFIR
     Her şey bir yere kadar! Fizibilite önceden test edilmeli
    yoksa sonrada özelleştirmek çin işkencesine dönüşür.

    View Slide

  18. Yaaay!

    View Slide

  19. Yazacağınız kodu yazan araçlar yazabilir
    misiniz?
    CodeSmith sadece bir tanesi. Farklı Code
    Generation araçlarını inceleyebilirsiniz.
    Faydaları
    • Kodunuzun hızlı üretilmesinin yanı sıra
    standartlaşmasını ve kurallara uyulmasını sağlar.
    • Hızlıdır!

    View Slide

  20. CodeSmith nedir? Ne değildir?

    View Slide

  21. Yazılımın belirli kısımlarını başka şirketlere
    yaptırabilirsiniz.
    Maliyetlerinizi düşürebilir!
    Parallel programala sürecinize katkıda
    bulunur.
    Sizi hızlandırır.

    View Slide

  22. Başka firmaların sağladığı yazılım
    paketlerini kullanabilirsiniz.
    Özelleştirme konusunda fizibilite testleri
    kesinlikle yapılmalı.
    Referanslar çok önemli! Sizi yarı yolda
    bırakabilirler!

    View Slide

  23. Ne? Nasıl? Neden?

    View Slide

  24. [email protected]
    http://daron.yondem.com

    View Slide