Archive for Career

Yazılım Projelerinin Zaman Planmasında 12 Problem

Bir yazilim projesinde zaman planlamasi yapmak zor bir istir, fakat hala çogu firma bu zaman planlamalarina dayanarak projelerini yürütmeye devam ederler. Bu yazida yazilim projelerinde yapilan zaman planlamalarinda yapilan en temel 12 hataya dikkat çekmeye çalisacagim.

  1. Bilinmeyen üzerine plan yapmak imkansizdir
  2. Çogu yazilim birbirinden farklidir, ve her projede neredeyse daha önce hiç yapilmamis bir ürün gelistirilir. Projede yapilacaklar belirli olsa bile, karmasik bir sistemi gelistirmek istenen belli olmasina ragmen bile zordur.
    Bir program bir çok farkli yöntem ile yapilabilir. Zaman planlamasi asamasinda net olarak belirlenemeyen dizayn seçimleri, bir yazilimin bitis zamanini dogrudan etkiler.
    Yapilan zaman planlarinin, istenildigi sekilde yürüyebilmesi için kabul görmüs belli basli yöntemler vardir fakat, en iyi yöntemle bile yapilan plan, yazilim gelistirme aktif olarak baslamadigi için öngörü ve varsayimdan ibarettir.

  3. Yapilan Planlar Genelde Iyimserdir
  4. Çogu programci planlarini oldukça iyimser varsayimlar üzerine yapar. Proje basladiginda daha üretken olacaklarini düsündüklerinden veya projenin karmasikligini tam olarak anlayamadiklarindan iyimser varsayimlarda bulunmus olabilirler. Bu planlari degerlendiren kisiler genelde bu iyimser planlamari biraz daha genisletip daha gerçekçi hale getirirler. Örnegin kodun yazilmasi bir haftada biter gibi bir tahminde bulunulmussa bunu 2 hafta veya bir aya çikarmakla daha gerçekçi planlar elde edilebilir.

  5. Verilen Zaman Sonuna Kadar Kullanilir
  6. Çogu programci verilen zamani sonuna kadar kullanmaya meyillidir. Yaptiklari isi erken bitirseler bile, kalani zamani projeye katkisi olmayacak kod düzeltmeleri yapmak, kodu birazcik hizlandirmak için harcarlar. Bazende isini bitirdikten sonra verilen zamanin bitmesini bekleyip farkli bir ise baslamazlar. Bu yaklasimla isler asla planlandigindan çabuk bitmez, ya saydigim nedenlerden ötürü zamaninda biter, ya da isler yolunda gitmez ve gecikir.

  7. Firmalar Zaman Planlamarina Oldukça Fazla Itimat Eder
  8. Ürün çikis tarihleri, fuarlara katilim ve tanitim tarihleri hepsi projenin zaman planmasi baz alinarak yapilir. Satis ve pazarlama birimleri anlasmalarini bu tahminler üzerine yapar ve yapilan planlamada olusacak bir gecikme daha baska yapilan bir çok planinda gecikmesine neden olur.

  9. Önrülemeyen Seyler Üzerine Çok Fazla Zaman Harcanir
  10. Yapilan tahminler mükemmel bile olsalar, proje üzerinde çalisirken karsimiza öngöremedigimiz bir çok problem çikar. Eski versiyonlarda problemler çikar bunlari düzelmek için kaynak ayirmamiz gerekir, çalisanimiz hastalanmis olabilir, proje esnasinda bekledigimiz yeni isler çikmis olabilir. Çogu sirket planlarini yaparken bu gibi durumlar için ekstra zaman ayirir, fakat varsayimlar üzerine yapilmis bir plana varsayimlar üzerine ekstra zaman eklemekle nekadar güvenilir birsey elde etmis oluruz ?

  11. Zaman Planlamasina Tahmi Gözüyle Bakilmamasi
  12. Yapilan zaman planlari aslinda bir tür tahmindir fakat insanlar buna tahmin gözüyle bakmazlar, bu planlara kesinlikle aksamayacak gerçeklesecek gözüyle bakilir ve baska planlarda buna güvenerek yapilir. Ilk planda olacak bir gecikme bu yüzden zincir etkisiyle diger planlari da etkiler.

  13. Programcilar Arasindaki Verimlilik Farklari Gözardi Edilir
  14. Bu durum yapilan zaman planlamarini daha da zorlastirir. Insaat sektöründe duvar ustalarinin ortalama bir duvari örme hizini bilebilirsiniz fakat bir isi yapma hizi programcilar arasinda çok büyük farklilik gösterir. Is yapma hizi ve bir isin bitmesi için gerek efor: bu iki bilinmeyeni kullanarak tahmin yapmaya çalistiginiz da isiniz daha da zorlasir.
    Programci kendi yapacagi isin zaman planlamasini kendi yaptiginda isiniz az da olsa kolaylasir çünkü kendi üretkenlikleri hakkinda sizden daha çok bilgileri vardir. Fakat bu tahminleri onlar yerine genelde proje yöneticileri yapar ve bütün programcilara esit üretkenlikteymisler gibi davranir.

  15. Müsterinin Isteklerindeki Degisiklik Proje Planina Yansitilmaz
  16. Proje devam ederken, ortaya ufak ufak birseyler çikmaya basladiginda müsteri ortaya çikan bazi özelliklerden memnun olmaz degistirtmek ister veya memnun kalir ve ekstra bir kaç sey daha eklenmesini ister. Bu gibi degisiklikler proje planina bazen yansitilmaz fakat her gelen istek yapilacak fazladan is oldugu için bu gibi durumlar plana yansitilmak zorundadir.

  17. Gerçek Anlasildiginda Genelde Çok Geç Kalinmistir
  18. Önceki maddelerde belirtmistik programcilar genelde iyimser tahminlerde bulunurlar. Çogu zaman iyimser tahminde bulunduklarina ve projeyi yetistiremeyeceklerine inanmazlar taa ki son gün gelipte daha yapilacak bir çok isin kaldigi anlasilincaya kadar. Fakat artik çok geç kalinmistir, proje gecikmis ürün çikis tarihi ertelenmistir.

  19. Bir Plan Geciktiginde Digerleri de Güncellenmeli
  20. Programcilar genelde projenin planlanan bir kismini zamaninda bitiremediklerinde, diger yapacaklari islerin planlarini güncellemezler. Arada kaybolan zamani sonraki isleri daha hizlari yaparak kapatacaklarina inanirlar fakat genelde tam tersi. Böyle bir durum genelde iyimser tahmin yapildiginda isarettir

  21. Planlar Gerçeklesmediginde Programcilar Suçlanir
  22. Planlar geciktiginde suçlanacak birileri bulunmaya çalisilir ve bu genelde plana ayak uyduramayan programcilar olur. Bu stresli bir çalisma ortami yaratir ve programci sonraki projelerde suçlanmamak için yaptigi zaman planlamarinda genis davranir.

  23. Planlari Yanlis Insanlar Yapar
  24. Programcilar üzerinde çalistiklari konuyla ilgili tahminleri kendileri yapmalilar. Proje yöneticisi bu tahmini onun yerind yaptigi zaman zamanlama konusunda sikintilar yasanir. Eger çalistiginiz yerde MBA yapmis biri sizin yerinize çalistiginiz is üzerinde plan yapiyor ise orada durmayin

