Bu yazıda IBM Yazılım Akademisi 2012 Türkiye 3’üncü AEG grubunun bir üyesi olarak “Fırsat Yönetim Sistemi” isimli projemizin anatomisini yapım aşamalını ve ayrıntılarını, bunun yanında bir proje yarışmasında başarının da gördüğüm kadarı ile nelere bağlı olduğunu ve püf noktalarını anlatmaya çalışacağım.

 

ibm ya2013_logo

 

 

 

Projeye başlarken: Başlangıç birçok proje için çok önem arz etmektedir. Başlangıçta dikkat etmeniz gereken birçok husus vardır. Bu hususlar madde madde anlatılmaya çalışılmıştır.

Yarışma Seçerken: Başarılı bir projeye başlarken dikkat etmeniz gereken maddelerden bir tanesi ve en önemlisi hangi proje yarışmasına katılacağınız olması. Dünya genelinde nerdeyse her alanda(yazılım dilinde –teknolojide) yarışmalar yapılmaktadır. Siz ve ekibiniz hangi teknolojik dile yakın hissediyorsanız onun yarışmasına katılmalısınız. Proje yarışmasının konusu(konsepti) da tercih yaparken size yardımcı olacaktır.

Ekip: Ödül alacak projeler genelde büyük projeler olur ve büyük bir projeyi kısa zamanda yazmanız için iyi bir ekibiniz olması gerekmektedir. Ekip arkadaşlarınızı seçerken en önemli unsur onlarında kendi alanlarında iyi olması veya çok iyi coder’lık yapması değildir. İyi anlaşıyor olmanız ve çalışma isteğidir. Bir ekip üyesi az bir bilgi ile bile çalışma hırsı ve iyi bir iş bölümü ile projeye çok büyük pozitif etki oluşturabilmektedir. Proje yaparken büyük ihtimalle okulda bulunduğunuz saatten daha fazla proje ile uğraşmanız gerekecektir bunun içinde ekip arkadaşlarınızı iyi seçmeniz gerekmektedir. Yazılım Akademisi 2013 itibari ile ekip veya danışman hocanızı değiştirme hakkına sahipsiniz. Bu hakkı gerektiğinde kullanmaktan kaçınmayın. Ekip’te çalışmayan bir üyenin varlığındansa olmaması daha uygundur.

Proje Danışmanı: Danışman akademisyen projeye bire bir etki eden kişi değildir ama bir yemeğin tuzu biberidir. Danışmanın etkisi ile yaptığınız bir projeyi final’e taşıyabilir ve ödül alabilirsiniz. Juri üyeleri de yaklaşık danışmanınız yaşlarında olduğunu varsayarsak ve danışmanınız o konuma gelene kadar kaç yerde jurilik yaptığını düşündüğümüzde, juri’lerin bakış açısını seçen ve projeye ne değer katacağını en iyi bilen kişidir. Aynı zamanda konuları hâkimiyetinden ötürü projenizin hangi tarafa doğru gelişmesi gerektiğini sizden daha iyi kestiren kişi olacaktır. Danışmanınız yapamadığınız kod parçacığını sormak için danışmanlık yapmamaktadır. Danışmanınıza kod danışmayın, bir şeyi yapamadı iseniz o bölümü geçin diğer kısımlar ile ilgilenin ve danışmanınız bilgilendirin. Her hafta danışman hoca ile yapılacak 30-45dk arası bir görüşme(geçmiş hafta yapılanlar, haftaya yapılacaklar) gayet yeterlidir.

Öğrenci Mentor: Danışman hocanızız yanında size hem fikirsel hem kod’sal yardımcı olacak fikir verecek ve sorularınız soracağınız daha önce proje yapmış kendi döneminizden veya üst dönemlerden bir öğrenci danışman alabilirsiniz. Bu kişiyi siz bulamazsanız danışman hocanızdan bulması için rica edebilirsiniz. Bu kriter zorunlu olmasa da projeniz ve sizin için bir kolaylık olacaktır.

