Browsing archives for 'Proje Felsefesi'

Projeperestlik!

Proje Felsefesi 14 Şubat 2009 | 1 Comment

Gün geçmiyorki şu hayatta kendimizle ve yaşantımızla ilgili bir çok yenilik öğrenmiş olmayalım. Bahsettiğim yenilik kendi kendimize keşfettiklerimiz.

Yazılım gibi bir sektörde çalışınca kafadan onlarca yeni düşünce geçmemesi imkansız. Özellikle içinizde 1 damla girişimcilik ruhu varsa onlarca düşüncenin yanına, onlarca proje ekleniyor.

Proje, onu düşünen ve hayal eden için bir bebektir. Onu alıp, özenle büyütmek ister, mürvetini görmek ister. Fakat ben her zaman, projeyi bir canlıya benzetmeme rağmen, onu çok az, uysal bir insana benzetirim. Çünkü proje, yeri geldiğinde sizi yutacak bir canavar olabilir.

Asıl konumuz, zaman ve maddi kaynağın önemli olduğu günümüzde aklımızdan geçen onlarca projeden değerli olanını nasıl seçeceğimiz. Proje sahibi olarak, girişim sırasında hatta proje sürecinin ortasında, giriştiğimiz işin ileride bizi yutacağını farkettiğimiz de ya da artık odak noktası olmayan bir konuda proje geliştirdiğimizi anladığımızda ne yapacağız?

Bu noktada, kimi insanların projelerinin esiri olduğunu ve gözlerini bir sis bulutunun kapladığını gördüm. Hatta öyleki bu proje sahipleri çevrelerindekilerini bile kendi projelerine, bir misyoner edasıyla, taptırabilmektedirler. Ben bunlara PROJEPEREST diyorum. Bu tarz insanlarla tanıştım. Hatta beni dahi misyonlarına inandıranlar oldu!

Projeperestleri çevremizde aramak yerine, arasıra durup kendimize de bakmak lazım. Özellikle internet projeleri geliştiriyorsak, binlerce kullanıcı söz konusu demektir. Hesap edemediğimiz bir çok nokta ve bakış açısı olabilir. Atalarımızın dediği gibi, “Zararın neresinden dönülse kardır” diyebilmek için, Ben projeperestmiyim? sormamız gerekir.

Şu soru sorulabilir, Doğru bir proje de projepertlik yararlı olmaz mı? 1M$ için rus ruleti de bence benzer anlam taşıyabilir. Her şeyin fazlası zarar demişler. Ne olursa olsun özellikle projelerimizde kontrolümüzü kaybetmememiz gerekir.

Tagged in ,

Yeni Bebek: Proje!

Proje Felsefesi 11 Ocak 2009 | 0 Comments

Yeni Bebek: Proje!

Nil Timsahı! Nam-ı Değer ProjeProje Bilimi üzerine hayatını adayanlar bilir! Proje bir canlıdır! Doğar, Yaşar, Ölür(/inthar eder).

Fakat proje bir çocuktan ya da evde beslediğimiz bir kediden çok bahçemizde baktığımız Nil Timsahı‘ na benzer. Kontrol etmesi zordur. Ve dikkat etmezsek bizi yaralayabilir.

Bu makale ile projenin doğumu ve yaşam süreci boyunca gelişiminin aşamaları incelenecektir. Burada anlatılan teorik bilgidir ve uluslararası standartlarda anlatılan hikayelerin! bir özetidir. Hikaye diyorum çünkü bu standartlar oluşturulurken projeyi gerçekleştirirecek ekibin T9 cyborg’ ler varsayıldığı düşüncesindeyim. İnsan olan her işte teori işlemez. Çünkü hayatı olmasa da insanı metafizik öğeler yönetir. Projenin metafizik yanına başka bir yazıda yer vereceğim.

Proje Aşamaları


Yukarıdaki fotoğrafta bir proje sürecinin standart döngüsü yer almaktadır. Başlangıç ile başlayan fikir aşaması benim Ö.Y.P dediğim Projenin Ölümü(bitirilmesi) ya da proje ile eldeedilen değerlerin kullanılması ile başka bir projelendirmenin yapılması şeklinde son bulur. İşletme faaliyetinin gerçekleştiği bölüme “Yaşam Süreci” dememin ana amacı, hiç bir projenin sonsuza kadar devam etmeyeceği ve bir gün kesinlikle sonlandıralacağı gerçeğidir.

Şimdi işin biraz daha derinine inip bu aşamaların detaylarına bakalım.

Başlangıç

