Monthly Archives: May 2007

MICROSOFT SERTİFİKALIRINIZI KORUYORMUŞ. YA SİZ?

mcp-hero-techspec.jpgBlogumda yeri geldikçe Microsoft ‘un yürüttüğü daha doğrusu yürütemediği sertifikasyon politikasından bahsediyorum. SERTİFİKASYON HASTALIĞI başlığı altında Microsoft ‘un sertifikalarının değerini yitirmeye başladığını ve bunda da soruların BRAINDUMP dediğimiz formatta erişilebilir olmasının etkisinin olduğundan bahsetmiştim. Durum değişmedi hala herkes soruları paylaşıyor hem de yasak olmasına rağmen. (Non-disclosure Agreement gereği yasak)

Şu günlerde ise MSDN bloglarını ve sertifikasyonla ilgili haber gruplarını meşgul eden bir açıklama var. 3 gün önce gerçekleştirilen WebCast ile Microsoft sertifikaları ne şekilde korumaya çalıştığını ve hilekarlar ile nasıl mücadele ettiğini açıkladı. (Soruların habersiz olarak değiştirilmesi , sertifikaların geri alınması vs.) Ciddi manada ses bulan ve belirli bir kesmi memnun eden bu açıklamalar Microsoft ‘a bu konuda kaybettiği prestijin bir kısmını geri kazandıracaktır diye düşünüyorum. (Yazının sonundaki linkten siz de bu sunumu izleyebilirsiniz)

Haberi vererek girişi yaptım. Şimdi de sıra konuyla ilgili kişisel görüşlerimi açıklamaya geldi:

Microsoft ‘un bu çabaları yeterli olur mu? Elbetteki olmaz. Burada iş sertifika sahipleri ve yetkili sınav merkezlerine düşünüyor. Eğer insanlar bindikleri dalı kesmez hatta korurlarsa bu kötü gidişat biraz da olsa düzülebilir. Bindikleri dalı kesmemek konusuna da bir açıklama getireyim:

Öncelikle Yetkinli Sınav Merkezleri bu işten para kazanıyorlar. Hem sınav ücretleri üzerinden kazanıyorlar hem de bu yetkinliğe sahip olmaları tercih edilmelerini sağladığı için dolaylı olarak eğitimler üzerinden para kazanıyorlar. Fakat katıldığım bazı etkinliklerde kahve aralarında öğreniyorumki (hem de oralarda çalışan insanlardan) sınav merkezi olmaktaki amaç bambaşka. (Mesela tüm eğitmenleri sertifka sahibi yapmak gibi ?????)

Bindiği dalı kesen diğer grup ise sertifika sahipleri. Bu kişiler karşılaştıkları illegal durumlara Microsoft ‘a bildirmek yerine göz yumuyorlar yada o işin bir parçası oluyorlar. Soruların açıklanılması hatta ima yolu ile üzerinde tartışılması yasakken “şu konudaki sorular çok zor” gibi açıklamalar havalarda uçuşuyor. Eğer bu sertifikaları emek vererek aldıysanız ve verdiğiniz bu emekle bir fark yaratmak istiyorsanız , emeğinize sahip çıkmanız gerekmez mi?

Bu kişi veya kuruluşlar bindikleri dalı kesmeye devam ederlerse ne olur? Şu an olduğu gibi bu sertifikalar değerlerini yitirmeye devam eder. (Son iki ay içinde gerçekleştirdiğim iş görüşmelerinden sadece birinde sertifika soruldu. Soran şirkette de Mcirosoft Partner olduğu için sordu.) Sertifkalar değerini yitirirse sınav merkezleri ve eğitim kurumları bu işten bekledikleri parayı kazanamazlar . Sertifika sahibi kişiler için de ellerinde belge bir kağıt parçası olarak kalır. Belki bir de hafızalarında sınava hazırlanırken geçirdikleri zamanın hoş hatıraları kalır.

