27 Nisan 2017 Perşembe

Extreme Programing Nedir?


Extreme Programing  (XP): Kent  Beck  tarafından  bir  yazılım  geliştirme  disiplini olarak  XP  ortaya  çıkarılmıştır ve grup  içi  iletişime  çok  önem  veren  bir  yazılım  geliştirme  yöntemidir. XP ile proje  yaşam döngüsü (life cycle) çerçevesinde proje geliştirimi sağlanır. Proje  yaşam döngüsü bazı uygulamalara (practices) bağlıdır. Yazılım geliştirmede kolaylığı ve esnekliği sağlamak için; XP 12 farklı uygulamayı öngörür.

Extreme Programing Avantajları

Hata oranını azaltma
Yazılımın erken safhasında somut gelişmeler sağlaya bildiğinden, oluşan hataların farkına varabilir.Bu hataları da kendi içerisinde oluşturduğu küçük yaşam döngüleri ile telafi edebilir.
Projenin gelişme süresini kısaltır.
Artırımsal yaklaşım sayesinde hızlı bir şekilde genel planın oluşması sağlanır.Burada aynı bütün ekip tarafından proje süresi tahmini de yapılır.
Değişikliklere izin verir.
Esnek iş yürütme ve fonksiyonellik sayesinde, işletmenin değişen ihtiyaçlarına cevap verir
Yazılımsal olarak ortaya çıkabilecek tıkanıklıkları azaltır.
Müşteriler ile birlikte monitörlerden programcılar ve müşteriler ortak bir şekilde test yaparak ileride tıkanıklıkların ortadan kaldırılmasını sağlarlar.




Extreme Programing 4 Temel Noktası

İletişim
XP in ilk temel taşı iletişimdir. Projelere baktığımızda ortaya çıkan önemli problemlerin insanların birbirleriyle tam olarak anlaşamaması nedeniyle olduğunu görünür. Bazen programcılar sormaları gereken doğru soruyu soramazlar. Bazen de projenin yapısıyla ilgili önemli bir gelişmeyi söylemezler. Bu yüzden projelerde çeşitli tıkanma noktaları olabilir. Bazen de proje yöneticileri programcılara belirtmeleri gerekenleri tam olarak belirtemezler. Bu da projenin gelişme sürecilerini olumsuz etkiler. XP de iletişim yüz yüze olmalıdır. İletişim sürekliliği olmalıdır. Yazılım ekibi ile yazılımı kullanacaklar arasında sıkı bir iletişim bağı olması esastır. Bu sayede sorunlar erken fark edilir.


Basitlik
XP in ikinci temel taşı basitliktir. Aslında basitlik sağlanması zor olan bir konudur. Basitlik, zorunlu işlerin yapılmasıdır. Gerekli olmayan bir şey varsa, kesinlikle bu konu XP basitlik ilkesi içerisinde olmamalıdır. Dünyadaki en zor şey gelecekte ne gibi ihtiyaçlarla karşılaşacağımızı bilmemektir. Bu nedenden dolayı oluşturulacak yapı, gelecekte ne gibi isterlerin ortaya çıkacağını tam olarak bilmeden oluşur. Buna göre esnek zaman ve maliyeti göz önüne alınmış bir yapı oluşturmak gerekmektedir. XP en iyi şekilde bu basitliği sağlamak için, bu günün ihtiyaçlarını hedef alarak esnek ve basit bir sistem gerçekleştirmeye çalışır. 


Geri Besleme
Sistemlerin geri dönüşümü olması sistemler için paha biçilemez bir fırsat yaratır. Geri dönüşüm sayesinde optimizasyonun oluşmasına engel olan tehlikeler ortadan kaldırılır. Öncelikle programcılar bütün sistemin mantıksal yapısını içeren bölüm testleri oluşturur. Programcılar sistem hakkında somut bilgiler elde ederler. Müşteriler yeni bir “stories” hikâye ile geldikleri zaman, programcılar hemen bu yeni gelen hikâyenin gerçekleşmesi ile ilgili çalışma yapıp bu “stories” e uygun bir çalışma gerçekleştirirler.


Cesaret
XP in dört temel noktasından en zoru cesarettir. Projelerin üzerine yılmadan gidilmesi projelerin geliştirilmesi açısından son derece önemlidir. Cesaretin olmadığı projelerde korku gelişir ve gelişen bu korku projeyi başarısızlığa iter. Yazılım işlerindeki başarısızlık ise; yazılımın çöpe gitmesidir ve maalesef genel duruma da baktığımızda yazılımların büyük bir kısmının çöpe gittiğini görünyorur. Başarısızlık, genel tabiat içerisinde olan bir durumdur. Başarısızlıktan korkmak yerine başarısızlığı oluşturan nedenler üzerine gitmek yerinde olacaktır. Başarısızlıkla mümkün olunan en kısa sürede karşılaşmak, daha sonra telafi etme şansını arttırır.

Extreme Programing 12 Uygulama
Planlama Oyunu
Ekipte müşteri
Müşteri Testi
Basit Tasarım
Çiftli Programlama
Sürekli Tümleştirme
Kısa sürümler
Yeniden yapılandırma
Ortak sahiplenme
Metaphor
Kodlama standardı
Kırk saat haftada  



Extreme Programing  Çalışma Mantığı

 


 









Riskler ve Risk çözümleri

Extreme Programing Korkmadıkları
Kodlama
Değişen fikirler
Geleceği bilmeden yol alabilmek
Çalışan bir sistemin yapısının değişmesi
Testler yazılması



Extreme Programing Roller
Müşteri
Yazılım geliştirme sorumlusu
Test sorumlusu
Ölçüm sorumlusu
Koç
Danışman
Yönetici