IEEE/EIA 12207 yazılım geliştirme dökümanlarında Başlangıç aşaması için şu ifadeyi kullanır: “Her proje mutlaka kullanıcının ortaya koyduğu gereksinimleri karşılamak üzere gerçekleştrilir.

Bu tanımda bir şey eksik. Girişimcilik…

Neden? Çünkü bu stadartlar klasik yazılım projeleri için yazılmıştır. Günümüz özellikle web tabanlı projelerde proje başarısı, hedef kitlenin o an farkında olmadığı ama kullandığında rating vereceği fikirlere bağlıdır!

Şimdi bu stadart tanımı ve yeni tanımı tek bir kelimeye indirgeyelim. Projenin başlangıç aşaması bir FİKİR ile başlar.

Gereksinimlerin Ortaya Koyulması

İster standart bir yazılım projesi olsun ister girişimci bir proje olsun, kendiliğinden ya da hedef kitlenin modellenmesi sonucu bazı gereksinimler ortaya çıkarılır. Projenin başarılı bir yaşam süreci sürmesinin sağlanmasında burada ortaya çıkan gereksinimler çok önemlidir.

Eğer hedef kitlemizi çok iyi tanımlayabilirsek onların gereksinimlerinide aynı netlikte ortaya koyabilmemiz gerekmektedir. Sonuçta basit düşünürsek temel mantık projeyi kullanacak insanların bir fayda sağlamasıdır.

Biz hedef kitle olarak 20-27 yaş arasındaki öğrecileri belirleyip, gereksinimlerimizi netleştirirken 20-30 yaş öğrenci ve çalışan kişileri hedef alırsak proje amacında bir sapma yaşanacaktır. Dolaylı olarak Proje Yaşam süresi daha kısa olacaktır.

Bu aşamada yapılması gereken çok iyi bir inceleme ve planlama çalışmasıdır. İnceleme ve planlamanın bir diğer yüzü de maliyet analizidir. Kısaca yapılacak bir proje maliyetinedeğecek midir? Bunun net bir şekilde ortaya koyulması gerekir. 

Maliyet analizi yapılırken dikkat edilecek etmenler şunlardır:

  1. Personel
  2. Ekip: Personelin bir bütün olarak çalışması için gerekli olan ortam ve araçların maliyeti.
  3. Uygulama: Lisans, araştırma, iletişim, güvenlik
  4. Edinme: Danışmanlık, satın alınacak betikler veya modüller. 
  5. Çalıştırma Maaliyeti: Server, Internet Hattı, Kurulum maaliyeti, İdari personel
  6. Proje Maaliyetleri: Sözleşmeler, Şirket Kurulumu gibi yasal işlem maaliyetleri
  7. Yaşam Süreci Maliyetleri: İşletici personel, entegre ticari paket maliyetleri, kiralar,enerji, bakım ve temizlik.
Geliştirme Süreci
Ekibin düşünceleri uzman bir sisteme dönüştürme aşaması. Metafizikle iç içe olduğunu düşündüğüm süreç. İnsan faktörünün en belirgin şekilde hissedildiği aşamadır.
Geliştirme sürecinin temel ihtyacı kontrollü yapılasıdır. Buna neden ihtiyaç dedim? Bir ihtiyaç karşılanmazsa huzursuzluk! ve başarısızlık baş gösterir.
Yazılım geliştirme için internette bir çok deneyimli! arkadaşın aslında uygullamadıkları bir çok fikir öbeklerini bulabilirsiniz. Ama pratikte başarısız (özellikle ülkemizde) olan bu sistemlerin temel eksikliği ekibi bir makina gibi görmekten geçer.
Sadece düşünce kullanılarak üretilen bir sistemin, bu düşüncelerle iç içe olan duygulardan etkilenmemesini beklemek, en masum haliyle, bir çarpıtmadır.
Bu geliştirme sürecinde ekibin kontrol altına alınması için astrolojiden yararlanmak bile doğru bir yöntemdir. 
Yazılım geliştirme teknikleri hakkında daha detaylı ve ülkemiz gerçekleriyle örtüşen bir makaleyi daha sonra yazmayı planlıyorum.
Risk Yönetimi
Ülkemizde yazılımın başka sektörlerden etkilendiğinin en somut belirtisi risk yönetimidir. Ülkemizde insanlar riskin, kaba tabirle, projenin tutup tutmayacağında olduğu fikrinden bir türlü kopamazlar. Ama asıl risk projenin büyütülmesi, 18 yaşına getirilmesi aşamasındadır.
Bu fikrimi kanıtlayan en büyük dayanağım, ülkemizde bilgisayar gören, bilgisayara dokunan her bir vatandaşımızın neredeyse bir proje fikrinin olması, hatta büyük çoğunluğunun gerçekleştirmeye çabalaması ama gece rüyalarına giren risklerin “tutar mı tutmaz mı” olmasıdır.
Risk olarak proje geliştren ekibin görülmemesinin en büyük nedeni, bir bilgisayarın başında günde 8-10 SAAT OTURAN RAHATI YERİNDE! BİR EKİBİN NASIL RİSK OLUŞTURULACAĞININ KESTİRİLMEMESİDİR.
Bu sektörde yapılan risk analizlerinin, yazılımı bir ev inşaatı gibi elealması son bulmadıkça, yazılım bir sektör olmaz, başarılı proje oranı da artamaz.
Riskin bir diğer tarafını da aslında projeyi düşünen ve planlayan, hayata geçmesi için finansör olan kişilerin niteliği aslında yazılım açısından niteliksiği oluşturmaktadır. Ve şu aşamada bu riskin kağıt üzerine aktarılması çok çok zordur. Ego’ dan muaf olmak ve mikro yönetici yapısında olmamak şarttır.
Sonuç:
Şu anda dünyada proje yönetim standartlarındaki asıl sorun eski usül projelerle yeni girişimci projelerinin  teorik örtüşmemesidir.
Ülkemizde ise sorunun kaynağı sektör olamayan yazılım ile başlamakta. Ekip risk analizi ve maaliyet analizi sorunları ile devam etmektedir.
Sonraki makalelerimde, özellikle yazılım sektörü ve risk analizleri hakkında denemelerime yer vereceğim.
>devam edecek<