Yukarıda bahsi geçen durumlar sadece Microsoft sertifikaları için değil tüm sertifiklar için geçerli. Sadece Microsoft çok fazla ön planda ve gündemde olduğu için onun üzerinden verdim mesajımı. Umarım bu konudaki pürüzler zamanla giderilir ve hilekarlığı kendilerine ekmek kapısı olarak görenlerin yükselişi de durur.

Şimdilik benden bu kadar. Aşağıdaki linklere bakmak Microsoft sertifikaları hakkında güncel kalmanıza yardımcı olabilir. Sağlıcakla kalın…

CertGuard – Why Certify?
Konuyla ilgili güzel bir blog
Certification Integrity and the NDA Webcast
Konuyla ilgili olarak gerçekleştirilen WebCast
Perps On the Run! (or, Issues in Certification I.P.)

YAZILIM PROJE YÖNETİMİ SEMİNER NOTLARIM

spm.jpgGüzel bir CETURK etkinliği geride kaldı. Beklenenden çok katılımcı olması bizleri memnun ederken , umarım düzenlemiş olduğumuz bu seminer de katılımcıları memnun etmiştir. CETRUK etkinliklerinde koşuşturmacadan ötürü pek not alamasam da bu seminerde hem daha dikkatli dinledim hem de güzel notlar aldım. Aykut Taşdelen Bey ‘in anlattıklarını kendi deneyimlerimle harmanlayarak sizlere aktarmaya çalışacağım.

Sanırım öncelikle her yapılan aktivititenin proje olmadığını anlamak gerekiyor. Herşeyden önce bir projede hedef, kaynak, ekip ve zaman kısıtı olmalıdır. Öte yandan bir projenin kapsamı ,bütçesi ve gerçekleştirileceği zaman çok iyi bir şekilde belirlenmelidir. Proje kapsamının doğru belirlenememesi doğrudan proje bütçesini ve zamanı etkileyecektir. (Yani ne var ne yok herşeyi ilk sürüme dahil etmeye çalışmayın. )

Aykut Bey seminerde proje kavramıyla ilgili kısa kısa bilgiler verdikdek sonra Proje Yönetimi Nedir sorusuna cevaplamaya çalıştı. Proje yönetimi = Planlama + Organizasyon +Uygulama + Kontrol gibi basit bir denklem kurabiliriz. Tüm bu aşamaların gerçekleşmesini sağlamak proje yöneticisinin görevidir.

Herşeyden önce iyi bir planla başlanmalıdır. Aslında İYİ PLAN NEDİR? gibi bir soru sorsanız sanırım açıklaması bu bloga sığmaz. Ama gerçekçilik ve esneklik benim planlarda aradığım temel özelliklerdir. Yani “Abi zorlasak 2 haftada bitiririz biz bu projeyi ” gibi bir yaklaşım asla kabul edilemez. Organizasyon da proje yönetiminin temel taşlarındandır. İşleri ve ekibinizi çok iyi organize etmeli ve verimliliği artırmak için elinizden geleni yapmalısınız. Uygulama da ise projenin bir ürün haline gelebilmesi için gerekenlerin yapılmasını sağlamalısınız. Kontrol ise projenin sonuna bırakılmamalı ve her aşamada belirli aralıklarla kontrol yapılmalıdır. Bu sayede OLMASI GEREKENLE OLAN arasındaki farkı görebilir ve tedbirinizi ona göre önceden alabilirsiniz. Sanırım kontrolü hep işin son kısmına atmak yapılan en büyük hatalardan biri.

Seminerde sıra kötü durum senaryolarına gelmişti. Yönetilemeyen Projelerin IT sektörüne maliyeti 75 Milyar $. Projelerin %30 gibi büyük bir kısmının asla başarıya ulaşamadığını söylüyordu Gartner verileri. Ülkemizde de bu facialardan fazlaca yaşanıyor (Şirket ismi vermek doğru olmayacağından veremiyorum)

Peki neden böyle oluyor? Hedeflerin doğru tanımlanmaması, projenin kapsamına yabancı olunması ,kullanılcak olan teknolojiye yabancı olunması , iletişim sorunları ve projelerin iyi yönetilememesi gibi pek çok nedeni var bu durum. Fakat yönetimsel becerilerin azlığı %32 gibi büyük bir paya sahip bu başarısızlıklarda. Bu da bizlere PROJE YÖNETİMİNİN önemli ve marifet gerektiren bir iş olduğunu bir kere daha gösteriyor.

