23 Eylül 2014 Salı

Zaman Kavramı ve Yazılımcı


Alıntıdır.
Merhabalar, özellikle iş tecrübesi az olan yazılımcıların büyük sorunudur zaman kavramı. Bu zaman yönetimini sağlıklı yapmak çok zordur. Yazılımcıların zaman yönetim yeteneği çoğunlukla çok kötüdür. Genellikle firmalar çeşitli yöntemleri izleyerek bu süreci olumlu yöne çevirirler. İlerleyen yazılarımızda bu yöntemlerden bahsedeceğim. Zamanı sağlıklı kullanamamanın çeşitli nedenleri vardır. Çoğunlukla yazılım projeleri eğer başka bir nedeni yoksa tahmin edilen proje tamamlanma süresinin çok daha sonrasında tamamlanır. Bunlardan bir kısmı da çeşitli nedenlerden iptal edilir. Bu yazımda yapılan hataları sizlerle paylaşacağım.
Nedenleri
  • Yazılımcılar zaman yönetimi planlaması yaparken aslında çok zaman alan kodlama dışı aktiviteleri dikkate almazlar.
  • Bu noktada yazılımcıların da öngörmekte zorluk çektikleri bir nokta var. Örneğin bir hata ile karşılaşıyorsunuz, bu hatanın çözümünü bulamıyorsunuz, Türkçe kaynak sıkıntısı var. İşte bu noktada süreç en az sorunun çözümü kadar uzuyor.
  • Yazılımcılar müşterilerin veya yöneticilerin projede bir değişiklik isteği, bu isteğin onaylanması vb. süreçlerin yavaşlığını hesaba katmazlar.
  • Yazılımcılar her zaman aslında yazılması istenen ürünün ne olduğunu tam anlamazlar. Hatta bazen bir prototip yazıldıktan sonra yaklaşımın yanlış olduğunu, her şeyin baştan yazılması gerektiğini anladıkları bile olur.
  • Aynı zamanda çoğu müşteri tam olarak ne istediğini bilmez, ya da tam olarak ne istediğini aktaramaz. Bu işlem de süreci yavaşlatabilir.
  • Eğer geliştirilen proje her zaman yapılandan farklı bir yapıda ya da kategorideyse, programcılar öğrenme ve adaptasyon sürecini hesaplayamazlar.
  • Programcılar, bir ürünün gerçekten hatasız çalışır hale gelmesinin gerektiği süreyi hesaplamazlar. Halbuki bazen hata düzeltme süreci geliştirmeden çok daha uzun sürer.
