Extreme Programming Nedir
Proje yöneticisine kızan programcı sizce ne yapabilir derseniz? Bir düşünün…
Kent Beck adındaki yazılımcı yöneticisine kızıp Extreme Programming kavramını yaratmıştır ve siz bu işi bilmezseniz bu iş böyle yapılır diyerek cevap vermiştir adeta. İşin magazinsel tarafını bir kenara bırakalım ve inceleyelim Extreme Programming Nedir?
Extreme Programming yakında yazacağım konu olan Yazılım Geliştirme Metodojileri’nden sadece biri. EX’de mantık şu. Fazla vakit kaybetmeden, dökümantasyona çok vakit harcamadan yapılmaya çalışılan program geliştirme çeşididir.
EX’in temelinde 4 basit madde yatar. EX dediğimiz yapı bu maddeler ekseninde döner.
- Basitlik
- Cesaret
- Geri Dönüş
- İletişim
Bu 4 temel maddenin en önemli maddeleri Geri Dönüş ve ekiplerin birbirleri ile iletişiminin sağlıklı olmasıdır. Geri Dönüş yani İsterler proje yapım aşamasındayken değişebilir bu değişim diğer yazılım metodolojileri ne göre hızlıca ekiplere iletişim projeye isteğe göre yön vermeye dayanır.
Ekip’in iletişimi direk müşteri ile olabilmektedir ve ekip denilen kavram projeye katkısı olan tüm bireyleri kapsar. EX’de testler modül modül ya da belirlenen bir tarih zamanında yapılmaya bilir. Basitlik kavramı ise kodun okunulabilirliği ile alakalıdır. Ekip’in istediği her durumda test yapılmasına olanak tanır. Bu testlerde yazılımın çalışıp çalışmadığını da bakılırken ayrıca kod bloklarında gereksiz yazılan fazladan ve 4 madde içerisinde belirtilen “Basitlik” maddesine aykırı gelen bloklarında kontrol edilerek silenebilir. Yazılım mimarisi’nin değişmesi gereken durumlarda “kabullenme” ve “değiştirme” mantığı esas alır. Ekip EX’de sadece proje yapanı kapsamaz EX’de ekibin bir parçası da Müşteridir. İstediği durumda proje aşamasında duruma müdahil olabilmektedir.Bunun avantajı da Geri Bildirimi hemen alarak iletişimin kolaylıkla sağlanabilmesini sağlamaktadır.
EX’in tam anlamıyla dökümantasyona bağlı kalacağı anlamına gelmez anlık değişkenliklere hemen tepki verme prensibine dayanmaktadır. Yazılımlar küçük küçük yapılar yapılarak müşteriye gönderilir ve küçük eklemeler ile proje tamamlanmaya çalışılmaktadır. Sıkça müşteriye gönderilen programlar geri bildiriminde sıkça geldiği anlaşıldığından iletişim sağlıklıdır.
EX’de yazılım ekipleri kendi içlerinde görev paylaşımı yapmaktadırlar (genelinde olduğu gibi) ancak EX’in en önemli özelliklerinden bir tanesi olarak düşündüğüm şey herhangi bir modülü yapan yazılımcı istediği zaman diğer modülü yapan yazılımcının yerine geçebilir ya da müdahil olabilir ve bu uygulama da herhangi bir problem ile karşılaşılmaz. Problemden demek istediğim herhangi bir modül de yazılan kod standardı diğer modüllerde farklılık göstermek. Ekip kendi içerisinde nasıl yazacağını belirler tek tip yazım yapılır ve dediğim gibi basitlik önemlidir.
EX bana göre mükemmel bir yazılım metodolojisi.
Not: İleride EX’e göre yapılan örnek bir proje yakında blogumda olacak (buraya link gelicek)
Merhaba Burak,
Öncelikle bilgilendirme için teşekkürler, bu kavramı ilk defa duymuştum çünkü. Ancak bu yöntem “Agile” yani “Çevik” yazılım geliştirme metoduna çok benziyor. Bu iki metod arasındaki farkları da açıklayabilir misin? Şimdiden teşekkürler 🙂
Merhabalar Hasan,
Aslında sorunuzun cevabını yazının başında belirtmem gerekirdi. Extreme Programming Çevik Yazılım Geliştirme Metodundaki bir Metodolojidir. EX haricinde Çevik Yazılım Geliştirme Metodunda Microsoft Solution Framework , Scrum gibi Metodoloji bulunmaktadır.
Bu Metodoloji ile Çevik bir yazılım geliştirebilmekteyiz.
scrumla arasındaki fark projedeki yazılımcıların birbirinin yerini alabilmesi ve scrumun görev dağılımının olup herkesin tek hedefe yönelik çalışması mı?
Scrum’dan türemiş bir metodolojidir. Bu XP daha çok programlamaya yönelmesi ile bilinmektedir. Genelde XP ile Scrum beraber kombine edilerek uygulanmaktadır.
Merhaba,
Yakında proje eklenicek(buraya link gelicek) demişsiniz. Fakat yıl 2020 ne zaman gelicek link?