Proje Seçerken: Proje seçimi çok önemlidir çünkü yanlış seçtiğiniz bir proje 1 senenize mal olabilir. Projelere bakarken projenin size ne kadar yakın olduğu önemlidir. Projeyi günlük hayattan bir ihtiyaç’dan seçmeniz o projeye özgün fikirler ve çözümler katacağınız anlamına gelmektedir. Eğer projeyi bir katalog’dan seçiyorsanız proje üzerine ne kadar geliştirebileceğinizi bir süre düşünün ve bunları not alın. Daha sonra notlara baktığınızda özgün bir proje olup olmadığını kontrol edin. Proje boyutu da seçim aşaması için önem arz etmektedir. Projeniz sizin yapamayacağınız bir boyutta olmamalıdır. Birçok grup bu hatayı yaptıklarından dolayı baştan kaybetmişlerdir. Örneğin Kâğıtsız Hastane Otomasyonu projesini yapmak hiç proje yapmamış olan veya az deneyimli olan bir grup için fazlası ile ağırdır. Unutmayın ne kadar büyük ve kapsamlı proje yaptığınız önemli değil ne kadar iyi yaptığınız önemli. Proje seçerken daha önce seçtiğiniz yarışmaya katılmış birilerine danışabilirsiniz ve danışman hocanıza danışmakta çok önemlidir. Danışmayı usül olsun diye değil gerçekten danışmak için danışın. Birkaç üzerinden düşünülmüş proje ile danışman hocanıza başvurunuz. Klasik DB bağlantılı otomasyonel sistemler artık ilgi çekmemektedir! Artık herkes DB bağlantısı ile oluşturulan bir proje yapabilmektedir. Projenize farklılık katmalısınız. Veri’lerin miktarı çoksa veri madenciliği üzerine teoriler geliştirirerek. Karar yapıları çoksa YSA(Yapay Sinir Ağı) kullanmaya çalışarak, güvenlikle ilgili ise parmak izi tanıma, Sosyal Sorumluluk ile ilgili ise Görme özürlüler için ses kullanımlı projeler gibi projenizin yanına bir şeyler katmalısınız.  Projeler genelde Konseptleri ile birlikte verilirler bu makalenin ele aldığı IBM Yazılım Akademisi 2012 yarışması “Akıllı Şehirler Oluştur” idi 2013 teması “Akıllı Analytic Sehirler Oluştur” olduğu için daha fazla algoritma daha fazla raporlama gerekmektedir. Yazılım Akademisi 2013 itibari ile proje değiştirme hakkına sahipsiniz. Bu hakkı gerektiğinde kullanmaktan kaçınmayın. Projenizi uygunluğu konusunda tereddütleriniz varsa danışman hocanız ile konuşup erkenden değiştirmeniz size önemli bir zaman kazandıracaktır.

İlk Adım: Projenizin kapsamını belirlemeniz ilk adımınız olmalıdır. Bu projede ne yer alacağını belirlemelisiniz yaklaşık 30-50 maddelik bir liste yapmanız düşünülmektedir. İçine projenin her özelliğini ve güvenlik katmanları gibi ayrıntılı özelliklerini de bu listeye koymalısınız. Ve bu listeye Database Tablolarınızı ve oop kullanıyorsanız çok kullanacağınız class’larınızı yazarak başlamalısınız. Unutmayın İnsan gördükçe motive olacaktır projenizi yaparken ki süreçte projeyi çalıştırıp diğer insanlara gösterebilecek şekilde bir yapı oluşturun.

Proje yapmak için eğitim setlerine vb başlamayın! ,bunlar sadece zaman kaybı olacaktır. Eğitim setleri size projede kullanabileceğiz pek bir şey öğretmez. Eğitim setlerine ve kitaplara referans kaynağı olarak göz atabilir spesifik bir konu hakkında izleye-okuyabilirsiniz ama eğitim seti bitireyim de proje yapayım demek zaman kaybı anlamına gelecektir. Projeyi yapmak için kendinize ve ekibinize 6 ay süre ayırın. 6 ay düzenli çalışmanın sonucunda ödül alacağınız bir proje elde edeceksinizdir.