12 Problems With Software Estimation yazisinin çevirisidir.

Comments

Her İyi Programcıda Olması Gereken 5 Özellik

Programlama okuyan her öğrencinin okulda öğrenmesi gereken bazı temel özellikler vardır. Bunları aşağıdaki şekilde sıralayabiliriz.

Read the rest of this entry »

Comments

Yazılım Dünyasında Kariyer

Bruce Eckel tarafından yazılan A Career in Computing yazısının çevirisidir.

Sık sık insanlar benden kariyerleriyle ilgili tavsiye isterler. Bütün cevapları bu yazımda bir araya toplamaya çalıştım. Bana yazip da cevap veremediklerimden özür dilerim, sorularınız tavsiye istekleriniz beni bu yazıyı yazmaya teşvik etti. İnsanlar kariyerle ilgili genelde “C++ mı Java mı öğrenmeliyim” gibi yanlış soruyu sorarlar. Bu yazımda yazılım dünyasında kariyer yaparken, kariyerimize yön verirken gerçekte hangi soruları sormalı, hangi konularla ilgilenmeliyiz, onu tartışacağım.

Read the rest of this entry »

Comments

Etkili Çalışma mı Verimli Çalışma mı ?

Etkili ve verimli birbirlerinin yerine kullanılabilen iki kelimedir. Bir çok metodoloji “etkili ve verimli çalışmayı” arttıracağından bahseder. Fakat yazılım mühendisliği gibi çok hızlı değişen bir sektörde bu iki kelime birbirine benzer değil, birbirinden tamamen ayrı kavramlardır. Çevik (Agile) yazılım geliştirme metodunu anlayabilmemiz için bu iki kavramı iyice anlamış olmak, nerelerde birbirlerinin yerine kullanılabileceklerini nerelerde kullanılamayacaklarını öğrenmek gerekir.

Read the rest of this entry »

Comments

Bir Programcının Hayatı

Hepiniz bilirsiniz, eğer sıfırdan, insanların işine yarayan bir program yazıyorsanız ve hayatınızın bir bölümünü bu programı geliştirmeye adadıysanız, ona karşı gün geçtikçe artan bir sevgi beslemeye başlarsınız. Program bittiğinde size tam olarak bitmemiş yarım bir heykel gibi görünür. Gerçekten ortaya çıkan ürün, sizin hayal ettiğiniz basit güzel programdan çok daha farklıdır. Sadece bir yıl sonra, kullanıcıların ihtiyaçlarını karşılamak için yaptığınız değişiklikler sonucu heykeliniz bir anda kolsuz, zürafa gibi kafası göğsünden çıkan, önündeki kovaya orasından burasından renkli sular fışkırtan saçma sapan birşey haline gelir ve siz hergün onu düzeltmek için çekiçle, umutsuzca sağını solunu yontar, uğraşır durursunuz. –  Nick Foster (”Life as a programmer”)

Comments