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

Rapid Application Development

Rapid Application Development

017286889e25c87cb44b20ceca2d1d79?s=128

Daron Yondem

May 24, 2009
Tweet

Transcript

  1. Daron Yöndem Microsoft Regional Director, MVP

  2. Bir sistemin tasarım ve uygulama süreçlerini asgari sınırlarda zorlayarak kısaltan

    bir yazılım geliştirime metodolojisidir.
  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.
  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ı?
  5. time boxing prototyping iterative development deneyimli bir takım! yönetim

  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ı.
  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.
  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ı.
  9. Takım olabildiğince ufak tutulmalı. Takım üyeleri maksimum deneyime sahip olmalı.

    Motivasyon kesinlikle ÇOK önemli!
  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 ;)
  11. Joint Application Development! Projenin sahipleri, şirket ortakları ve programcılarınızı toplayıp

    beraber WorkShoplar yapın!
  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.
  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!
  14. Yazılımcılar ne kullanacak?

  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.
  16. Bir ORM hikayesi : LINQ

  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.
  18. Yaaay!

  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!
  20. CodeSmith nedir? Ne değildir?

  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.
  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!
  23. Ne? Nasıl? Neden?

  24. daron@yondem.com http://daron.yondem.com