Kategori arşivi: Waterfall

Çevik Yazılım Geliştirmede Adapte Olabilirlik

Çevik Yazılım Geliştirmede Adapte Olabilirlik

Bu makalede Çevik Yazılım Geliştirmede adapte olabilirlik konusunu anlatmaya çalışacağım. Yine Çevik Yazılım Geliştirme Bildirisi’ndeki değerleri göz önünde bulunduralım. Çalışan yazılıma detaylı dokümantasyondan daha fazla değer verilir. Çevik Bildiri’deki ilkelerdeyse geliştirme sürecinin geç aşamalarında bile değişim hoş karşılanır denir. Her döngü sonunda çalışan yazılım teslim edilir. Çalışan yazılıma yeni özelliklerin adapte edilebilmesi kolaydır.

Geleneksel yaklaşımda ise esneklik analiz aşaması başladığı anda düşer. Değişimi hoş karşılamaz. Geriye dönük yapılmak istenen herşeye karşı çıkılır ve tekrar edilen iş olarak görülür. Halbuki ürün müşterinin istediği yönde evrilebilmelidir. Geleneksel proje yönetiminde bu evrilmeyi gerçekleştirebilmek neredeyse imkansızdır. Yeni bir ürün geliştirmeye başladığınızı düşünün, başlangıç aşamasında tam bir ürün elde etmek istediğinizi düşünüp bir yılda geliştirilebilecek bir ürün için dört aylık analiz çalışması gerçekleştirdiniz. Dördüncü ayın sonunda ise müşterilerinizin beklentisi değişti ve başka özelliklere yöneldiler. Ürününüze yeni özellikler eklemeniz ve müşterinin beklentisi yönünde evrilmeniz gerekiyor fakat siz çoktan ürünün bir yılını planlamıştınız. Yapılan bütün analiz çalışmaları boşa gider. Bu israf demektir. Sokağa atılan para demektir. Bütçenizi değer üretmeden tüketmeniz demektir. Çevik Yazılım Geliştirmede Adapte Olabilirlik yazısına devam et

Çevik Yazılım Geliştirmede Görünürlük

Çevik Yazılım Geliştirmede Görünürlük

Bu makalede yazılım geliştirmede görünürlük konusunu anlatmaya çalışacağım. Çevik Yazılım Geliştirme Bildirisi değerlerinde müşteri ile yakın iletişim ve ürünü geliştiren kişiler arasında işbirlikçi bir yaklaşımdan bahsedilir. İlkelerinde ise kısa döngüler halinde geliştirilen özellikleri müşteriye sunmak ve müşteriden gelen geribildirimler ile ürüne yön vermekten böylece ürünün görünürlüğünü artırmaktan bahsedilmektedir. Her döngünün sonunda gerçekte ne kadar ilerlendiği böylece rahat bir şekilde herkes tarafından görülebilir. Çevik yazılım geliştirme ile görünürlük döngü başında yüksektir, döngünün ortasına doğru görünürlük düşer ve döngünün sonunda görünürlük tekrar yükselir. Burada anahtar nokta döngünün kısa olmasıdır. Eğer müşterinin istemediği bir özellik geliştiriliyorsa kısa tutulan döngü sonunda hemen ortaya çıkar. Çevik Yazılım Geliştirmede Görünürlük yazısına devam et

Gecikmenin Maliyeti

Gecikmenin Maliyeti

Üretim ortamında bulunmayan kodlardan değer üretemezsiniz. Bu kadar vurucu bir cümleyle yazıya giriş yapmam okuyanların konunun önemini anlamalarına yardımcı olmak içindir.  İşlerinizi önceliklendirirken pazara çıkış zamanıyla elde edeceğiniz kazanç, yasal zorunluluk, iş değeri gibi kavramlardan yararlanabilirsiniz. Bunların yanında dikkate almanız gereken diğer bir konuysa Gecikmenin Maliyeti’dir. Gecikmenin maliyeti, bir özelliği üretim ortamına almayı geciktirerek kaybedilecek değerdir.

Gecikmenin maliyeti işlerin önceliklendirilmesinde nasıl bir öneme sahip? Gecikmenin maliyeti nasıl hesaplanır? Farklı senaryolar üzerinden şimdi görelim. Gecikmenin Maliyeti yazısına devam et

Karar Almada Ortamın Önemi

Karar Almada Ortamın Önemi