Tagged in , , ,

Yazılım Uzmanlarında “Eski Kod” sendromu

Proje Felsefesi,Yazılım 8 Ocak 2009 | 1 Comment

İşini iyi yaptığını düşünen insanların ara sıra kapıldığı bir duygu ya da iş yapış yöntemi vardır: Sanat için sanat!

Bir yazılım uzmanı da kendine has aralıklarla, bu deyimin bir sonucu olarak, sürekli yeni bir başlangıç yapmak ister.

Neden?

Bunun özünde yazılım mesleğinin bazı gereklilikleri mevcuttur. Bahsedeceğim bu gereksinimler kimi zaman kişiyi yanlış yönlendirerek hatalara sevk edebilir.

Peki nedir bu gereklilikler? İş görüşmelerinde aranan, güçlü bir kriter olan bu şartlar nasıl oluyorda bu şekilde olumsuz bir geri dönüş sağlıyor?

Bu mesleğin kaçınılmaz şartı sürekli yeni teknolojilere uyum sağlamak için bilgi ve bakış açısı olarak yenilenmektir. Bu yenilenme ihtiyacı/şartı özellikle günümüzde belli bir noktadan sonra saplantı haline gelmektedir. İşte tam da bu noktada, bu saplantı bir bağımlılık halini aldığında projelerde sorunlar başlar. Bu sorunlar:

  • Yazılım uzmanının başka bir çalışan tarafından üretilen kod üzerinde çalışmak istememesi
  • Sürekli yeni proje yapma isteği
  • Daha üzerinden 1 ay geçmeden kendi yaptığı projenin kaynak kodlarına yabancılaşıp yenisini yazmak istemesi

şeklinde ortaya çıkar. Eğer bu eğilimler ortaya çıkıyorsa üretilecek işin kalitesi ve şevk katsayısı azalır.
Bu yabancılaşma sürecini tetikleyen diğer bir güçlü eylem de günümüzde kalınan aşırı bilgi bombardımanı içinde kişinin kendi zihninde karşılaştığı eski ya da diğer projeleri canlandıramayıp, çözemediği düğümü kesme yoluna girme kolaylığına kaçmasıdır.
Genellikle standart sendromlarda etkenleri ortadan kaldırınca sorunda çözülür. Fakat burada etken olarak gördüklerimiz bu mesleğin en önemli kriterleri olunca bu yola girmek bir yazılım uzmanı için en fazla 9 ay içinde emeklilik getirir. Ve, çoğu kendi içinde bulunduğu durumu göremeyen meslektaşlar, bu yöntemi denerken, aynı anda çalışmaya devam ettikleri için de bir süre sonra kendi kendilerini tedavi etme yöntemleri ile iş yaşamları çatışmaya girer. Sonuçta kimse karlı çıkmaz bu işten.
Bu kadar zihin eforu harcanan bir meslekte sadelik bir denge unsurudur. Bu sadelik masamızda, arabamızda, evimizde hatta baktığımız gökyüzünde olabilir. Ama asıl olması gereken yer düşünme şeklimizdedir. Düşünürken sade yollar izlemeli, kargaşa ve umutsuzluğa yer vermemeliyiz. (Ve spor! Her yazılımcı spor yapmalıdır!)
Karşımızda açılan kod penceresi, ister bizim eski kodumuz olsun ister başkasının daha önce yazdığı, bunu sakin bir şekilde karşılamalı ve şu soruları sormalıyız:
Eğer kod bizimse:

  1. Bunu yazdığım anda çalışacağına inanmamış mıydım?
  2. Şu anki durumda ne değişti?
  3. Yeniden yazmak MADDİ anlamda ne kazandıracak? (En iyi kod çalışan kod’dur./UB)