Proje Raporu: Proje raporunu proje sonunda birden yazmayın adım adım yazın. Projenizi değiştirdiğiniz her adımda rapor’unuza güncelleyin. Bu çok daha sağlıklı bir rapor ortaya çıkaracaktır. Proje raporunda hiçbir ayrıntıyı gözden kaçırmayın ve proje raporunu okuyan herkes projenizi tam olarak nasıl çalıştığı ve ne kullanıldığı hakkında bilgi bulabilirsin. Proje raporunda yazdığınız her kelimeyi danışman hocanıza kontrol ettirin ve asla olumsuz-yapamadığınız bir şeyi yazmayın. Unutmayın Yazılım Akademisi yarışması için proje raporları puanı proje puanınızın %10 + %50 yani %60’ı olduğundan dolayı iyi yazılmış bir rapor ile finalist olabilir veya kötü yazılmış bir rapor ile başarısız olabilirsiniz. Bu konuya makalenin sonunda tekrar değinilecektir.

Projeyi Yaparken;

  • Projenizde sınav haftalarınız dışında her hafta kesinlikle bir şeyler ekleyin. Tüm projeyi kısa sürede yapamazsınız. Ve insanın bir hafta içinde verimli proje çalışabileceği zaman bellidir.
  • Her grup arkadaşınıza aynı seviyede iş vermek zorunda değilsiniz ama her grup arkadaşınız ortalama herkesin zaman harcadığı kadar zaman harcaması en sağlıklı yöntem olduğu için bunu sağlayacak şekilde görevleri dağıtın.
  • Proje lideri seçmeniz gereklidir. Proje lideri demek birilerine emir dağıtan değil; ekip arasında oryantasyonu sağlayan rapor’u takip eden, danışman hoca ile görüşme ayarlayan ve herkesin verilen görevlerde neler yaptığını kontrol eden kişidir.
  • Projede kullanacağınız program ve yapıları önceden seçmelisiniz. Bu seçme işi için epey araştırma yapmanız gerekebilir. Bu süreçte zaman alan projeyi hangi IDE ile yazacağınızı veya hangi DBMS kullanacağınız seçmeniz değil, diğer yan programları –report engine’leri – seçerken harcayacaksınızdır.
  • Projede çok class-metod-sayfa kullanmanız kötü bir şey olmasa da gereğinden fazla kullanmanız işinizi çok zorlaştıracaktır. (Bağlı işlemleri tek sayfada yapmaya çalışın)
  • Projede aklınıza gelen yeni fikirleri ekleyebilmek için dinamikliği sağlamaya çalışın. Örneğin bir java projesi yapıyorsanız her şeyi metotlarda tanımlayın ve metot çağırma şeklinde sisteminizi kurgulayın.
  • Projenin ortaya çıktığı her aşamadan itibaren ekipte olmayan birine projeyi test ettirmeniz ve onun fikirlerine göre projeyi geliştirmeniz de yararlı olacaktır. Sonuçta jüri’de ilk defa gören kişilerden olacaktır.

Proje Genel Hatları ile Oluşmuşken

  • Üstede belirttiğimiz gibi artık herkes DB kullanarak proje-projeler yapabilmektedir. DB ile bağlantılı bir proje yapmak artık ödüllendirilecek bir şey değildir. Projenizi farklılaştırmalısınız. Projenizi akıllılandırmalısınız. Projenin verimi artıran yöntemleri denemeli veya denediğinizi göstermelisiniz. Bunu birkaç örnek ile açıklayalım. Çok fazla veriyi birleştirip toparladığınız ve bunu müşterilere sunduğunuz bir sistem yapıyorsanız, veri raporlama programlarını veya algoritmalar ile verileri analiz edin. Analiz etmek için Veri Madenciliği konularında uzman olan hocalarınız ile görüşüp bu konuda araştırma yapıp mümkün olan algoritma ve sistemleri kullanın. Yine Karar yapıları veya puanlama ile ürünlerinizi sınıflandırıyorsanız Yapay Sinir Ağı oluşturup sınıflandırmak çok daha verimli bir sistem ortaya çıkartacaktır. Projenizi farklılaştıran bir diğer kısım ise Sosyal Sorumluluk Projesi haline dönüştürmenizdir. Eğer projeniz Görme Özürlülere de hitap ediyor ya da bir şekilde ses-görüntü işlemesi yapmışsanız projenizi farklılaştırmışsınız demektir. Her projede uygulanabilecek bir ekstra da sms api ile kullanıcılarınıza sms göndermek sureti ile olmaktadır.

 