Seminerde Aykut Bey proje yönetiminin alt basamaklarına da değindi. Bunlardan bir tanesi ZAMAN YÖNETİMİ. Burada Aykut Bey ‘in verdiği örnek üzerinden gitmekte fayda var. Örneğimiz : Senge ‘nin Kurbağa benzetmesi. Senge ‘ye göre bir kurbağayı doğrudan kaynar bir suya atarsanız hemen kaçıp kurtulmak ister ve onu haşlayamazsınız. Fakat normal sıcaklıktaki bir suya koyar ve yavaş yavaş ısıtırsanız kurbağa bunu fark etmez ve onu haşlayabilirsiniz. (Örnek mide sorunlarına neden olduysa şimdiden özür diliyorum) Buradan projelere geri dönersek: projeleri zamana yaymamız şart. Bir zaman çizelgesi ve son bitiş tarihi belirlenmeli. Fakat bu zaman belirlenirken önceki deneyimler, ekipteki kişi sayısı ve iş yükü MUTLAKA göz önünde dulundurulmalıdır.

Proje sürecinde en çok vakit kaybedilen noktlardan bir tanesi de TOPLANTILAR. Bazen bayanların ALTIN GÜNLERİNE dönen toplantılar yoğun iş stresinin atıldığı sohbet ortamları olarak görülmemelidir. (Sohbeti molalara saklamakta fayda var) Bu gibi zaman kaybettirici durumların önüne geçmek için toplantı içeriği, yeri, süresi, molaları ve lideri önceden belirlenmelidir.

Yazılım proje yönetimi , yazılım geliştirme metodolojinizle doğrudan ilişkilidir. Bu noktada Aykut Bey Yapısal Yaklaşım (CMMI:Capability Maturity Model Integration) ve Çevik Yaklaşım (XP-Agile) ‘dan bahsetti. Yapısal yaklaşımda temel hedef sürecin doğru planlanarak zaman ve para kayıplarını azaltmaktır. Bu yaklaşım ile yazılım geliştirme süreçlerinin iyileştirilmesi sağlanır. Zaten CMMI da yazılım kalite süreçlerini belirleyen ve düzenleyen bir yöntemdir. Fakat çok yapısal ve dökümantasyon ağırlıklı olması bazen temel hedefimiz olan ÜRÜNÜ ortaya koyamamamıza veya hedefimizden sapmamıza neden olabilir. (İşten çok işin yapılış şekli önem kazanır ki bu da projeye zarar verebilir)

Çevik yaklaşımda ise temelde birey bulunur. Kullanılan araçlar ve yöntem ikinci plana çekilir. Dökümantasyondan ziyade ilk hedef ortaya çalışır bir ürün koymaktır. Katı bir plan izlemek yerine değişikliklere cevap vermeyi önemser. (Her ne kadar değişikliklere cevap verebilir olmak güzel bir özellik olarak görülse de projenizde çok sık değişiklik yapma ihtiyacı duyuyorsanız önceki aşamalarda bir aksaklık olabilir. Özellikle de ANALİZ aşamasına bir bakmata fayda olabilir.)

Bu yaklaşımların dışında farklı yaklaşımlar elbette mevcut. Bu noktada hangi yolu izleyeceğinizi belirlemek size kalıyor. Öğrencilik hayatında en çok izlenen yöntem Expreme Programming ‘dir (XP) diye düşünüyorum. Son dakikada danışman öğretmeninizin isteklerini hızlıca projeye yansıtmanız gerekebilir. Fakat kurumsal bir yapı mevcutsa ve daha önceki projelerden sürekli bilgi ve kod bakımından faydalanılacaksa burada dökümantasyona ağırlık veren bir süreç izlemekte fayda var. (Zayıf dökümantasyon sonradan kulaklarınızın çınlamasına neden olabilir :) )

