BAŞA DÖN

Internet Girişimciliği ve Erkyazılım

Erkyazılım olarak yaklaşık 8 yıldır yazılım sektöründe özellikle internet alanında çözümler geliştiriyoruz.
Şimdiye kadar Kamu, Belediye, Gaz Dağıtım, Elektrik Dağıtım, Su İdareleri gibi birçok kurumsal müşteriye hatta T.C. Cumhurbaşkanlığı’na kadar farklı internet projeleri geliştirdik.

2008 yılından itibaren bu yetkinliğimizi kendi internet projelerimizi çıkararak sürdürüyoruz.

Internet sektörünün gelişmesi son yıllarda ivme kazanmış olsa da internetten gelir elde etmek, başarılı internet projeleri üretmek için hala önümüzde uzun yıllarımızın olduğu hepimizin malumu.

Yurtdışındaki örneklere baktığımızda çoğu başarılı internet girişiminin ardında başarıya ve çalışmaya odaklanmış bir girişimcinin yanında bu fikre ve insana değer veren, yatırım yapan yatırımcıların olduğunu hepbirlikte görüyoruz.

Türkiye'de fikri olan ve çalışma azmi bulunan birçok girişimci olmasına karşılık bu girişimleri destekleyecek teknoloji ve bilginin gücüne inanan yatırımcıların eksikliği bize gücümüz olmasada Dreamventure adında bir yatırımcı ağı kurma fikri ve cesareti verdi.

İnsanları ikna etmek ve sizin inandığınız şeylere inanmalarını sağlamak için bazı şeyleri öncelikle sizin yapmanız, bu işte başarılı olabileceğini göstermeniz gerekiyor. Bu yüzden öncelikle Dreamventure olarak kendi ürettiğimiz projeleri yayına aldık,

-BİSORUSOR, “Soru sor, cevap ver, bilgeliğini konuştur, puan kazan”, Soru ve Cevap Portali, www.bisorusor.com
-BELEDİYEDEN, “Yerel yönetimlerin ortak noktası”, Kamu siteleri sıralama ve haber servisi, www.belediyeden.com
-SIRALIYORUZ, “Farklı sektördeki internet sitelerini Türkiye bazlı istatistiksel olarak sıralama”, http://sirali.yor.uz

Diyeceksiniz ki neden hep Türkiye, yurtdışında bir girişim örneğiniz yok mu?
Denedik, hala deniyoruz, 2008 yılında Amerika’da Amazon satıcılarına yönelik, satıcıların hayatlarını kolaylaştıracak, “Envanter ve Satış yönetimi”, www.marketplacedominator.com ürününü piyasaya verdik. Deniyor, öğreniyor, gelişiyoruz.

Sizinde bizimle paylaşacağınız bişeyler varsa hem yüzyüze şirketimize hemde www.dreamventure.biz olarak sitemize bekleriz.


Çevik Yöntemler ve CMMI ?

Uzun yıllardır Bilgi yönetimi Portallerinden Kurumsal Portal Uygulamalarına; Kurumsal Entegrasyondan Belge Yönetimine kadar farklı sahalarda iş yapmaya çalıştık.

Bazı işler zamanla olgunlaşıyor. Son 4-5 yılımız Internet sektöründe Web 2.0 teknolojilerini anlama ve uygulamayla geçti diyebilirim.

Portal, Semantik Web, Ontoloji, Türkçe Dil İşleme konuları hep ilgi sahamızda oldu. Hem günlük ticari hayatımızı devam ettirirken hemde ARGE yapmaya gayret gösterdik.

2009 yılından itibaren Data-mining, Elektronik Belge Yönetimi, konularında ARGE fırsatları aradık.

Kasım 2010 tarihinde Tübitak BİLGEM’le ARGE projelerine resmi olarak başlamış olduk.

Tübitak ve süreçlerini anlamak biraz zamanımızı alsada sonunda hergeçen gün yaptığı işi ARGE merkezli, standartlara uygun yapmaya çalışan bir firma olmak bize mutluluk veriyor.

Tübitak’la iş yapmak gerçekten zor diyebilirim. Şimdiye kadar Çevik Metodları benimsemiş firmamızın doküman ağırlıklı bir sürece adapte olması biraz zaman alıyor. Doküman ağırlıklı bir süreç yönetmek yerine 2007 yılında Orhan Kalaycının verdiği seminerde anlattığı gibi Çevik Yöntemleri benimsemiş bir CMMI olgunluk seviyesi olabilir diye düşünüyorum. Bu konuda çalışmalara en azından fikir planında başladım diyebilirim.