IBM Türkiye Teknoloji Lideri Kıvanç Uslu: “Ne Yaparsanız Yapın Projenizi Satın”

 

  • Arayüz: Projenizi çalışır hale getiren arka plandaki kod’larınız olsa da juri’ninde dikkat edeceği insanlarla etkileşim kurduğunuz alan Arayüz’ünüz olacaktır. Arayüzünüzü Web2.0 teknolojileri veya HTML5 ile dizayn ediniz. JQuery Ajax gibi Web 2.0 ürünleri kullanarak kullanım kolaylığı ve görünümü güzelleştiriniz. Her ne kadar ekran görüntüsü skalaya yansımasa da puanınızın %10- %20 lik kısmını buradan geldiğini unutmayın. Arayüzünüz projeyi sattığınız yerdir küçümsemeyin.
  • Projenizde kullandığınız teknolojileri çeşitlendirin; mümkün oldukça çok teknoloji ve program kullanın. Tabiî ki bu programları amaçsız kullanmayın; programları güvenliği, erişilebilirliği, , görselliği ve analizi artırmak için kullanabilirsiniz. Eğer bir kurumun proje yarışmasına katılıyorsanız (Yazılım Akademisi – ImagineCup vb) o kurumun ürünlerini kullanın. Burası çok önemli bir nokta, bu ürünlerin her biri size puan olarak geri dönecektir. Sadece ürünleri kullanmakla kalmayın her ürün kendi içinde daha ayrıntılı özellikler içerir, o özellikleri de kullanmaya çalışın ve kullandığınızı gösterin (örn IBM DB2:PureXML). Projemizde biz 23 adet program-teknoloji kullandık.

Erişilebilirlik:

  • Projenizi yapmak yeterli değildir projenizin erişilebilirliğinin maksimum seviyeye çıkarmak zorundasınız. Kullanıcılar ancak ulaşabilecekleri programları kullanabilecektir. Jüri babından da erişilebilirlik büyük önem taşır. Bizim projemizdeki android uygulamamıza özel olarak ilgilenmiş ve sorular sormuşlardı.
  • Projeniz Web App ise tüm tarayıcılara uygun olmalı, kendi boyutunu ayarlayabilmelidir. Bu noktada tarayıcı testlerini yapabilirsiniz.
  • Projenin çok önemli kısmı Mobil Applicationdur. Projeniz uygunsa mobil kısmını yapmalısınız. Yazılım Akademisi için mobil olarak Android desteği çok önemlidir(IBM-Java ilişkisi)(Microsoft-Windows 7 ) Andorid projeniz web projenizin tamamını kapsamıyor olsa da çalışılabilirliği ve hem raporda hem juri sunumunda telefon üzerinden gösterimi gerçekten ekstra puan kazandıracaktır. Diğer Mobile Platformlarda da uygulamanızı geliştirebilirsiniz. Sadece Android uygulaması için projenin başından itibaren bi arkadaşınızı bu işe adayabilirsiniz. (Dikkat: Grup Çalışma Kriter)
  • Projenizde Sosyal Sorumluluk kısmını da göz ardı etmezseniz bu size ekstra puan olarak geri dönecektir. Sosyal sorumluluk kapsamında görme özürlü kullanıcı grupları için mobile-web tabanında ses veya klavye kombinasyonları gibi ekstralar ile projenin ürününü onlarında kullanabileceği bir sistem yapmanızdır.

Güvenlik

  • Güvenlik Reel hayatın kullanıcı arayüzünden sonra en önemli kısmı diyebiliriz. Projelerinizde her ne kadar reel hayatta direk kullanıma geçmeyecek olduğundan bu konuya önem vermiyor olsanız da altyapınızın ilerdeki güvenlik seçenekleri için uygun olduğunu ve projeyi yaparken güvenliğede önem verdiğinizi raporlarınızda göstermeniz gerekmektedir. Güvenlik testleri ile de raporunuzu desteklemeniz gerekir.
  • Web Projesi yapıyorsanız metodlarınızı class’lara taşımak SQL injection için önlemler almak yetkileri denetlemek çok önemli bir parçasını oluşturmakta. Bunlara ilaveten SSL (Application Portal tarafından) puanlamada önem arzedecek bir kısımdır. CSRF-XSRF, dinamik cooking gibi başka önlemlerde uygulayabilirsiniz.
  • Güvenlik Raporları:  Güvenliğinizi test etmeniz ve ilgili sonuçları raporlamanızda tavsiye ederiz. Biz projede Netsparker Community programı ile testlerini gerçekleştirdik.