Bu makalede karar almada ortamın önemi Bu yazıma bugün yaşadığım ilginç bir deneyimi anlatarak başlamak istiyorum. Bugün izlediğim bir futbol maçında dikkatimi çeken bir forvet oyuncusu bulunuyordu. Bu oyuncu takımının yakaladığı fırsatları bir bir harcadı. Kale önünde, altı pas içinde topu kaleciye nişanladı, çektiği şutlar defans oyuncularına çarptı, verdiği paslar arkadaşlarına ulaşmadan rakipler tarafından kapıldı. Maçın bir bölümünde rakip takım korner kullandı. Kornerden dönen top, kornerin kullanıldığı köşeye geri dönerken bizim ünlü forvetimiz rakip takımdan birini takip ediyordu. O anda bu topun dönüp gol olacağını düşündüm. Çünkü bu adam tam bir başarısızlık abidesiydi ve ne yapsa takımına negatif bir şekilde geri dönüyordu. Eminim demek istemiyorum ama rakibi takip etmese ve rakip boş bir pozisyonda orta yapsa bence gol olmayacaktı. Bu topun gol olması rakibin şansı bizim forvetimizin şanssızlığı değildi. Buna eminim.

Bizim forvetimiz dışarıdan bakıldığından elinden geleni yapıyor, çok çalışıyor, canını dişine takmış ve herşeyini veriyor gibi görünüyor. Tek birşey dışında bunları yaparken doğru yolu izlemiyor. Çünkü doğru kararlar veremiyor. Dahil olduğu her pozisyonda işleri daha da karmaşık hale getiriyor ve bunun sonucu da takımına olumsuz olarak geri dönüyor.

Bunları neden anlattım? Çünkü yazılım projelerinde görev alanlarda benzer yaklaşımı sergiliyor. Tabi kişinin sahip olduğu role göre yaptığı etkide ortamda farklı oranda değişikliklere neden oluyor. Örneğin bir futbolcu hata yaptığında bu çok önemli olmayabilir ve hatadan geri dönülebilir. Hatalı bir pas verip topu rakibe kaptırabilir. Biraz sonra topu rakipten geri alabilir ve bu, çok büyük bir sorun olmayabilir. Bu tıpkı bir yazılımcının test senaryoları üzerinden geçerken birini atlaması gibi. Fakat teknik direktör maçı kaybederken ve gol atması gerekirken bir forvet çıkarıp bir savunma oyuncusu alıyorsa çok ciddi sıkıntılar var demektir. Bırakın oyunu okumayı bu teknik direktör skor tabelasını bile okuyamıyor diyebiliriz. Bir projenin planlamasında ya da ilerlemesinden sorumlu kişilerin aldığı aksiyonlarda benzerdir. Bu adam ne yaptığını bilmiyor dediğiniz olmuştur. Karar Almada Ortamın Önemi yazısına devam et

Değişiklik Maliyeti

Değişiklik Maliyeti

Bu yazımda sizlere yazılım projelerinde değişiklik maliyeti konusunu anlatmaya çalışacağım. Diğer bir deyişle proje gerçekleştirilirken yapılan hatanın organizasyona olan maliyetini anlatacağım. Böylece yazılım geliştirilirken aslında her bir aktivitenin ne kadar önemli olduğunu göreceğiz. Aktiviteler kullandığımız yaklaşıma bağlı olarak değişmektedir. Örneğin geleneksel yazılım geliştirme yaklaşımında Eşli Programlama diye bir aktivite bulunmazken aslında hatalar yapılır yapılmaz yakalanma şansı kaçırılmaktadır. Halbuki Çevik yaklaşımları kullanan takımlar Eşli Programlama’yı kullanarak hatalar yapılır yapılmaz yakalamakta ve gerekli değişikliği yapabilmektedir. Projenin tamamı düşünülerek bu açıdan bakıldığında Çevik yaklaşımlar büyük bir israfın önüne geçilebileceğini göstermektedir.

Yazılım projelerinde değişikliğin maliyetini hesaplayan çalışmayı yapan kişi Barry W. Boehm’dur. Boehm, Waterfall modelini ilk defa bilimsel makalesinde anlatan Royce gibi TRW için çalışan aynı zamanda Güney Kaliforniya Üniversitesi’nde hocalık yapan bir profesordür. 1957’de Hardvard’ta lisans eğitimini tamamlamıştır. Yüksek lisans ve doktora derecelerini 1961 ve 1964 yıllarında Kaliforniya Üniversitesi’nden almıştır. 1989 – 1992 yılları arasında Amerika Savunma Bakanlığı’nda Direktör olarak çalışmıştır. 1973 – 1989 yılları arasında TRW’de Savunma Sistemleri Şefi olarak görev yapmıştır. Yazılım geliştirme süreçlerini etkileyen birçok çalışması bulunmakla birlikte en büyük etkiyi WinWin Spiral Model ve Software Engineering Economics adlı çalışmalarıyla yapmıştır.(1)

Değişiklik Maliyeti yazısına devam et