Kod bizim değilse:

  1. Bu kodu yazanla kendimi neden kıyaslıyorum?
  2. Bu kod bana ne katacak? (her zaman en kötü kodlamalar bile bir katmadeğer sağlar)
  3. Bu kodla projeyi btirmek analiz yeteneğimi arttırmaz mı?

Bu sorulara gerçekçi yanıtlar vermeli ve gerekirse objektif görüşte olduğuna inandığınız arkadaşlarınızdan fikir almalısınız.

Bu sendromlarla başa çıkmada izleyeceğimiz diğer bir yol, etkenleri kontrol altına almaktır. Internet dünyası mağlum, hertürlü içerik mevcut, fakat asıl sorun bilginin sistematik olmamasıdır. Bizi en çok zorlayan nokta budur.
İşte bu aşamada kendimizi google arama mühendisliği hakkında biraz daha bilgilendirmemiz gerekiyor. Çoğu zaman çıkan hatayı google’a yazmak çözüm getirebilir ama bazı durumlarda en basitinden programlama dilini de eklemek daha iyi sonuç almamızı sağlar.
Bir diğer baş edilmesi gereken konu, yeni programlama dilleri ya da betiklerini öğrenme direncidir. Bu noktada şu aklımızdan hiç çıkmamalı. Yazılan bu diller ya da betikler, her zaman daha kolay öğrenilsin ve geliştirici grup daha rahat işine devam etsin diye başka bir dil ya da betikten türetilir. Örneğin JQuery’ i ele alalım. JQuery ilk bakışta çok farklı gibi görünse de aslında CSS işaretçileri kullanır ve bir süre sonra gerçekten kullanımının kolay olduğu görülür.
Baştan şunu kabul edelim bu meslek zor. Dışarıdan görüldüğü gibi değil.
Bu mesleği yaparken bir maden işçisi kadar tetikte ve zihni açık olunmalı. Sürekli bir kendini yenileme durumu içinde olduğumuzdan bedensel olarakta zihnimize yakın bir performansa ihtiyacımız olacaktır.
Farkındalıklar dileğiyle….

Tagged in , ,

Yazılım Projelerinde Parayı Projeden Kazanmayanlar!

Proje Felsefesi 7 Aralık 2008 | 2 Comments

Hayatımın 2 yılında freelance çalıştım ve bu blog’ ta anlatacak çok malzemem var. Bu malzemeleri yazdığımda herhalde en fazla, parayı projeden değilde yazılımcının emeğinden kazanmaya çalışanlardan söz ederim.

Bir yazılım projesinde en büyük yatırım, başlangıçta iş gücüdür. Cebinde 10-15 bin ytl parası olan “girişimciler” hepsiburada ya da gittigidiyor kopyası yaptırmak için harekete geçer. Bu büyük gider kaleminden dolayı sözüm ona girişimciler, bir bilgisayarın başında oturularak yapılan bir işi çok basit ve o kadar paraya değmez olarak nitelendirebilirler.

Artık geriye çeşitli bahanelerle söz verilen parayı vermemek için kafa yormak kalır. Bu tip insanlar özellikle parlayan başarılı internet işlerinden sonra ortaya çıkar ve ellerindeki 10-15 bin ytl (belki daha az) ile bu firmalara kafa tutma yanlışlığında bulunurlar.

Sonuç istatistiksel olarak kesindir. Başarısızlık!

Yazılım mesleğine gönül vermiş olanlara buradan sesleniyorum. Bu tarz bir işte güzel bir sözleşme imzalayın ve paranın yarısını da peşin alıp, verdiğiniz sürenin 3′ te 1′ inde projeyi beta olarak açın. Ve size verilen en ufak bir teminatın ya da sözün yerine getirilmemesi durumunda gerekli yasal ihtarı yapın.

Kendinizi bu köle tüccarlarından uzak tutun….