Ölçeklenebilirlik

  • Reel hayatta yakın proje yapmanın bir diğer şartı ölçeklenebilirliği üzerine çalışmanızdır. Projenizi kaç kişi ve kaç mb’li db için düşündünüz, testleri neye göre yaptınız gibi ayrıntılar çok önemlidir. Projenizi oluştururken veya oluşturduktan sonra onu ölçekleyebilmelisiniz. Bir örnek vermek gerekirse benim projem 1 GB hdd alanında 10GB Bandwith ile günde 100 alışveriş 100 ziyaretçi 10.000 hit’i kaldırabilecek düzeydedir ve tahmini maliyeti şu kadardır gibi bir sonuca teorik bazda ulaşabilmeniz gerekmektedir.
  • Ölçeklenebilirlik horizontal-vertical-cloud şeklinde 3 seçenek olarak ifade edilebilir. 3 seçenek içinde araştırıp sonuçları rapora eklemelisiniz.
  • Projeyi Günümüzde çok popüler olan cloud hosting’de veya reel server’da çalıştırmanızda size çok büyük puan getirecektir. IBM’in Cloud hizmetlerinden satında alabilirsiniz local’inize kuracağınız cloud’a deploy ederekde çalıştırma yoluna gidebilirsiniz.  Bunları yapamıyor olsanız bile cloud hosting ile ilgili fiyat araştırması yapmanız ekstra puan anlamına gelecektir.
  • Projenizi Reel Server’da yayımlayın. IBM ürünlerinin çalıştığı-kullanıldığı commercial hosting bildiğim kadarı ile yoktur. Bundan dolayı sunucu kiralayıp içine ilgili ürünleri kurup deploy etmeniz gerekmektedir. Sunucu kiralarken popüler ve iş yapan sunucular çok maliyetli olacağından sistem özellikleri düşük ucuz sunucular işinizi görecektir. Sunuculara işlem yaparken ssh’dan yapacağınız için Linux bilginiz olması da gerekmektedir. YA 2012 Juri Özel Ödülü alan proje reel hayatta bir sunucuda çalışmakta idi.

Raporlama

  • Tüm projeler belirli raporlamalar gerektirler. Raporlama projenin nasıl yapıldığını anlatan Mimari Şema, Kullanıcı arayüzü, veri tabanı, performans veya güvenlik raporları olabileceği gibi eldeki verilerin işlenmesi ile oluşan ve program kullanıldığı sırada üretilen raporlardan da olaşabilmektedir. Birinci tip yapı raporlarını ara-final raporları ile birlikte teslim etmeniz tavsiye ederiz. Kullanım raporları projenin reel hayatta kullanılmasına durumunda verecek raporları ifade eder ve ikinci tip rapora girer. Programınız bu raporları güncel verilere göre otomatik oluşturuyor olması gerekmektedir. Otomatik oluşturulan raporların örneklerini de Final raporunuza eklemenizi tavsiye ederiz. Raporları mümkün oldukça IBM ürünleri ile oluşturmaya çalışmalısınız, sizden beklenilen budur. Biz projemizde IBM ürünü olan veya bağlantılı ürünler ile bağlantısız ürünlerden oluşan toplam 7 farklı report engine kullandık. Bunlardan 3’ü yapısal raporlama 4’ü ise anlık raporlamadan oluşmaktadır. (Java Unit Test, Jasperreports, Manage Engine Application Manager, Visaul VM, YSlow Netsparker)

Son Kullanıcı Testi

  • Projeleri tasarlamak veya hayata geçirmek önemli olsa da projelerin onları kullanacak kişilerin verdiği tepkileri almak ve bu tepkilere göre projeleri düzenlemek reel bir projedeki kadar YA dada önemli olmaktadır. Son kullanıcı projeyi kullanan ve projeyi kullanmak için teknik bir destek almayan kullanıcıya denir. Genelde halk veya düşük yetkili bireyler olur. Projeden ortaya çıkan ürününüzü kullanıp yorumları da raporlayın. Bir görme özürlü ile ilgili projeyi bir görme özürlü ile test yapmanız ve bunu resimleyip göstermeniz projenizin değerlendirmesine pozitif etki sağlayacaktır.
  • Ders asistanı veya sınıf arkadaşlarınıza da projeyi test ettirip aldığınız fikirlere göre projeyi geliştirebilirsiniz.