Bu fikirlerimi ve isteklerimi sevgili dostum Orhan Kalaycı’yla paylaştığımda aşağıdaki önerileri oldu.

Yöneticiler aşağıdaki soruların cevaplarını aramalı:

  • Müşteri istekleri tam anlaşılmış mı?
  • Yapılan işler müşteri isteklerine göre planlanmış mı?
  • Planlara uygun ilerliyor mui?
  • Test çok önemli - müşteri İstekleri dahil hersey test ediliyor mu?


Detaya girersek liste uzun ama uzun lafın kısası: şirket içinde herkese ara sıra “Ne yapıyorsun? Planın var mı? Ne zaman bitecek? Nerden buldun o süreyi, bitirme süresini” soruları sorulmalı.

En önemli sorulardan birisi : Yaptığın işi nasıl test ediyorsun. Bu testleri otomasyona geçirebilir miyiz?

Yöneticiler aşağıdaki konulara dikkat etmeli:

1. Plan

  • Bütün yazılım geliştirme faaliyetleri (gereksim analizi dahil) planlı olmalı
  • En fazla İki günlük işler halinde küçük parçalara bölünmeli

2. Sayılar

  • Süre maliyet hata sayısı gereksinim sayısı
  • Gereksinimlerin ne kadarı analiz edildi ne kadarı geliştirmede, ne kadarı testten gecti ne kadarı testten kaldı. Bunların hepsi sayısal olarak istenmeli.

3. Test

  • Test otomasyonu
  • Gereksinimlerin test edilme oranları
  • Test ortamı, vb.

Yukarıdaki Orhan Kalaycı’nın yaptığı tespitlerin hepsine katılıyorum.

CMMI konusunda şekle fazla takılmadan CMMI modelinin özüne ve amacına odaklanıp ve mümkün olduğunca sadece belge ağırlıklı şeklen yaklaşımlardan uzak durmayı ve kuralların lafzaatina değil hikmetine yani neden ne amaçla konduklarına odaklanmayı düşünüyorum.
Konu ile ilgilenenler için Emin BORANDAĞ'ın "BASAMAKLI CMMI MODELİ İLE EXTREME PROGRAMMING METODUNUN DEĞERLENDİRİLMESİ" konulu Yüksek lisans tezini, Orhan Kalaycı'nın CMMI ve Çevik Yöntemler dökümanını incelemenizi öneririm


Hayattan bir kesit: Kurbağa ile Akrep'in hikayesi

Genelde televizyon kültürü olarak Türkiye ortalamasının altında sayılırım, beğendiğim dizileri izlemeye çalışırım. Daha çok CNBC-E'deki dizileri izlerim. Türk yapımı olarak şimdiye kadar izlediğim ve beğendiğim birkaç diziden biri de Ezel diyebilirim.

Show TV'de gösterime giren ve şimdiye kadar 10.bölümü yayınlanan Ezel, popüler kültüre hitap ettiği kadar edebiyattan değerli eserleri iyi yorumlamış. Umarım bundan sonrası içinde aynı çizgide giderler.

Dizi'nin hikayesi uzun, anlatılmak yerine izlenmesi daha iyi olur lakin ben yinede kısaca bahsedeyim.

Üç mahalle arkadaşı ve onlara katılan 4. bir kızla birlikte iyi bir arkadaşlık sergileyen (sergiledikleri zannedilen) insanların kızın üçkağıtcı babası ile herkes aslına rucü etmeye başlar.

Üçkağıtçı baba, feleğin çemberinden geçmiş, bir bakışta adam çözen, düzen kuran, insanların zaaflarını çok iyi kullanabilen bir düzenbazdır. Tabi, arkadaşlıkları iyi olan bu kişilerin arasını nasıl bozacağını ve onlara nasıl istediği şeyleri yaptıracağıyla birlikte herbirinde nasıl bir kötülük potansiyeli olduğunu iyi bilmektedir.

Deneyimli üçkağıtçı, herbirinin potansiyelini ve zaafını çözer:

Ali: Çok iyi bir arkadaş, sadık bir dost, güvenilir, cesaretli, gözünü budaktan sakınmayan görünen birisinin altındaki "gözünü kırpmadan kötülüğe bulaşacak ve hatta bir insanı öldürebilecek" bir potansiyel.

Cengiz: iyi arkadaş, kanka, zevkli bir kişiliğin arkasında  gündelik yaşayan, zayıf karakterli, isteğini direkt alamayacak kadar eksik ve en yakın arkadaşını rahatlıkla satabilecek bir potansiyel.

Ömer: Esas oğlan, Saf temiz, arkadaşlığa dostluğa önem veren, iyi bir aile düzeni olan. Sevdiği arkadaş dediği kişilere karşı kendini feda edebilecek kadar cesur. Sevdiğini koruyan ve asıl kızında sevdiği. Potansiyeli iyilik ve sevdiği kişilere koruması gerekirse kendini feda etmesi.

Neyse olanlar olur ve bizim kötü potansiyeli olanlar soygun yaparlar, yapılan soygunun bütün işaretleri hiçbirşeyden haberi ve suçu olmayan Ömer'i gösterir. Ömer hapse atılır. Film devam eder. Ömerin tek suçu kötülükleri bilmemesi, kötüleri tanımamasıdır. Hapishane ona çok şey öğretir. Ordaki bir bilge ona hertürlü şeyi öğretir. Sonra bir vesiyle hapisten kurtulup yeni bir kimlikle Ezel olarak tekrar hayata döner.

Dizinin ilk bölümlerinde Ali Cengiz'e sorar: "Yaw biz bu çocuğa nasıl böyle bir kötülüğü yapacaz". Cengiz'in cevabı çok manalıdır. Size bir hikaye anlatacağım der. Benimde çok hoşuma giden belkide herzaman konusu geldikte anlatacağım o güzel hikayeyi anlatır.

"Kurbağa ile Akrep"

Zamanın birinde bir nehir kıyısında bir Kurbağa yaşarmış. Bu kurbağa nehrin diğer kıyısına hayvanları geçirir, iyilik edermiş.

Bir gün Akrep gelmiş, "Kurbağa kardeş beni de karşı kıyıya geçir" demiş. Kurbağa iyiniyetli ama o kadarda saf değilmiş.

"Olur mu öyle şey, sen Akrepsin ben seni nasıl karşı kıyıya geçiririm. Sen bana zarar verirsin" demiş.

Akrep, muhatabını iyi biliyor "Sen beni yinede karşı kıyıya geçir, ben sana bişey yapmam, suyun içinde ikimizde varız, sokarsam ikimizde birden boğuluruz".
Kurbağa'nın aklına yatmış, doğruya böyle birşey olursa ikisinede zarar gelecek. Sırtına almış Akrepi tam yolun ortasında iken Akrep Kurbağı bir güzel sokmuş, tam birlikte boğulurlarken Kurbağa sormuş, "Neden?".

 

Akrep ne desin, "Ne yapayım, huyum bu"

 

NOT:  Jim Collins'in İyi'den Mükemmel Şirkete kitabında Nucor yöneticilerinin dediği gibi "Çalışkan bir çiftçiye çelik üretmeyi öğretebilirsiniz ama iş ahlakına sahip olmayan birine, çiftçiliğin iş ahlakını öğretemezsiniz. Ne yaparsak yapalım herkes içindeki potansiyeli kullanır.


Nasıl oluyordu da aynı öğrenim süreçlerinden geçmiş insanlar çok farklı kariyerler yapabiliyorlardı?

İnsan'ı tanımak ve anlamanın zorluğunu herkes kendinde yaşadığı gibi birçok ünlü düşünür çağlar boyu aynı konuyu irdelemiş ve herkes tarafından kabul görebilecek sonuçlar çıkarmaya çalışmışlar.

İnsan nedir? Aynı süreçten geçen insanların hayattaki konumları neden farklı olur? Başarılı olmak nedir? İnsanları başarılı kılan temeller nelerdir? İnsan'ın hayattaki ana hedefi ne olmalıdır? Ana hedef sadece başarmak ve başarılı olmakta mıdır? Hayat sorgulanmadan sadece yaşanıp tüketilecek bir meta'mıdır?

İnsan'ın varlığı belkide soru sorabilme gücüyle eşdeğer, birde bu sorulara bulabildiği cevaplarla. Soru-Cevap, sebep-sonuç hayatımızı çoğu zaman çepecevre kaplıyor.

