Aylık arşivler: Mart 2016

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

Waterfallda Karşımıza Çıkan Problemler

Waterfallda Karşımıza Çıkan Problemler

Bu yazımda son 40 yıldır yazılım geliştiren herkesin en az bir defa karşısına çıkan Waterfall’dan bahsedeceğim. İster küçük bir yazılım evinde ürün geliştiriyor olun ister kurumsal bir organizasyonda görev alın Waterfall size dokunmuştur. İster bir veri ambarı projesi yapın, ister bir B2B projesi geliştirin herkesin desteklediği ama bilgisinin olmadığı ve üzerine düşünmediği bir konudur, geleneksel yazılım geliştirme süreci.

40 yıldır bu yaklaşımla proje geliştiren kişilerin bu yaklaşımı savunmasını anlıyorum, anlayamadığım konu çalışmaya sadece birkaç yıl önce başlamış kişilerin adeta fanatik bir şekilde bu yaklaşımı savunmalarıdır. İlk önce analizi bitirmeliyiz analiz bittikten sonra geliştirmeye başlanabilir geliştirmeyi bitirdikten sonrada testçi arkadaşlar test etmeye başlayacak diye seslerini yükseltmelerini şaşkınlık içinde izlediğim çok olmuştur. Bu sahneleri izleyince Uğur MUMCU’nun şu sözü gelir aklıma “Bilgi sahibi olmadan fikir sahibi olunmaz!”. Gerçekten bilgi sahibi olmadan fikir sahibi olan bu arkadaşların fanatik yapısı neden kaynaklanmaktadır. İnsanoğlu neden öğrendiği ilk şeyin hep doğru olduğunu düşünür? İlk öğrendiğini benimser ve sahiplenir? Çünkü ego -psikoloji biliminde kullanılan anlamıyla- değişimin kötü olduğunu düşünür ve insan içgüdüsel olarak kendini koruması gerektiğini varsayar. Bu içgüdüsel yaklaşım bir savunma mekanizmasını tetikler ve değişime karşı yumruklar sıkılır.
Konuyu daha fazla ilginçleştirmeden ve dağıtmadan Waterfall ile geliştirilen ürünlerin geliştirme sürecinde karşıma çıkan problemleri anlatacağım. Sizinde karşınıza çıkan gözlemlediğiniz, yaşadığınız ve ilginç olduğunu düşündüğünüz problemleri duymayı çok isterim. Waterfallda Karşımıza Çıkan Problemler yazısına devam et

Pair Programming Üzerine Eleştiriler

Pair Programming Üzerine Eleştiriler

Eş olma aslında mikro seviyede kodu gözden geçirmedir(Code Review).

Eşli Programlama’da amaç aslında bir akış oluşturmaktır. Akış derin düşünce durumudur. Birçok yazılım geliştirici akışı sadece yalnız ve sessizken yakalayabileceğini deneyimlemiştir. Bu nedenle biriyle iletişim halindeyken bu derin düşünce durumunun yakalanılamayacağı düşünülür. Aslında her iki eşte aynı konuya odaklanırsa bu mental durum yakalanabilir.

 

Eş olmadaki en zor durum Sürücü bir yazım hatası yaptığında dilini tutmaktır. Merak etmeyin büyük ihtimalle Sürücü’de yaptığı hatayı fark etti fakat oraya dönmesi birkaç saniyelik zaman alacaktır. Erkenden konuşmak akışı bozabilir.

Eş olmadanda aynı sonuçları elde edebilirim.

Eş olma yaratıcılık için bulunmaz bir ortam oluşturur. Yaratıcılık, zihinsel zeka gibi değildir. Yaratıcılık, iş birliği ve iletişim ile ortaya çıkar. Yaratıcılığın büyük çoğunluğu aslında sizin fikirlerinizin tekrar size anlatılmasıyla meydana gelir.

Pair Programming Üzerine Eleştiriler yazısına devam et