Kullandığım IBM Ürünleri

Yazılım Akademisinde IBM ürünleri kullanmanız başlı başına bir kriter olduğu gibi projenizin geçerli olabilmesi içinde IBM ürünleri yada open source ürünler kullanmak zorundasınız.

  • WebSphere Application Server: Projenizi kesinlikle WAS da çalıştırmanızı öneririm. Proje puanı açısından bu çok önemlidir. Tabi ki bazı arkadaşlar ilk önce apache-tomcat’te çalıştırıp proje sonlarına doğru WAS’a geçerim diye düşünmekte ama birince çalışan kod diğerinde çalışmayabilmektedir. WAS’ın diğer bazı IBM veya diğer şirket programları ile bağlantıları mevcuttur onlarla köprü kurabilmektedir. Diğer programlar ile bu köprüleri araştırın ve kurma çalışın. SSL WAS üzerinden yapılan bir ayardır ve birçok proje başlığında gereksinim olarak sunulmaktadır.
  • DB2 Express C: Projede database olarak kullanmak zorunda olduğunuz serverdır. Tamamen bağımsız çalışır. Diğer SQL Server’lar ile benzer özelliklere ve sql sorgularına sahiptir. UDF ya da Stored Procedure kullanabilirsiniz. DB2’nun pureXML gibi ekstra özellikleri vardır. Bu ekstra özelliklerin her biri puan demektir. Ekstra özellikleri araştırın ve projeye uygun olarak kullanın.
  • RSA: IBM’in profesyonel düzeyde kullandığı derleyici Rational Software Architect’dir ve IBM mühendisleri Yazılım Akademisi için bu ürünü kullanmanızı tavsiye ediyor. Eclipse’de IBM ürünü olsada Eclipse Community bir üründür. RSA eclipse’den daha gelişmiş bir yapıya sahiptir. RSA’yın SVN’den Diagramlara kadar çok fazla ek özelliği vardır. Tüm bu ek özelliklerini kullanmanızı ve raporlara yazmanızı tavsiye ederim. RSA lisanslama anahatırını Academic Initiative’den  sorumlu akademisyeniniz ücretsiz olarak indirebilirsiniz. Bilgisayarın saatini geriye alarak da RSA’yı kullanabilirsiniz.
  • Eclipse: RSA’yı kullanmanızı engelleyen bir sebep varsa bu durumda eclipse kullanmalısınız. Projenizi RSA’da yapıyor iseniz bile android kısmı varsa bu  kısmı eclipse’de kodlamak zorundasınız.

Projemizde 26 farklı ürün-program kullanmışız. Bu ürünlerin 19 tanesi IBM ürünü veya IBM ürünlerine direk bağlı program-teknolojilerdir.  Bu teknolojilerin isimlerini ve ayrıntısını final raporumdan ulaşabilirsiniz.