Bu sorulardan bazılarına cevap bulmak için bisorusor.com'a girebilir veya

Aynı eğitimden geçen hukukçular, hekimler, mühendislerden bazıları nasıl oluyordu da alıp başlarını gidiyor, çok başarılı noktalara gelebiliyorlarken diğerleri genelde suçu kendilerini “çevreleyen” koşullara atıp “makus bir talihin kurbanı” olarak toplumsal hayatın adeta “tortuları” haline dönüşüyorlardı?

sorusuna Bersay İletişim Grubu Başkanı Ali Saydam beyin hayat tecrübesini okuyarak aşağıdaki cevabı elde edebiliriz.

"Vicdanlı, mukaddesi olan, çalışkan ve umutlu insanların meslekte “iyi” olabilmek için çok ciddi avantajları oluşuyordu.   Hem sağlam bir dünya görüşünüz olacaktı (ne olmasından çok; sağlam, derinlikli ve kendi içinde tutarlı olması önemli), hem de çevrenizdekilerin dünya görüşünü belki benimseyecek değil ama “anlayacak ve takdir edecek” entelektüel derinliğe sahip olacaktınız."

Bu güzel cevaptan anlaşılacağı gibi insanın kendi dinamikleri olması gerekiyor:"lokomotif ruhlu insanlar". Özellikle iç dinamiklerimizi tanımamız ve onları iyi kullanabilmemiz lazım.

- İç dinamiklerimizden vicdan'a sarılmalıyız. Hangi kültürde olursa olsun kişi vicdanının üzerini örtmedi ve sesini tamamen susturmadıysa "Vicdanı ona her zaman doğruyu söyler".

- Belirli bir mukaddese sahip olmalıyız, kendimizden değerli gördüğümüz değerler olmalı.

- Çalışmakla çalışkan olmak aynı şeyler değildir. Çalışkan olmak süreklilik ister, devamlılık gerektirir. (Konuşarak, toplanarak ve iletişime geçerek çalışkan olunmaz, çalışmaya yoğun zaman ayrılmalı)

- Umut, insanın iç dinamiklerinden. İnsan'a yaşama azmi ve sevinci verir, ruhumuzu besler.

- Hayatı tanımak, sağlam bir dünya görüşünün olması. Buna insan aklının gözlüğü diyebiliriz. Bazılarımız miyoptur, bazılarımız hipermetrop. Dünya görüşümüzle hayatın anlamını yakalamış oluruz. Olası durumları, etrafımızı doğru görmemiz bu gözlükle mümkündür. Ali beye katılıyorum sağlam, derinlikli, kendi içinde tutarlı olmalı. Ayrıca başkasının gözlülüğüyle insan ne kadar idare edebilir, dünya görüşümüze tecrübelerimizi katıp içselleştirip kendimize mal etmeliyiz.

- Empati yeteneğinin gelişmiş, geliştirilmiş olması. Karşıdakini anlamayla birlikte, takdir edebilmeliyiz.

- Başarılı olmak için başarılı olunmaz, hedef gaye başka olmalı, başarı sadece ara kademede bir çıktıdır. O çıktıyı almakla doğru yolda olduğumuz hissi kuvvetlenir.


Google maps IP engeline web sunucusu tabanlı reverse proxy çözümü

Ocak 2009'da yayına alınan Google Maps altyapısını kullanan "Cumhurbaşkanımız Nerede?" uygulaması Google servislerine ait bazı IP adreslerine mahkeme kararı ile erişim yasağı koyulmasının ardından hizmet veremez hale gelmişti. Aradan geçen bunca zamana rağmen Google tarafından çözüm üretilmemesi üzerine sorunu kendi yöntemlerimiz ile ortadan kaldırmak üzere durumu incelemeye koyulduk.

Google yoğun ziyaretçi trafiğini sunucular arasında dengelemek için çeşitli yöntemlere başvuruyor. Ülkemizden gelen bağlantılarda Google DNS sunucuları engellenmiş olan IP adresini içeren bir çözümleme yapıyor ve sorunda burada başlıyor. Kullanıcıların kendi bilgisayarlarında yapacakları bazı ayarlar ile bu problemi gidermek mümkün. Ziyaretçilere "Cumhurbaşkanımız Nerede?" uygulamasını kullanabilmek için bu ayarları yapmaları gerektiğini söylemek hiç mantıklı olmayacağı gibi birçok kullanıcının üstesinden gelemeyeceği teknik detayları içeren bir konu olmasıda işin cabası. Öyleyse bu işi kullanıcıların yerine uygulama sunucusunun kendisi yapmalıydı "Reverse Proxy" fikri bu gerekçe ile ortaya çıktı.