Uluslararası standartlarda ise listelediğimiz parçalar 12 madde olarak listelenmektedir. Şimdi dilerseniz bu maddelere göz atalım. (12 Problems With Software Estimation)
Bilinmeyenin üzerine plan yapmak imkansızdır
Çoğu yazılım birbirinden farklıdır ve her projede neredeyse daha önce hiç yapılmamış bir ürün geliştirilir. Projede yapılacaklar belirli olsa bile, karmaşık bir sistemi geliştirmek, istenen belli olmasına rağmen bile zordur.
Bir program birçok farklı yöntem ile yazılabilir. Zaman planlaması aşamasında net olarak belirlenemeyen dizayn seçimleri, bir yazılımın bitiş zamanını doğrudan etkiler. Yapılan zaman planlarının, istenildiği şekilde yürüyebilmesi için kabul görmüş belli başlı yöntemler vardır, fakat en iyi yöntemle bile yapılan plan, yazılım geliştirme aktif olarak başlamadığı için öngörü ve varsayımdan ibarettir.
Yapılan Planlar Genelde İyimserdir
Çoğu programcı planlarını oldukça iyimser varsayımlar üzerine yapar. Proje başladığında daha üretken olacaklarını düşündüklerinden veya projenin karmaşıklığını tam olarak anlayamadıklarından iyimser varsayımlarda bulunmuş olabilirler. Bu planları değerlendiren kişiler genelde bu iyimser planlamaları biraz daha genişletip daha gerçekçi hale getirirler. Örneğin kodun yazılması bir haftada biter gibi bir tahminde bulunulmuşsa bunu 2 hafta veya bir aya çıkarmakla daha gerçekçi planlar elde edilebilir.
Verilen Zaman Sonuna Kadar Kullanılır
Çoğu programcı verilen zamanı sonuna kadar kullanmaya meyillidir. Yaptıkları işi erken bitirseler bile, kalan zamanı projeye katkısı olmayacak kod düzeltmeleri yapmak, kod işleyişini biraz daha hızlandırmak için harcarlar. Bazen de işini bitirdikten sonra verilen zamanın bitmesini bekleyip farklı bir işe başlamazlar. Bu yaklaşımla işler asla planlandığından çabuk bitmez.
Firmalar Zaman Planlamasına Oldukça Fazla İtimat Eder
Ürün çıkış tarihleri, fuarlara katılım ve tanıtım tarihleri hepsi projenin zaman planlaması baz alınarak yapılır. Satış ve pazarlama birimleri anlaşmalarını bu tahminler üzerine yapar ve yapılan planlamada oluşacak bir gecikme daha başka yapılan birçok planın da gecikmesine neden olur.
Öngörülemeyen Şeyler Üzerine Çok Fazla Zaman Harcanır
Yapılan tahminler mükemmel bile olsalar, proje üzerinde çalışırken karşımıza öngöremediğimiz birçok problem çıkar. Proje esnasında beklemediğimiz yeni işler çıkmış olabilir. Çoğu şirket planlarını yaparken bu gibi durumlar için ekstra zaman ayırır, fakat varsayımlar üzerine yapılmış bir plana varsayımlar üzerine ekstra zaman eklemekle ne kadar güvenilir bir şey elde etmiş oluruz?
Zaman Planlamasına Tahmin Gözüyle Bakılmaması
Yapılan zaman planları aslında bir tür tahmindir fakat insanlar buna tahmin gözüyle bakmazlar, bu planlara kesinlikle aksamayacak gerçekleşecek gözüyle bakılır ve başka planlar da buna güvenerek yapılır. İlk planda olacak bir gecikme bu yüzden zincir etkisiyle diğer planları da etkiler.
Yazılımcılar Arasındaki Verimlilik Farklarının Göz ardı Edilmesi
Bu durum yapılan zaman planlamalarını daha da zorlaştırır. İnşaat sektöründe duvar ustalarının ortalama bir duvarı örme hızını bilebilirsiniz fakat bir işi yapma hızı programcılar arasında çok büyük farklılık gösterir. Programcı kendi yapacağı işin zaman planlamasını kendi yaptığında işiniz az da olsa kolaylaşır çünkü kendi üretkenlikleri hakkında sizden daha çok bilgileri vardır. Fakat bu tahminleri onlar yerine genelde proje yöneticileri yapar ve bütün programcılara eşit üretkenliktelermiş gibi davranırlar.
Müşterinin İsteklerindeki Değişiklikler Proje Planına Yansıtılmaz
Proje devam ederken, ortaya ufak ufak bir şeyler çıkmaya başladığında müşteri ortaya çıkan bazı özelliklerden memnun olmaz, değiştirtmek ister veya memnun kalır ve ekstra bir kaç şey daha eklenmesini ister. Bu gibi değişiklikler proje planına bazen yansıtılmaz fakat her gelen istek yapılacak fazladan iş olduğu için bu gibi durumlar plana yansıtılmak zorundadır.
Gerçek Anlaşıldığında Genelde Çok Geç Kalınmıştır
Önceki maddelerde belirtmiştik, programcılar genelde iyimser tahminlerde bulunurlar. Çoğu zaman iyimser tahminde bulunduklarına ve projeyi yetiştiremeyeceklerine inanmazlar ta ki son gün gelip te daha yapılacak birçok işin kaldığı anlaşılıncaya kadar. Fakat artık çok geç kalınmıştır, proje gecikmiş ürün çıkış tarihi ertelenmiştir.
Bir Plan Geciktiğinde Diğerleri de Güncellenmeli
Programcılar genelde projenin planlanan bir kısmını zamanında bitiremediklerinde, diğer yapacakları işlerin planlarını güncellemezler. Arada kaybolan zamanı sonraki işleri daha hızlı yaparak kapatacaklarına inanırlar, fakat genelde tam tersi olur. Böyle bir durum genelde iyimser tahmin yapıldığına işarettir
Planlar Gerçekleşmediğinde Programcılar Suçlanır
Planlar geciktiğinde suçlanacak birileri bulunmaya çalışılır ve bu genelde plana ayak uyduramayan programcılar olur. Bu stresli bir çalışma ortamı yaratır ve programcı sonraki projelerde suçlanmamak için yaptığı zaman planlamalarında geniş davranır.
Planları Yanlış İnsanlar Yapar
Programcılar üzerinde çalıştıkları konuyla ilgili tahminleri kendileri yapmalılar. Proje yöneticisi bu tahmini onun yerinde yaptığı zaman zamanlama konusunda sıkıntılar yaşanır.

Fatih Soysal
Share this post
  • Share to Facebook
  • Share to Twitter
  • Share to Google+
  • Share to Stumble Upon
  • Share to Evernote
  • Share to Blogger
  • Share to Email
  • Share to Yahoo Messenger
  • More...

0 yorum

:) :-) :)) =)) :( :-( :(( :d :-d @-) :p :o :>) (o) [-( :-? (p) :-s (m) 8-) :-t :-b b-( :-# =p~ :-$ (b) (f) x-) (k) (h) (c) cheer

 
© 2013 Saygınlık Bilgelikte Gizlidir
Designed by Blog Thiet Ke
Posts RSSComments RSS
Yukarı