Proje Raporu Yazarken

  • Ara Rapor puanının genel puana etkisini %10, Final raporunun genel puana etkisini %50 olduğu için raporların toplam puanlara etkisi %60 mı gibi çok büyük bir oran olacağı hemen göze çarpacaktır. Bundan dolayı Rapor hazırlamaya çok önem göstermeniz gerekmektedir. Yazının bu kısmında rapor hazırlama konusuna ayrıntılı şekilde değinilecektir.
  • Ara Rapor: Proje sürecinin yarısında iken verilen rapordur. SRS raporu isimli örnek bir rapor yarışma websitesinde bulabilirsiniz. Bu rapor’daki formatı kullanmanız gerekmektedir. Formatı kullanmak oradaki maddelere adım adım uygulamak değildir. Kendiniz oradan madde çıkarabilir veya ekleyebilirsiniz. Rapor’un sınıflandırılması çok önemlidir. IBM’de herkesin uzman olduğu bir alan vardır. DBA database kısmına bakacaktır ve database kısmında projenin databasesini grafiksel ve teorik olarak anlatmalı ayrıntılar vermeli tam olarak ifade etmelisiniz. Aynı konuların raporun başka bir yerinde tekrar edilmesi sorun değildir. Bizim projemizin ara rapor puanı 100 üzerinden 98 idi.
  • Yazının başında bahsedildiği gibi raporlarınızda adım adım ilerlemelisiniz. Projeye ilk başladığınız haftadan itibaren raporu doldurmalı ve her hafta yaptıklarınız doğrultusunda raporunuzu düzenlemelisiniz. Projeyi bilen biri olarak rapor yazmaktansa adım adım yazmak çok daha güzel bir rapor ortaya çıkaracaktır. Ara raporunuzun puan babından az önemi olduğunu söylemek doğru değildir geçen sene(2012)’nin puanlarına bakıldığında ara rapor puanları ile ilk 3 oynadığını görebilirsiniz. Aynı zamanda final raporunun da bir tabanı olduğu için ara rapor’a çok önem gösterin. Bizim projemizde Ara rapor 25 sayfa, final raporu ise 33 sayfa olmaktaydı. Yani ara rapor’la rapor’un çoğu yazılmıştı. 25 yada 33 sayfa sizi korkutmasın proje yaparken her ayrıntıyı not edince gerçekten yazılacak çok bilgi ortaya çıkıyor. YA 2012 Birincisi projenin Final raporu 300 sayfa idi, 300 sayfa olmasına gerekmez her şeyin olması gerekir.
  • Final Raporu: Ara Rapor’un üstüne ekleyeceğiniz bilgiler ile oluşturacağınız rapordur. %50 gibi projenize çok büyük bir etkiye sahiptir. Projenizin kodlama-grafik-programlama kısmı %40 olduğunu düşünürsek rapor’a proje kadar özen göstermelisiniz. Raporda ara raporun devamı şeklinde olmalı ve kriterlerde istenen her ayrıntıya özel önem vererek doldurmalısınız. Ekran görüntüsü ve grafiklerle raporları süsleyebilirsiniz. Raporlarınızın her noktasını danışman hocanıza okutup onaylatmayı unutmayınız.
  • Raporlar hakkında uyarılar
    • Amaç ve Kapsamı çok iyi belirlemeniz
    • Rapor’larda Kullandığınız teknolojilerin sadece isimlerini değil kullanma yerlerinide  yazınız
    • Teknolojilerde kullandığını alt birimleride belirtmeyi unutmayın. Yani DB2’nun yanında PureXML’i ayrı olarak belirtin. Veya RSA’nın yanında SVN’i ayrı olarak belirtin.
    • Tarihinde teslim edilmeyen proje raporları kabul edilmeyebilir veya puan kırılabilir.
    • Grup Çalışma Kriteri: Bu kriter rapor ama özellikle sunum sırasında verilen bir puandır. Bu kriterde diğer grup arkadaşlarınızla ne kadar birlikte çalıştığınız görev dağılımını ne kadar yaptığınıza göre puanlandırırlırsınız. Bir projeyi tek başınıza yapmak puanınızı düşürecektir. Juri’ye sunum yaparken projenin her kısmında hepinizin çalıştığını ve bildiğini göstermeniz gerekmektedir. Raporlarda da isim vermeyiniz ve yaptık şeklinde takı ile kullanınız.
    • Final raporunuza programınızı anlattığınız-uygularken çekilen bir kısa video’yu eklemeniz finalist olmanız için önem arzedecektir.