http://khm.google.com, http://khm1.google.com, http://mt0.google.com, http://mt1.google.com sunucularının IP adreslerindeki engelden dolayı haritaların yüklenemediğini tespit ettik. Öncelikle uygulama sunucusunda DNS çözümleme ayarlarında bazı değişiklikler yaparak bu servislere erişimi engel bulunmayan IP'ler üzerinden yapmasını sağladık böylece sunucu üzerinde Google Maps servisi çalışır hale geldi. Uygulamada kullandığımız "Google Map Javascript API" yi hazırladığımız Reverse Proxy üzerinden çağırdık.

<script type="text/javascript" src="webproxy.ashx?Url=http://maps.google.com/maps/api/js"></script>

webproxy.ashx dosyası "Url" parametresi ile kendisine gönderilen adrese ziyaretçinin gönderdiği bazı temel üstbilgileri ekleyerek sunucu tarafında bir istekte bulunur (http://msdn.microsoft.com/en-us/library/debx8sh9.aspx). Google sunucusundan alınan yanıt "text/javascript" tipinde ise kullanıcıya bu dosya transfer edilmeden (http://msdn.microsoft.com/en-us/library/system.net.webresponse.aspx) önce IP adreslerine erişim engeli bulunan sunucu adreslerine müdahale edilir. Yerleşik String.Replace metodu kullanılarak örneğin "http://khm.google.com/" adresi "webproxy.ashx?Url=http://khm.google.com/" şeklinde değiştirilir. Böylece kullanıcının internet tarayıcısına ulaşan "Google Map Javascript API" dosyasında erişim engeli bulunan diğer sunuculara yapılacak isteklerin "Reverse Proxy" üzerinden geçmesi gerektiği belirtilmiş olur. Ayrıca Google tarafından kullanıcı oturumunu takip etmek için gönderilen çerez bilgileri kullanıcıya özel bir "Session" değişkeninde saklanır (http://msdn.microsoft.com/tr-tr/library/system.net.httpwebrequest.cookiecontainer.aspx) aksi taktirde daha sonra yapılacak bir dizi isteği Google Map sunucusu ilişkilendiremeyerek yanıt vermeyi kesecektir.

O anda ekranda görülen bölgenin harita fotoğrafları "Google Map Javascript API" dosyasında dinamik olarak yaptığımız değişiklik sayesinde "webproxy.ashx?Url=...." adresi üzerinden talep edilir. Yeni hedefi "Url" parametresinden alan "webproxy.ashx" dosyası kullanıcıya özel olarak saklanan çerez bilgilerini ve kullanıcının tarayıcısından gönderilen bazı temel üstbilgileri ekleyerek sunucu tarafında yeni bir istekte bulunur. Google Maps sunucusu tarafından gönderilen içerik tipinin (MIME) "image/png" olduğu teyit edildiği taktirde istemciye aktarılırken sunucu performansı için istemci tarafı önbellekleme komutları eklenir (http://msdn.microsoft.com/en-us/library/system.web.httpresponse.cache(v=VS.90).aspx). Tüm bu işlemler ziyaretçi farketmeden ve kullandığı internet tarayıcısında yada işletim sisteminde hiçbir ayar değiştirmeyi gerekli kılmadan arka planda kendiliğinden gerçekleşmiş olur.

Yeterli teknik ve kodlama bilgisine sahip değilseniz kendi "Reverse Proxy" uygulamanızı baştan yazmak yerine http://www.codeproject.com/KB/IP/reverseproxy.aspx ve http://www.codeproject.com/KB/web-security/HTTPReverseProxy.aspx adresindeki gibi açık kaynak kodlu projelerden yararlanmayı tercih edebilirsiniz. Eğer PHP tabanlı bir sistem kullanıyorsanız http://www.glype.com/ adresindeki açık kaynak kodlu uygulamaya eklenti yazmayı deneyebilirsiniz.