Seminerin sonunda ise Aykut Bey proje yönetimi kolaylaştıracak iki Microsoft çözümüne ( Visual Studio Team System ve Visual Source Safe ) değindi ve ufak bir demo gerçekleştirdi. Aslında bu ürünlerin her biri başlı başına bir seminer konusu ama ben yine de bu ürünler hakkında da bir kaç satır birşey yazayım.

Önce Visual Source Safe ile başlayalım. Microsoft ‘un versiyon kontrol ürünüdür diyebiliriz. Kaynak Konfigürasyon Yönetimi ‘ni (Source Configuratin Management) işemlerini kolaylaştıran bu araç ile hangi kaynak kod üzerinde kimin çalışcağını belirleyebilir ,kaynak dosyalarınız koruyabilir , yapılan değişiklikleri geri alabilirsiniz. Visual Source Safe uygulamasını bilgisayarınıza kurunca otomatik olarak Visual Studio ‘ya entegre olur. Kurulumdan sonra kaynak dosyaların tutulacağı bir dizin belirlenmelidir. Yine aynı şekilde yönetici yönetim paneli ile yeni kullanıcılar tanımlayıp sisteme dahil etmelidir. Bundan sonra projeniz için gerekli dosyaları Visual Studio üzerinden önceden oluşturulan kaynak dosya dizinine bağlanarak açabilirsiniz. Microsoft ‘un bu ürününü .NET platformunda uygulama geliştirenler mutlaka denemelidirler. (Javacılar için de CVS var.)

Visual Studio Team System ise hem yapılsa hem de çevik yaklaşımı benimseyen şirketlerin ihtiyaçlarına cevap verebilecek nitelikte, çok fazla özelliği bünyesinde barındıran bir ürün. Bu ürünün en büyük avantajı yazılıma daha doğrusu projeye ait bütün süreçleri birbirine entegre edebilmesidir. Bünyesinde veritabanı tasarımcıları , yazılım geliştiriciler , yazılım mimarları , test ekibi gibi pek çok proje çalışanının ihtiyacını karşılayacak çözümleri barındırır. Bir diğer önemli avantajı ise projenin izlenebilirliğini artırmasıdır. Bu izlenebilirlik hem müşteri (bir web arayüzü ile) hem de proje yöneticisi için geçerlidir. Visual Studio Team System ile ilgili detaylı bilgiyi buradan alabilirsiniz.

Yukarıda bahsi geçen araçların listesini uzatmak mümkün fakat bunlar proje yönetimini sadece kolaylaştırırlar. Asla bu araçları kurup kullanarak iyi bir proje yönetebileceğinizi sanmayın. Hatta bazen işlerinizi zorlaştırabilir. Şöyleki uygulama geliştiricilerin bu tip araçlara alışması zaman alabiliyor. Hele de bu araçlar ile CODE POLICY tanımları yaptıysanız uygulama geliştiricinin çalışma stiline müdahele etmiş oluyorsunuz. Fakat proje ekibinizde benim gibi yolun başında kişiler varsa CODE POLICY gerekebilir. (Code Policy tanımları ile isimlendirmeler , değer atamaları , çevrimler vs. konusunda kısıtlamalar getirerek projenizin kalitesini artırabilirsiniz)

Öte yandan bu tip araçların ciddi maliyetleri vardır. IBM ‘in Rational ürün ailesiyle (Rational Clear Case) ile hakim olduğu bu pazara Microsoft Visual Studio Team System ile yeni bir soluk getirmeye çalışmıştır. Bundan 6 ay önce katıldığım bir seminer sayesinde VSTS ile tanışmıştım. O zaman daha yeni yeni adını duyurmaya başlayan VSTS sanırım pazarda beklediği yeri bulamadı. Bunun da temel nedeni bazı noktalarda alışkanlıkların ağır basması ve maliyetler. Bu tip araçların kullanımına karar vermeden evvel ne getirip ne götüreceğini iyi bir şekilde analiz etmek gerekir.