Projede Kullanılacak Kaynaklar

  • Bildiğim kadarı ile kaynaklar online ve herhangi bir basılı kaynak mevcut değildir. Arama motorlarını kullanmanızı öneririm. Eğer RSA’da kodluyorsanız arama yaparken rsa ile ilgili pek sonuç bulamayacaksınızdır. Sizin kullanım seviyeniz için birbirine çok benzer olan rsa yerine eclipse yazıp aynı sorunu aratmanız daha kolay-rahat sonuca ulaşmanız için bir yöntemdir.
  • Türkçe Kaynak olarak yazilimakademisi.org sitesinde yer alan kaynaklar- makaleler en büyük yardımcınız olacaktır. O makaleler sayesinde boş yere zamanınızı alacak birçok adımdan kurtulup direk programlama kısmı ile uğraşabilirsiniz.
  •  IBM RedBook/GreenBook : IBM’in her ürünü için ürettiği ürünün genel tanıtımı, kullanımı ve örneklemesini içeren güzel bir kaynak. Başlangıç için güzel bilgiler vermektedir. Genelde bilgiler teorikseldir. Tamamı İngilizcedir.
  •  IBM Developer Works: IBM Mühendisleri veya diğer mühendisler tarafından yazılan üst düzey bir IBM blog’udur. İçinde Güncel gelişmeler ile ilgili makalelerin dışında hazırlanmış tutorial adı verilen eğitim yazılarıda bulunmaktadır. Developer Works’den bir nebze yararlanılabilmektedir. Tamamı İngilizcedir.
  • Developer Works Forum: http://www.ibm.com/developerworks/forums/im_forums.jspa Community olan ve herkesin içine soru-cevap yapabileceği bir forum. Tamamı İngilizcedir.
  • IBM InfoCenter: Ibm her ürünü ve her ürün içinde sürümü için bir infocenter kurmaktadır. İnfocenter ilgili ürün hakkında en geniş kaynak bulabileceğiniz, her özelliğini en ince ayrıntısına kadar bulabileceğiniz bir kaynaktır. Temel aşamada çok kullanabileceğiniz bir kaynak değildir. Tamamı İngilizcedir.
  • http://bigdatauniversity.com/ DB2 konusunda IBM tarafından oluşturulmuş bir community, çok yararlı kaynaklar var sınav bile olabiliyorsunuz. Tamamı İngilizcedir.

Örnek Proje Raporu

  • Projemizin 100 üzerinden 98 alan Ara Raporunu, Final Raporunu, Kullanıcı Demo’sunu, Finalist Sunumumuzu amungen.wordpress.com blog adresimden ulaşabilirsiniz.

Sunum

  • Finalist olmanız durumunda bizce dikkat etmeniz gereken bazı noktalar var.
  • 15 dakikanız olduğu için klasik herkesin yaptıkları değil üste ifade edilen size puan getiren yerleri vurgulamaya çalışın.
  • Sunumda canlı gösterim önemlidir, projenizi o anda açın ve juri’nin istekleri hususunda işlemler yapın. Ve tam çalıştığını gösterin.
  • Sunuma resmi bir kıyafetle gitmenizi tavsiye ederim. Bu birebir etki etse de etmese de oradaki herkes böyle giyiniyor olacak.
  • Finalist olursanız benimle sunum ve son durum hakkında birebir daha fazla bilgi paylaşımında bulunmaktan mutluluk duyarım.

 

Teoriksel Bilgi

  • Ara Rapor Değerlendirme Kriterleri
    • Proje Analizi: Gereksinimlerin Analizi  ve Dokümantasyonu
    • Dizayn: Use Case ve Sınıf Diyagramları
    • Arayüz Tasarımı, Son Kullanıcı Testi
    • Veritabanı Tasarımı: ER Diyagramları, Şema Tasarımları, Veri Modeli v.b
    • Raporda SOA ya da Web Servisleri  Kullanımına ilişkin tasarım ve dokümantasyon
    • IBM Yazılımlarının Etkin Şekilde Kullanımı
    • Projeyi Benzerlerinden Farklı Kılacak Özellikler
    • Web 2 teknolojileri kullanımı: AJAX v.b
    • Final Raporu Değerlendirme Kriterleri
      • Proje Analizi: Gereksinimlerin Analizi  ve Dokümantasyonu
      • Dizayn: Use Case ve Sınıf Diyagramları
      • Arayüz Tasarımı, Son Kullanıcı Testi
      • Kodlama ve Çıktı
      • Uç Birim Testi
      • Dokümantasyon:
      •  Veritabanı Tasarımı: ER Diyagramları, Şema Tasarımları, Veri Modeli v.b
      • Raporda SOA ya da Web Servisleri  Kullanımına ilişkin tasarım ve  dokümantasyon
      • IBM Yazılımlarının Etkin Şekilde Kullanımı
      • Projeyi Benzerlerinden Farklı Kılacak Özellikler
      • Web 2 teknolojileri kullanımı: AJAX v.b