Skip to content

Çevik Yazılım

Çevik yazılım geliştirme, bir takım yazılım geliştirme yönteminden ibarettir. Bu yöntemler, yazılımın ve gereksinimlerin biri biriyle etkileşim halinde tutarak ortaya koyulmuş süreçlerin tekrarlanmasına ve aşamalı bir şekilde ilerlemeye dayanır. Yöntemlerin uygulanmasında, zamana dayalı ilerleme, evrimsel geliştirme ve teslim süreci ve değişime karşı esnek yapı ön plana çıkar. 2001 yılında yayımlanan Agile Manifesto, yöntemlerin temelini oluşturan belgedir. Yazımın devamında, çevik yazılımı doğuran süreç ve çevik yazılım geliştirme  üzerinde duracağım.

Aşamalı ilerleme yöntemleri çok eskiye dayanmakmaktadır. Aslında çoğu mühendislik biliminde de karşımıza çıkan bir uygulamadır. Ama, yazılım dünyasında çevik diyebileceğimiz algı, 1974 yılında E. A. Edmonds tarafından yayımlanan  uyarlanabilir yazılım geliştirme süreci (adaptive software development process) adlı  makaleye dayanmaktadır. Fakat, çevik yazılımı ortaya çıkmasındaki en büyük etken, klasik mühendislik yöntemlerinin bilgisayar biliminde yeterli olmamasıydı.  Klasik mühendislik methodları, ürünün her bir parçasının geliştirme sürecine girmeden önce tek tek ele alınıp tasarımı yapılıp sonrada üretim bandına sokulmasını öngürür. Halbuki, yazılım dünyasında ürün her an değişebilir nitelikte olmalıdır. Bu durum,  daha dinamik bir yöntem olan çevik yazılım geliştirme kavramını ortaya çıkardı.

Çevik yazılım geliştirme klasik anlayıştan vazgeçerek,   değişime her zaman  ayak uydurmaya dayanan bir anlayış. Çevik yazılım, projenin safhalara bölünerek, her safhada çalışan bir ürün elde etmeyi hedefler. Her bir safha kendine özgü tasarım, kodlama ve test etme faaliyetlerinden oluşur. Safhanın bitiminde elde edilen ürün, varolan gereksinimleri karşılayamıyor yada gereksinimleri değiştiyse bir sonraki safhada düzeltilir. Yeni safhada müşeteri ile müzakere edilerek, safhanın planı yapılır. Ürün tamamlanana kadar bu döngüye devam edilir. Çevik yazılımın etkin bir şekilde uygulanması için aşağıda anlattığımız bir kaç unsurun uygulanması önem taşımaktadır.

İhtiyaçların anlaşılması ve değişikliklerin iyi yorumlanması için müşteri yada çalışma alanında uzman biri(domain expert) ile birlikte çalışılması en önemli unsurlardan biridir. Çünkü, gerekli bilgilerin en doğru ve hızlı aktarımı gereksinimlerin birinci ağızdan duyulmasına bağlıdır. Bu yapılmadığında yazılımcılar kendi anladıklarını hayata geçirerek, bir sonraki safhada geliştirilen ürünü fazlaca değiştirmeye hatta sil baştan yapmaya  sebep olabilir. Dolayısıyla, çevik yazılımda müşteri de yazılım ekibinin bir parçası olmalıdır.

Çevik yazılımda önemli olduğuna inandığım bir diğer unsur takım çalışmasıdır. Projedeki her bir birey, projenin ne doğrultuda olduğunu ve kendisinin ne yaptığını  iyi anlaması gerekir çünkü ekipteki her elamanın farkındalığı ve dinginliği proje için önemlidir.  Ayrıca, proje ekibinde  elemanlar arasındaki farklar gözetilmelidir. Aksi takdirde, yapılan işlerde gecikmeler yada erken bitirme durumları ortaya çıkabilir. Önemli olan görevleri  ekipçe zamanında bitirmektir.

Çevik yazılım, adından da anlaşılabileceği gibi kolay ve çabuk bir şekilde yeni gelen yada değiştirilen gereksinimlere ayak uydurmaktır.  Varolan mühendislik yöntemlerinin, yazılım sektörü için uygun olmayışından ortaya çıkan bir yöntemdir. Ana felsefesi, yazılım sürecinin safhalara bölünerek, her bir safhada çalışan bir ürün elde etmektir. Bu felsefeyi uygularken, takım çalışması ve müşteri etkinliği dikkat edilmesi gereken unsurlardır. Sonuç olarak çevik yazılım, gereksinimlerin sürekli değiştiği yazılım dünyası için güzel bir yaklaşımdır.

 

 

One Comment

Leave a Reply

Your email address will not be published. Required fields are marked *