Proje yönetimi ile ilgili bir diğer önemli nokta da içinde beşeri faktörlerin ağırlıkta olduğu bir süreç olduğundan mutlaka belirli bir oranda esneklik gerektirdiğidir. Eğer projeyi bir bilgisayara yaptırıyor olsaydınız ne zaman biteceğini neler olabileceğini çok rahatlıkla kestirebilirdiniz ama işin içine insan faktörü girince bu hesaplama daha da zorlaşıyor. Öte yandan esneklik katsayınızı çok büyük tutmamakta fayda var. Bu da maliyetleri artırmasına , zaman kaybına hatta projenin başarısızlıkla sonlanmasına neden olabilir.

Bu uzun yazı ile Aykut Bey ‘in seminerde bizlerle paylaştıklarını kendi bilgi ve deneyimlerimle harmanlayarak sizlere aktarmaya çalıştım. Umarım çok fazla sıkmamışımdır.

Bu güzel etkinliği gerçekleştirmemize yardım eden Aykut Taşdelen ‘e , Netron Bilişim Akademisi ‘ne ve Yıldız Teknik Üniversitesi Bilişim Klübü ‘ne teşekkür ediyorum ve daha güzel etkinliklerin sözünü şimdiden veriyorum.
Sağlıcakla kalın…

Seminer haberi
Seminerde kullanılan sunum

Visual Studio Team System
Visual Source Safe
CMMI-Türkiye mail grubu
Extreme Programming

JavaFX GELDİ SIKINTI BİTTİ Mİ?(import javafx.ui.*)

l0_javafx-landing.jpg
Bir süredir blogumda Zengin İnternet Uygulamaları (Rich Internet Application[RIA]) pazarındaki devlerin kapışmasını yazıyorum. Microsoft ‘un WPF ve bunun internet uygulamalarında kullanılabilir versiyonu olan WPF/E teknolojisi hakkında yazdıktan sonra Adobe ‘nin de Apollo ile cevap verdiğininden bahsetmiştim. Sonra WPF/E ad değiştirerek Sliverlight oldu. Kısaca ona da değinmeye çalışmıştım. Bir de bu gelişmelere Mono ekibinin MoonLight projesi eklenmişti. Bu proje sayesinde WPF/E gerçekten (E)verywhere olabilecek demiştik.

Ama hep gözümüz birilerini aradı. Yorumlarda hep kulağını çınlattık kendisinin. JAVA Dünyası peki ne diyecekti. Hep bu soruyu sorduk. JDK 1.6 ile görsellik konusunda yeni yeni toparlanmaya başlayan Java dünyası dolayısıyla SUN tüm bu gelişmelere sessiz mi kalacaktı? Artık bizlerde JAVA işin business kısmında , görsellikten elini ayağını çekti gibi bir izlenim oluşmaya başlamışken JavaFX ile SUN “Ben de buradayım” dedi.

Aslında JavaFX ‘i yazmak için biraz geç kaldım. Çünkü bu teknoloji 7-11 Mayıs 2007 tarihleri arasında San Fransisco ‘da düzenlenen JavaOne konferansında duyurulmuştu. Ama diğerlerini yazıp da JavaFX ‘ten bahsetmemek olmaz diye düşündüm.

JavaFX nedir diye birazcık araştırınca görüyoruz ki Java teknolojisine dayanan ve hayatımızdaki hemen her araçta karşımıza çıkmayı hedefleyen bir teknoloji. JavaFX ailesi bünyesinde JavaFX Script ve JavaFX Mobile gibi iki alt teknolojiyi barındırıyor.

Özellikle JavaFX Mobile ile mobil cihazlar için kaliteli ve görsellik açısından doygun uygulamalar geliştirmek kolaylaşacak gibi görünüyor. Çünkü hem bu uygulamaların yazılması hem de yürütülmesi için gerekli altyapıyı bünyesinde barındırıyor. JavaFX Mobile yürütme ortamı sadece JavaFX Mobile teknoljisiyle yazılmış uygulamaları değil aynı zamanda JavaFX Script içeren uygulamaları da çalıştırabilecek.

JavaFX Script ise JavaFX ailesinin temel taşı. Swing ,Java 2D ve Java 3D uygulamaları JavaFX Script ile daha da güçlenecek. (Sun is not replacing Swing with JavaFX; instead, JavaFX Script makes Swing much easier to use.) JavaFX Script ile gelen event oluşturma ve yürütme konusundaki iyileştirmelerden Swing uygulamaları da faydalanacak ve umuyoruz ki daha performanslı Swing uygulamaları göreceğiz. Şu anda JRE (Java RunTime Enviroment) ile JavaFX Script uygulamalarını masaüstünde çalıştırma imkanına sahibiz.

Öte yandan JavaFX ailesine zamanla farklı üyeler de katılacak. Sanırım SUN bu konuda yatırım yapmaya ve uzun süren uykusundan uyanmaya bu defa gerçekten kararlı. Yazının sonunda JavaFX Script ile hazırlanmış demolara ait linkleri bulabilirsiniz. Önceden gördüğünüz Silverlight veya WPF uygulamalarını aratmayacak kadar güzel örnekler var. Ama bu şekilde bir değerlendirmenin pek de sağlıklı olmayacağını düşünüyorum çünkü söz konusu olan görsellik olunca mutlaka tasarımcının zevki etkili oluyor. O nedenle bir kaç örneğe bakıp da bu teknoloji diğerinden daha iyidir deme şansımız yok.

Görsellik savaşları son sürat sürüyor. Uygulama geliştiriciler ve son kullanıcılar olarak şimdilik önümüze ne sunulacağını beklemekle meşgulüz. Belki de bir süre sonra bu kadar çok görsellik canımızı sıkcak ve gözümüz sadelik aramaya başlayacak. (Bkz )

Umarım SUN performans konusundaki vaatlerini yerine getirerek Microsoft ‘un yaptığı hataya düşmez (WPF uygulamalarının kullandığı sistem kaynağından bahsediyorum) ve JAVA kullanıcılarının görsellik konusundaki sıkıntılarını bitirir.

Hepimiz adına performans ve görselliğin dengede olduğu günler diliyorum. Sağlıcakla kalın…

JavaFX
JavaFX FAQ
JavaFX for Swing Programmers

JavaFX Script JavaFXPad Demo
JavaFX Script Studiomoto Demo
JavaFX Script Tesla Demo
Konu ile ilgili düşündürücü bir yazı

YAZILIM PROJE YÖNETİMİ SEMİNERİ

Bir CETURK organizasyonu olarak Yazılımda Proje Yönetimi konulu bir seminer düzenliyoruz. 21 Mayıs Pazartesi günü saat 16:00 ‘da Yıldız Teknik Üniversitesi ‘nde gerçekleştireceğimiz seminerde konuşmacı olarak Aykut TAŞDELEN bulunacak.

Seminerde aşağıdaki konulara değinilecek:
Gant Diyagramları
ceturk.png
Risk Analizi
Proje Planlaması
6 sigma
SWOT Analizi
Proje Yönetiminde Temel Yaklaşımlar
CMMI
MSF (Microsoft Solutions Framework)
eXtreme Programming
Proje Yönetiminde Microsoft Teknolojileri
Microsoft Project
Visual Studio Team System
Visual Source Safe

Aykut Taşdelen özellikle de Microsoft tarafında bu işin hangi araçlarla yürütüldüğüne değinecek ve sorularınıza cevap verecek.

Ayrıca etkinlik sponsorumuz Netron Bilişim Akademisi tarafından verilen 50 adet %30 ‘luk indirim kuponu ve 3 adet kitap çekilişle katılımcılara hediye edilecektir.

Seminerle ilgili ayrıntılı bilgi ve kayıt için buraya bakabilirsiniz.

NOT:
Sponsorluk konusunda bizlere her türlü desteği sağlayan Netron Bilişim Akademisi ‘ne ve Fikri Karabulut Bey ‘e teşekkür ediyorum.
Resim için de arkadaşım Erhan Burhan ‘a (eburhan) teşekkürlerimi sunuyorum.