Yapılacaklar Listesi (todo list) Sanatı

Etiketler cat-personal-development, todo, todolist, productivity, focus, odak, 1 gün 22 saat 37 dakika önce

Umarım zaten hepiniz neden bir yapılacaklar listesi tutmanız gerektiğini biliyorsunuzdur, özetlersek:

  • Ne yaptığınızı bilmek
  • Ne yapacağınızı bilmek

ama en önemlisi:

  • Binlerce şeyi aklınızda tutmak yerine bir yere not alıp beyninizden silmek

Bu son maddenin önemini yıllarca anlamamıştım, yeni yeni anlıyorum. Eğer yapılacak bir işi bir yere not almadıysanız o iş her zaman aklınızda kalacak, aynı çözemediğiniz bir bilmece ya da nedenini bulamadığınız bir bug gibi. Dolayısıyla yaptığınız işe odaklanabilmek için  o an yapmadığınız her şeyi, aklınızdan çıkarmanız lazım. Bunun da en pratik yolu bir yapılacaklar listesi tutmak.

Yapılacak listesi tutmak

  • Sistem belli olmalı ve güvenlir olmalı
    Hep aynı sistemi kullanın, küçük bir defter, todo list, tada list, remember the milk, sekreteriniz vs. Ne olduğunun önemi yok ama güvenilir ve pratik olmalı.

  • Listenizi açıklayıcı bir şekilde yazın
    Asla
    ve asla anahtar kelimeler yazıp ne de olsa sonra hatırlarım demeyin, zaten bu işin amacı aklınızdan bu konuyu çıkarmak. Aynı kod yazarken başka bir objeye verdiğiniz referansı silmezseniz memory leak olacağı gibi beyninize de o iş ile ilgili anahtar kelimelerden referanslar kurarsanız o iş aklınızdan tamamen çıkmayacak. Ya da aklınızdan çıkacak ve o işe tekrar döndüğünüzde o işin ne olduğunu hatırlamayacaksınız.

  • Adımlı detaylandırma
    Özellikle teknik konularda bazen listeye yeni bir madde eklerken çok fazla detaylara kaymak mümkün olabiliyor. Mesela “Blog’ a CAPTCHA ekle” maddesinin altında teknik olarak nasıl bir CAPTCHA kullanacağınızı dokümante etmenize ya da düşünmenize gerek yok. Bunu o maddeye gelince detaylandırabilirsiniz. Özetle önce ana notu alın, ondan sonra o işe geldiğinizde elinizdeki işi maksimum 2 saatlik yeni parçalara bölün. Eğer bir parça iki saati geçiyorsa muhtemelen gereğinden büyük bir parçadır demek ve onu da küçük parçalara bölmelisiniz. Bu yüzden ben ağaç yapısı ile girdi desteği olmayan bir todo list yazılımı kullanamıyorum, bence bu çok önemli.

    Çok büyük parçaları yapmaya çalışmak kötü sonuçlar verecektir. Mesela “Yeni CMS sistemi yaz” gibi bir madde tamamen işe yaramayan bir maddedir. Çünkü bu işin altında ne yapacağınız belli değil, ama bunu 2 saatlik işlere bölerseniz tam olarka ne yaptığınızı biliyor olacaksınız. Mesela “Database’ i tasarla”, “Yeni üye kayıt sayfasını yaz” vs.

  • Revize edin
    Düzenli bir şekilde listenizi gözden geçirin, bazı şeyleri hali hazırda yapmış olabilirsiniz, hemen listeden silin. Bazı şeyler artık gereksiz olabilir, hemen listeden silin vs. Ne kadar güncel olursa o kadar iyi çünkü bu sizin sisteminize güveninizi arttıracak bu da beyninizi rahatlatacak.

  • Önem  Sırası
    Yapılacaklar işler listenizde her bir işin ne kadar önemli olduğunu bilmeniz gerekli. Eğer işlerin önemi belli değilse planlama yapamazsınız ya da “Yeni üye kayıt sayfası“ nı bitirmeden “Google Maps API ile twitter’ ı bağlayıp, iPhone’ dan site hakkında twit gönderen kişilerin pie chart’ larının gösterilmesi“ işini yapıyor olursunuz. Ben bunu çok yaptım, klasik hata. Teknik konularda bu önem oranı 1-10 arası olabilir, genelde 1-3 arası o kadar iyi çalışmayabiliyor.
  • Kaynama yapmayın
    Bazen çalışırken aklınıza bir şey gelecektir eğer çalıştığınız konu ile bire bir alakalı önemli bir şey değilse onu yapılacaklar listenize alın ve daha sonradan o işe geçin. Direk o işe zıplamayın ya da önemsiz işler için zaten bu işi yapıyorum onu da aradan çıkartayım diye düşünmeyin.

Çalışırken şu 2 soruya cevap veriyor olabilmeniz lazım:

  1. Şu an tam olarak ne yapıyorsun ve niye? Neyin parçası, hangi işin bitmesine nasıl yardımcı olacak?
    “Kod yazıyorum” ya da “CMS yazıyorum” geçerli bir cevap değil, Doğru cevap “CMS’ i bitirmem için gerekli olan yeni kullanıcı kaydı sayfasının girdilerinin client-side kontrolü için JavaScript yazıyorum” olmalıdır.

  2. Bundan sonraki adımlar neler?

Bu Yazılar Kaçmaz
Netsparker Satışa Çıktı
Verimli Bilgi Takibi

Odak

Etiketler odak, cat-personal-development, project, 8 gün 23 saat 9 dakika önce

Senelerce bir çok farklı işte çalışıp küçüklü büyüklü bir çok proje yaptıktan sonra fark ettim ki bir projenin en büyük düşmanı içimizdeki diğer projeler. Ne zaman bir işe başlasam daha henüz başındayken başka projeler gelip odağımı çalıyor.

Başka projelerin odağı çalması tamamen motivasyon ile alakalı. Eğer elinizdeki iş henüz yayınlanmamışsa, yayınlanmışsa ama henüz yeterince kişi ilgilenmediyse, beklediğinizi bulamadıysanız başka projelerin odağınızı çalması çok daha basit hale geliyor.

Bunu çözmek için bir kaç yol:

  • Projelerin ayağa kalkmasının belli bir vakit süreceğiniz kabullenin. Bu vaktin genelde sandığınızdan daha fazla süreceğini de bilin.
  • Aklınıza gelen tüm diğer fikirlere şiddetle karşı çıkın
    • Bu fikirleri bir yere not alıp, unutabilirsiniz
    • Bu fikirleri blog, twitter gibi yerlerde açık açık dokümante edip kurtulabilirsiniz

Her zaman "süper" fikirler aklınıza gelecek, bunu durdurmak mümkün değil ama o fikirleri kovalamamak mümkün.

İyice Odaklanın

Elinizdeki işe odaklanmak için diğer tüm gereksiz projelerden, işlerden de kurtulmanız lazım. Vaktinizi veya aklınızı alan gereksiz tüm projelerinizi ya elden çıkartın ya da çizgi çekin.

Elden çıkart: Sat, kapat.
Çizgi Çek: Bir daha dokunma, güncelleme, tanıma.

Nasıl birden çok şeyi aynı anda yapmaktan iyi verim alınamıyorsa, birden çok projeyi aynı anda yapmak da işe yaramıyor.

Nasıl soru sorulur ve cevap alınır

Etiketler cat-personal-development, mail, qa, question, email, soru, cevap, adap, 19 gün 20 saat 57 dakika önce

Son günlerdeki öğreten adam temama yıllardır yazmak isteyip bir türlü yazamadığım bu yazı ile devam ediyorum...

Blog yazmaya başladığım ilk günden bu yana düzenli soru e-mail' ları alıyorum. "Hangi antivirüs' ü alayım?" dan tut "Erkek arkadaşım bilgisayarı benden çok daha fazla seviyor ne yapayım?" a kadar. Ciddiyim ikinci soru ve farklı varyasyonlarını bir kaç defa gördüm.

Kişisel sorulardan hiç bahsetmiyorum bile...

Henüz daha toyken hemen hemen tüm bu emaillara cevap veriyordum. Daha sonradan fark ettim ki bu emailların yarısı cevabı bile hak etmiyor. Ben de bizzat tanımadığım kişilere email ile soru soruyorum, bunların bazıları çok meşgul ya da günde 100 tane email alan kişiler. Kitap yazarları, teknik adamlar, blog yazarları vs.

Bu soruları sorarken şu kuralları izlemeye çalışıyorum:

Altın Kural
Soru sorduğum kişi bana cevap vermek zorunda değil.

Kural 1
Kendi yapabileceğim bir şeyi başkasından istemem. Mesela Google' da arama yapmak gibi!

Kural 2
Sorduğum sorunun cevabını verecek kişinin eforunu minimuma indirmem gerekiyor.

  • Soru hakkında kişinin neleri bilmesi gerektiğini düşünüp bunların hepsini daha o istemeden ilk emailda göndermeye çalışırım. Dolayısıyla sorduğum kişi bana dönüp 10 soru daha sormak zorunda kalmaz.
  • Emailı mümkün oldukça kısa tutmaya çalışırım. Kısa yazı yazmak kolay bir iş değil, dolayısıyla göndermeden sorunun üzerinden defalarca geçip yeterince kısa mı?, anlatmak istediğimi en efektif şekilde anlatabildim mi? diye düşünürüm.
  • Emailları adam gibi dil bilgisi ile yazmaya çalışırım. Yazım kuralları olabildiğince doğru olmalı. En azından bir "spell checker" kullanalım değil mi? Eğer ben yazdığım emaila 5 dakika harcayamıyorsam cevap verecek kişi neden 20 dk. uğraşıp cevap versin ki?

Kural 3
Kibar ol. Bkz: Altın Kural

Tanımadığınız insanlara tanımadığınız insanlar gibi yaklaşın. Askerde birlikte bot bağlamış gibi değil. Burada herkesin tipi farklı tabii ki, benim blog üslubumdan dolayı genelde aldığım emaillarda insanlar senli-benli hitap ediyorlar ki bence hiç bir sorun yok, hatta siz diye gelen emaillar biraz tuhafıma gidiyor ama bu durum herkes için geçerli olmayacaktır.

Buna rağmen daha kendinin kim olmadığını söylemeden, selam sabahsız emaillarda genelde anında siliniyorlar. Aradaki farkı iyi bilmek lazım.

Kural 4
Karşıdaki kişinin konusu ile alakalı bir şey sormaya çalışırım.

Mesela bana Java konusunda teknik sorular geliyor. Acaba bugüne kadar Java' yı küfretmek dışında cümle içerisinde kullandığımı kaç defa görmüşler ki?

Kural 5
Elimden gelen her şeyi yapmama rağmen kişi cevap vermezse kızmam. Dolayısıyla emailları yazarken varsayılan olarak cevap almayacağımı düşünürüm, cevabın gelmesi beni sevindirir. Bkz: Altın Kural

Altın Kural, altın kural, altın kural.... Karşıdaki kişi bana cevap verme yükümlülüğünde değil bana cevap veriyorsa bu büyük bir kıyaktır. Bunu unutmadan yazdıktan sonra gönül rahatlığı ile bir yabancıya email atıp soru sorabilirsiniz.

Bilimsel Cevaplar

Etiketler cat-personal-development, is, hayat, life, soru, cevap, bilimsellik, insan, 27 gün 17 saat 9 dakika önce

Her zaman insanları okumak konusunda iyi olduğumu düşünmüşümdür ve bu hislerime güvenmediğimde başıma gelenlere bakarak sandığımdan daha da iyi olduğumu söyleyebilirim, ama zaten kendi hakkımızda ne biliyoruz ki?

Eğer birine Evet / Hayır noktasına gelebilecek bir soru sorarsanız iki farklı bilgiye dayalı iki farklı cevap gelme ihtimali var.

Mesela "Zafer evde mi?"

  • Evet, Zafer evde. Çünkü cevap veren kişi Zafer' i az önce evde gördü.
  • Hayır, Zafer evde değil. Çünkü cevap veren kişi Zafer' in evden çıktığını ve geri gelmediğini gördü.
  • Evet, Çünkü cevap veren kişi Zafer' in evde olduğunu tahmin ediyor, çünkü kendi çapında nedenleri var ama aslında Zafer' in evde olup olmadığını bilmiyor.
  • Evet, Çünkü cevap veren kişi Zafer' i gördüğünü zannediyor ama aslında hayal gördü, dolayısıyla tüm dürüstlüğüyle cevap veriyor ama aslında Zafer evde olmayabilir.

Genelde bir kişi cevabı malum yerinden atıyorsa bunu anlamak pek zor olmuyor, ki bu durumda ilk işim kanıt aramak oluyor "Zafer' i en son ne zaman gördün?" , "Eve kaçta geldi?" vs.

Örnek olarak basit bir konuyu seçtim, ben aynı diyalogu bir çok konuda yaşadım. Normal diyaloglarda insanların bunu yapmasına çok alışkınım, mesela saçma bir istatistik konusunda sanki kendileri 1000 kişi ile bizzat röportaj yapmış gibi konuşurlar. Kendilerine kaynak sorunca Hürriyet' i, amcalarının oğlu Muzaffer' i ve Wikipedia' yı gösterirler ama aslında konu hakkında sadece fikirleri vardır, buna rağmen cevapları her zaman kesindir.

Aynı komik diyalogu tarih kitaplarında da zaman zaman görülür "Padişah zötterö kendisine hastır oradan diye yeni çerinin ağlamasına kulak asmadan Mehmet ve Ahmet ile birlikte, zöttöre ağacında sallandırdı, çünkü Katerina onu gaza getirdi." Tarihçilere sorduğunuz da çok gülerler bunlara.

Açık konuşmak gerekirse bu tip kesinlikle bir şey aktaran ya da cevap veren insanların becerilerine hayranım, çünkü gerçekten bilmediğin bir konuda kesin konuşmak etkileyici bir yetenek ve iş dünyasında adam kafalamaya çok yarar, tabii ki karşında senin bunu attığını ya da gerçekten yeterli derecede bilmediğini anlayabilecek birisi yoksa. Bkz: fizzbuzz yazamayan programcı işe alan bir dünya firma.

Buna rağmen özellikle teknik konularda bunu yapmak feci bir hatadır. Ben birlikte kod yazdığım birine 10.000 elemanlık bir datayı "SortedList" te mi daha hızlı buluruz yoksa "List" te mi dediğimde kişinin cevabı ya "SortedList" ve "List" bilgisinin çok iyi olmasına dayanmalı ya da kendi bizzat bu işi denemiş ve benchmark' larını yapmış olmalı. Aksi takdirde "Bilmiyorum" ve "Emin değilim" dışında vereceği tüm yanıtlar faydadan çok zarara neden olacaktır.

Özetle tahmin ettiğiniz şeyler konusunda denemeden "Budur" ya da "Değildir" demeyin, ya da bunu söylerken çıkış datanızı belirtin. Benimle çalışmış olanlar bilirler genelde bir bilgi elime ulaşır ulaşmaz, bir sakatlık olduğunu hissedersem klasik sorularımdan biri şudur "Neye dayanarak?", bakalım boktan bir dayanak noktan mı var? Yoksa gerçekten söylediğini biliyor musun? Bazen söyleyen kişide bunu irdelememiş olabilir, normaldir, siz söyleyince düşünür o da hak verir.

İlginç bir şekilde bunun insanlar arasında inanılmaz yaygın bir davranış olduğunu gördüm, bizzat ailem, akrabalarım bir sürü arkadaşım hepsi bu şekilde ve şahsen beni deli ediyorlar. İlginç bir şekilde sanırım işin doğal bu. Eğer %50 üzerinde bir şeye inanıyorsan %100 biliyormuş gibi "Evet" veya "Hayır" deme hakkına sahipsin. Normal hayat üzerine bir uzmanlığım yok ama teknik konularda bunu yapıyorsanız ciddi sorunlar var demek.

Masanın söyleyen tarafındaysanız söylediklerinizi ve söyleyiş biçiminizi iki defa düşünmeye başlayın eğer dinleyen kısmındaysanız "all input is evil until proven otherwise" deyişindeki gibi gelen girdinin doğruluğunu onaylayın ve insanların tonundaki o emin olmama tınısını tanıma konusunda kendinizi geliştirin.

Bu aralar "öğreten adam" modunda yazmaya başladığımı fark ettim, buradaki her yazı benim naçizane deneyimlerimin çıktısıdır (doğru, yanlış, hatalı), ben kendi kişisel balonumdan yayın yapıyorum, öyle kabul edile.

Motivasyon

Dün bir e-mail aldım, bir arkadaşımız şöyle bir soru sormuş:

"Kendini bu kadar nasıl motive ediyorsun?"

Her şeyden önce motivasyon insandan insana inanılmaz derecede değişen bir şey. Kimi insanı motive etmek için gaz vermeniz lazım, kimi insana ödül göstermeniz lazım, kimisine küfretmeniz, hırslandırmanız lazım vs. vs. Mesela çoğu insan baskı altında daha iyi çalışırken ben baskı altında genelde dökülürüm ve iş yapamam.

Sizi sizden iyi bilen biri yok. Bu konuda ilk iş kendinizi neyin tetiklediğini öğrenin, hayatınız boyunca kendinizle yaşadınız, herhalde daha önceden hangi faktörlerin sizde çalışma isteği uyandırdığını bulabilirsiniz.

Motivasyon bir kaç faktöre bağlı, benim gözümde 2 ana faktör var ve onları etkileyen 2 önemli parametre var:

Faktör I - Ödül

Mesela açık kaynak kodlu bir uygulama yazıyorsanız, 2-3 ödül olabilir:

 

Faktör II - İhtimal

Eğer size günde iki saat çalışarak bir sene içerisinde ciddi bir futbol takımında oynayabileceğiniz garantisini verebilseydim, siz de bu konuda ciddi derecede motive olurdunuz, çünkü ödül büyük, çalışma mantık dahilinde ve sonuç kesin.

Gerçek hayatta sonuç hiç bir zaman kesin olmuyor onun yerine ihtimaller üzerine konuşuyoruz. Mesela yukarıdaki örnekten devam edersek açık kaynak kodlu bir yazılım yazdığınızda eğer bir sene içerisinde toplam üç milyondan fazla kullanıcıya ulaşabileceğinizi bilseydiniz bu tip bir uygulama yazarken çok daha motive olurdunuz. Tabii ki ödül seçiminizin bu olduğunu varsayıyorum, eğer derdiniz para ise üç milyon kullanıcının yüz bininin paralı bir destek alacağını umuyor olacaktınız vs.

Olaya gel, geyiğe bağladın gene

Bunlar haricinde ödül' ü etkileyen ödülün size ne anlam ifade ettiği faktörü var. Mesela para size bir anlam ifade etmiyor olabilir ama ünlü olmak çok önemlidir gibi.

Son faktör de ödüle ulaşmak için gerekli efor. Bu kritik çünkü eğer beş sene boyunca günde on iki saat çalışınca başarılı olacağınızdan emin olsanız bile bunu yapmayabilirsiniz. O yüzden gerekli efor da kritik faktörlerden biri.

Psycho Folder

Mesela Psycho Folder isimli küçük yazılımım için benim motivasyonumu inceleyelim:

  • Ödül
    Kişisel bir işi çözmek. Bunu çözünce çok büyük bir şey kazanmayacağım. O yüzden ödülün büyüklüğü az.
  • Önem:
    Bunu çözmek hayatımda ciddi bir değişiklik sağlamayacak, günde bir saat tasarruf etmeyeceğim. Dolayısıyla ödülü çok da umurumda değil.
  • İhtimal
    Başarı ihtimalim çok yüksek, çünkü yapabileceğimden eminim. Ne kodlayacağımı biliyorum, dile hakimim, teknik olarak ne yapılması gerektiğini biliyorum. 
  • Efor:
    Çok düşük bir efor ile çıkabilecek bir iş.

Dolayısıyla Psycho Folder için motivasyonum vardı ama iki günde yayınlayıp bitirecek kadar. Artık üzerinde çalışmıyorum, çünkü bundan fazla efor sarf ettiğimde alacağım ödülü karşılamaz hale geliyor.

Aynı mantık üzerinde ilerleyince neden kendi işini yapmayan bir çok kişinin çalıştığı iş yerlerinde motive olamadığını hemen anlıyoruz.

Sonuç

Motivasyon tamamen yaptığınız iş ve faktörler ile ilgili, ben son zamanlarda hayatımda hiç olmadığım kadar motive olmuş durumdayım, çünkü üzerinde çalıştığım proje için yukarıdakilerden ihtimal, ödül ve önem ciddi bir şekilde yükselişte.

Son olarak not düşmek lazım insanın kariyerinde 15m2 ofislerde tek ödülü internet ve yazıcıyı kullanabilmek olduğu zamanları da oluyor, ve ilginç bir şekilde inanılmaz bir motivasyonda da olabiliyor, dolayısıyla kariyerin belli noktalarında iniş ve çıkışlar boyunca uzun vade planlara bakıp motive olmak lazım.

Soruya cevap vermedin?

Tüm yazıyı yazmama neden soru şuydu:

"Kendini bu kadar nasıl motive ediyorsun?"

Sevmediğin işi yapma

Her şeyden önce zevk almadığım işleri yapmıyorum, bu yüzden "Efor" faktörüm genelde düşük oluyor, çünkü yaptığımdan zaten zevk alıyorum.

Bazen sevmediğiniz işleri bir süre yapmak zorunda kalacaksınız bu kaçınılmaz, bunu bir adım olarak saymak lazım. Nedenleri maddi olabilir, kariyer gereksinimi olabilir vs. Sadece sevmediğiniz bu işi çok uzun yapmayacağınızdan ve bir planınız olduğundan emin olun.

İnsanları önemseme

Ben çok fazla insana fikir sorarım ama aldığım fikirleri kullanmadan veya onlara inanmadan çok iyi analiz eder ve sorgularım. Kimseden "X böyledir" gibi bir açıklamayı kanıt olmadan kabul etmeyin. İnsanlara neden diye sorduğunuzda bir çok kişinin neden sorusunu cevaplayamadığını ya da saçma bir nedenleri olduğunu göreceksiniz. Hatta bazen onlar nedenlerini söylerken söylediklerinin saçma olduğunu anlayacaklar. Çünkü yıllardır akıllarındaki o fikri tekrar sorgulama gereği duymamışlar.

Ben bir çok insanın aksine fikirlerini, planlarını ve hayallerini paylaşmayı seven ve bu konularda açık olan biriyim. Şahsen yaptığım bir çok kariyer seçiminde çok yakın çevrem harici bir çok insan bana inanmadı. Kimi açık açık söyledi, kiminin söylemesine bile gerek olmadı, belliydi.

Genelde yanıldılar, 6 ayda bir iş değiştirmek iyi bir fikirdi, 15m2 lik boktan bir ofiste çalışmak ve kariyerimin başında tüm şerefsizlerle tanışıp daha sonradan şerefsiz ve şerefli insanları 10 dk. içerisinde birbirinden ayırma yeteneğini kazanmak iyi oldu, o firmanın bana kazık atması insanların kişisel yüzleri ile iş hayatlarının farklı olduğunu öğretti, sadece "networking" olsun diye kişisel özelliklerini sevmediğim insanlar ile takılmamak, konuşmamak iyi bir fikirdi... vs.

Özetle insanların %90' ı salaklık bariyerinde, posizyonları, durumları ve popülerlikleri ne olursa olsun. İnsanlar her projenizde bok atacak, laf sokacak sizi demotive edecekler. O durumlarda bu insanların bariyerin diğer tarafında olduğunu kendinize hatırlatın, ben öyle yapıyorum. Bu bazılarına züppemsi gelebilir ama çivi çiviyi söker. Salak insanlara karşı ya züppe olmak ya da salak taklidi yapmak gerekiyor, ona göre duruşunuzu seçin.

Çok dertliymişim bu konuda çok uzattım, özetle:

  • Başkalarında bilgi ve fikir kabul edin ama onu analiz edebilecek tek kişi sizsiniz
  • İnsanların genelde salak olduğunu unutmayın
  • Bir çok büyük ve iyi fikre bir çok insanın kafasının basmaması doğal bir şey, ne kadar zeki olurlarsa olsun, aynı şeyi göremiyor olabilirler. Bazı fikirlerin olgunlaşması için gerekli aynı şeylerden beslenmek lazım.
  • Son olarak "kalın kafalı" olmayın bazen gerçekten de haklı olabilirler, dolayısıyla insanlar genelde salak diye subjektifliği kaybetmenin bir anlamı yok.

Hedefleri büyük tut

Benim her zaman adım adım hedeflerim vardır, çok kesin şeyler değil ama kafamda büyük bir planın olması en dandik noktalarda, kısa vade ödüllerinin çok kötü olduğu zamanlarda bile devam etmemi sağlıyor.

JFRI - "Just Fuckin' Release It"

JDI ve JFDI versiyonlarından sonra bu da benim versiyonum JFRI. Bir şey yapıyorsanız ne olursa olsun onu olabildiğince hızlı şekilde yayınlayın. Kapalı bir grupta yayın yapıyor olabilirsiniz ya da tüm dünyaya açabilirsinizö önemli değil ama yaptığınız işi yayınlamak ciddi bir şekilde motivasyonunuzu arttıracaktır.

Bu da benim düzenli olarak yaptığım şeylerden biri, bence "Release Often Release Early" motto' sunun es geçilen en önemli avantajlardan biri budur. Hatta bir çok kişi motive olabilmek için projelerini bloglarında tarih ve detayları ile yazıyorlar. Bu sayede "herkese rezil olma korkusu" onları motive ediyor. Bu benim motivasyon kriterlerimden biri değil "bkz. insanları önemseme başlığı" ama sizin için işe yarayacaksa neden olmasın, kullanılabilir.

Özetle yaptığım işleri en kısa sürede yayınlamaya çalışıyorum.

Felsefe

Son olarak felsefik tipler için ödül konsepti çok havada kalacaktır, çünkü insan ödülü takip ederken hızlı şekilde "Hayatın amacı nedir?" noktasına ulaşıyor. Balıkçı kasabası adamıysanız profesyonel anlamda hemen hemen hiç bir halttan kolayca motive olamazsınız, çünkü ödül' e verdiğiniz önem sıfır olacak. O zaman esas ödülü düşünün ve hayatınızdaki öncelikleri ona göre belirleyip doğru şeylere motive olun.

Mükemmellik

Sene 1998, Duke Nukem’ in patladığı seneden bir sene sonra. 3D Realms Duke Nukem Forever’ ı duyurmuş ve E3’ de Quake II oyun motoru ile geliştirilmiş ve bir çok kısmı bitmiş olan oyunun demosunu yapmış.

Unreal oyun motoru bu dönemde çıkıyor ve Quake oyun motorundan daha gerçekçi, daha güzel grafikler sağlıyor. Bu demonun hemen ardından bir toplantıda programcının biri ”Unreal’ a geçsek nasıl olur?” diyor. Duke Nukem’ in başarısını Duke Nukem Forever ile tekrar yakalamak isteyen Broussard bu fikre katılıyor.

10 sene sonra 3D Realms hala Duke Nukem Forever’ ı yayınlayamıyor, oyunu durduyor, herkes işten çıkartılıyor. 3D Realms hala yayıncılarına karşı milyonlarca dolarlık bir dava ile uğraşmakta.

Bana Hayatınızı Değiştirecek 62 Öneri yazısı konusunda bir çok kişi neden ”Mükemmeliyetçi olmayın” dediğimi sormuştu, sanırım bu güzel bir cevap. (Duke Nukem konunun bu kısmını ben de Wired USA Ocak’ dan okuyup, yeni öğrendim.)

Süper Makale Verimli Bilgi Takibi

Eskiden bilgi yok diyen bizim artık yeni bir sorunumuz var, bilgi fazlalığı.

Sorun büyük, çözüm basit değil ama bazı huyları değiştirerek verimli şekilde hem yeni bilgiyi takip edebilir, hem bilgiye yetişebilir hem de çok kısa süreler harcayarak yapabilirsiniz.

  1. RSS okuyusu kullanın, hiç bir blogu ziyaret etmeyin, blogları ziyaret etmek bir çok nedenden dolayı oradan alacağınız bilgiye gereğinden daha fazla efor vermenize neden olur.
  2. RSS okuyusunda herşeyi okumayın, başlıkları okuyun, konu ilginizi çekiyorsa devamını okuyun.
  3. Bilgi kaçıtrmaktan korkmayın, eğer bir şey gerçekten çok iyiyse takip ettiğiniz başka bir kanaldan onu duyacaksınız ne de olsa. İnternet sandığınızdan çok daha küçük, çok fazla kişi aynı konu hakkında konuşuyor. Hepsini okumanıza gerek yok birini okumanız yeterli.
  4. Eğer bir RSS ilgilendiğiniz konudan çok ilgilenmediğiniz konularda yazıyorsa, o RSS’ i takip etmeyi bırakın. (Benim rasgele değişik konulardan yazmam bir çok kişi için bu blogu da bu kategoriye sokuyor olabilir. Eğer öyleyse korkmayın silin. Çok iyi bir şey yazarsam bir şekidle duyarsınız zaten.*)
  5. İkna olduğunuz konuları tekrar tekrar okumayın. Eğer “LinkedIn” in kariyerinize yardım edecek bir kanal olduğuna inandıysanız LinkedIn’ in neden çok iyi olduğuna dair 5 yazı daha okumanıza gerek yok.
  6. Aynı bloggerlar aynı konuları çok yazarlar, bunu gördüğünüz anda o yazıyı es geçin. Bir de bunların kendilerine “technology evangelist” falan diyenleri vardır ki onlardan koşarak kaçın.
  7. Çok az yazı baştan sonra dikkatle okumayı gerektirir, değer. Önce yazıları hızlı bir şekilde okuyun. Hızlı okuma teknikleri ile ilgili bir çok kitap ve makale var. Bunları deneyebilir ya da kendi kendinize pratik yapabilirsiniz. Mesela bunun gibi bir makaleye maksimum 4-5 dk. harcamanız gerekli. Genelde 2 dk. yeterli olacaktır. Mesela girişteki paragrafın hiç bir amacı yok, bunu geçebilirsiniz. Bir yerden sonra bu doğal bir davranış olacaktır.
  8. İlginizi çeken konuları hemen okumayın Read it Later, Evernote ya da InstaPaper gibi bir sistem kullanın. Bu sayede konsantrasyonunuzu da bozmadan ve bulduğunuz kaynağı kaybetmeden ilginizi çeken konuyu daha sonra okuyabilirsiniz.
  9. Eğer mümkünse Pocket PC, iPhone gibi bir cihaz edinin ve daha sonra okumak için işaretlediğiniz yazıları bu cihazda okuyun. Bu sayede yolculuk, sırada bekleme, köprü trafiği, berber koltuğu, ramazan pidesi sırasını verimli bir iş için kullanmış olursunuz.
  10. Twitter, FriendFeed vs. gibi sistemler bilgi takibi için tasarlanmış sistemler değiller. Geyik ve sosyalleşme harici bilgi için kullanmaya çalışmayın, verim alamayacaksınız.
  11. Kitap okurken, kitabın heryerini okumayın. 400 sayfalık bir kitapta en az 200 sayfa boşluk doldurma sayfası vardır. Bunları tespit etmek bazen zor olur ama ufak bir eforla en azından 100 sayfayı okumadan ama içindekini anlayarak geçebilirsiniz. Buna rağmen her sayfasını okumaya değecek çok az kitap vardır, o kitapların hakkını vermek lazım. Bu kitaplar genelde yazarlardından anlaşılabilir.

Bu yazıyı sevenler hayatlarını değiştirecek şu 62 öneriyi de sevdi.

* Kayıtlara geçsin diye yazıyorum, şu anki RSS üyesi 3351, bu yazından sonra bir değişiklik olacak mı bakalım göreceğiz.

Çeviklik

“Agile” kelimesi her ağıza sakız olmuş durumda, ben de parmağımı pastaya bulaştırmak istedim.

Çevik yapılar, duruma göre kendi adapte edebilen, hızlı şekilde çözüme ulaşan, durumu daha kompleks bir hale* getirmeyip basitleştiren yapılardır. Bu birey olabilir, bir yazılım geliştirme metodolojisi olarak düşünülebilir ya da bir kurumun yapısı olabilir.

Çevikliği maksimum düzeye kavuşturmak için yapılması gereken iki kritik şey var.

Al, Çal, Kaçır

(Ç)almak ya da outsourcing.

Outsourcing

Outsourcing tüm sorumluluğu başkasına atmak olarak kabul edilebilir.

Mesela bir blog açacaksanız “Wordpress” kullanmak çalmaktır. Kendiniz wordpress’ i download edersiniz, sunucunuza kurar ve kullanırsınız. Hazır bir sistemi çalıp kullandınız. Outsourcing ise blogger.com’ dan blog açmak ya da Wordpress.com üzerinden bedava bir blog almaktır.

Outsourcing çeviklikte her zaman ilk adım olmalı, buradaki kritik nokta devrettiğiniz işin üzerinde ne kadar kontrole ihtiyaç duyduğunuzdur. Örnek olarak eğer kendinize özel bir web suncusu kullanmak zorundaysanız basit bir hosting firmasından, basit bir hesap almak işinizi görmeyecektir. Outsourcing’ de yapabileceğiniz en büyük hata “ana işinizi” başkalarına devretmektir.

Mesela bir web tarayıcısı geliştiriyorsanız rendering engine’ ini geliştirmek yerine başka bir yerden alıp kullanmak yanlış olacaktır. Not düşmek gerekir iş modeli sadece devretmek üzerine kurulu firmalar istisnadır, mesela IE’ nin altyapısını kullanıp arabirimini geliştiren ya da farklılaştıran firmalar var. İkinci bir not düşecek olursak bu tip firmaların hiçbirinin uzun vadede bir başarısı olmamamıştır.

Aynı şekilde rendering engine’ ini dışarıdan programcılara outsource etmekte bir o kadar yanlış olacaktır, buna rağmen Gzip encoding’ i oturup yazmanız da bir o kadar saçma olacaktır. Gzip library’ sini outsource etmek değil çalmanız gereklidir ama o konuya biraz sonra geleceğiz.

Web 2.0 hikayesinin sosyal medya’ yı hayatımıza sokması, kişisel bilgilerin öneminin azalması, insanların internet sitelerine daha fazla güvenmesi ile SaaS (software as a service) konsepti ve oursourcing / devretme olanakları inanılmaz şekilde yükseldi. Yükselmeye de devam edecek. Bu yükseliş bizim için iki anlam ifade ediyor;

1. SaaS işinin geleceği çok iyi olduğundan dolayı bu sektörde iş yapmak

2. Kendi işimizde olabildiğince bu yüksek kalite hizmetleri kullanmak

SaaS’ ın büyümesi ve outsourcing kavramının popülerleşmesi belki son senelerde gördüğümüz internetteki kaliteli iş modellerinin ve firmaların çoğalmasındaki kritik nedenlerden biri olabilir. Yeni model firmalar kendi CRM sistemlerini kurmuyorlar, SalesForce kullanıyorlar, SVN Serverlarını kurmuyorlar, xp-dev’ den SVN server ediniyorlar, artık proje yönetim sistemi kurmuyorlar, BaseCamp kullanıyorlar.

Bu da onlara enerjilerini geçekten umursadıkları işe yönlendirme fırsatı sunuyor. Ek olarak maliyetlerin düşmesi de cabası.

Kurumların, bu tip içerideki yönetim sistemlerinin kurulumu, bakımı ve güncelliği için inanılmaz vakitler harcadıkları dönemler vardı. Hala Microsoft, Adobe gibi firmalar bu tip sistemleri kullanmıyor. SalesForce gibi ekstrem uçtaki hizmetler çıkmadıkça kullanmayacaklar da.

Bunun nedeni bu tip büyük firmaların bu tip konularda yakabilecekleri paralara sahip olmaları ve burada ekstradan yakacakları 1M$, sistemin onlara özel olmasındaki avantajlardan dolayı zaten uzun vadede kendini amorti edecektir. Ancak bu tip firmalar ile 1-150 kişi arasındaki firmaları karşılaştırmamak lazım.

Firmaların doyum noktaları vardır, doyum noktasından sonra para harcama ve iş yapma modelleri değişir. Mesela bir yazılım firmasının doyum noktası ana yazılımlarının piyasadakilerden daha çok iş yaptığı ve yakın bir takipçisinin olmadığı noktalarda olur. Mesela Skype buna güzel bir örnek.

Bu noktaya gelmiş bir yazılım firması genelde yazılıma sadece saçma özellikler ekler, elindeki büyük kadroyu mütemadiyen çalıştırması gereklidir ama yapacak işi yoktur. Yazılıma tema, animasyon gibi kimsenin umrunda olmadığı sadece %1 için bir anlam ifade eden şeyler eklerler ya da bazı MS Office sürümleri gibi sadece görsel değişiklikler yapıp yeni bir versiyon daha satmaya çalışırlar.

Özetle küçük ve çevik bir firma artık en basit işten en komplike işe kadar herşeyi outsource edebilir hale geldi. Önemli olan outsource edeceğiniz şeyleri ve outsource edeceğini kişileri, firmaları iyi seçmek.

İlk başta outsourcing işi pahalı gibi gözükse de aksine çok daha ucuzdur. Yatırım daha azdır, yönetim istemez, değiştirmek basittir, disaster recovery gibi konular sizin değil başkasının derdi olur. Vakit ciddi bir kaynaktır ve bir şeye yatırım yapma, yönetme ciddi bir kaynak gideridir. Eğer hala vakit, bakım-takip ve para arasındaki ilişkiyi matematiksel olarak kuramıyorsanız zaten kişi veya firma olarak burada anlattıklarımdan daha ciddi sorunlarınız var demektir. Önce o noktayı kavramak lazım ama oradaki ilişki başka bir yazı konusu, burada detaylandırmayayım...

(Ç)almak

Çalmak outsource edemediğiniz de yapmanız gereken şey. Mesela bir blog’ a ihtiyacınız var bu ama hali hazırdaki blog sistemleri sizin siteniz ile iyi entegre olamıyor, bu durumda gidip baştan blog sistemi yazmazsınız, hali hazırda yazılmış bir blogu kullanır ve onun üzerinde özelleştirme yaparsınız, işte bu çalmaktır.

Bir iş yapacaksınız çalışan bir iş modelini alabilirsiniz. Baştan tüm modeli oluşturmanıza gerek yok, ama eğer kendiniz çok daha gelişmiş bir iş modeli geliştirdiyseniz ve işinizi buna dayayacaksanız tabii ki bunu yapın. Çalma ile Geliştirme arasındaki çizgiyi doğru çizmek lazım.

Son örnek olarak mesela kodlama standartları dokümanı oluşturacaksınız, kendiniz sıfırdan başlamayın gidip benzer bir doküman bulun daha sonra bunu kendi takımınıza göre özelleştirin.

Çalmayı küçükten büyüğe her boyutta yapabilirsiniz, hazır bir uygulamayı alıp değiştirebileceğiniz gibi bir algoritmayı kendiniz tekrar keşfetmeye çalışmak yerine pseudocode’ unu bulup onun üzerinden yazmanız daha mantıklı olacaktır.

Dikkat edilesi

Çalarken dikkat edilecek şeyler var,

- Gereksinimlerden daha kompleks sistemleri hazır diye entegre etmeye çalışmak
Eğer ana sayfada 3 haber başlığı ve metin göstermek istiyorsanız Wordpress’ i implemente etmeye çalışmayın, kendiniz yazın. Bedava her zaman bedava demek değildir. Sahipliğin getirdiği bir masraf vardır ve kompleks sistemler de bu yük ile gelir. Dolayısıyla **basit tutun.

- Çaldığın şeyi bilmek
Eğer bir kodu ne yaptığını tam bilmeden çalıyorsanız şöyle saçma durumlar oluşabilir.

Daha önceden Hayatınızı değiştirecek 62 öneri yazımda da söylemiştim “Mükemmeliyetçilik” outsourcing’ in ve çalmanın en büyük düşmanıdır ve bunu yenmek çok zordur. Mükemmeliyetçilik ile ilişkili diğer bir kötü huyda kontrolcülüktür. Koda sahip olmak, HTML çıktısını istediğin gibi kontrol etmek, herşeyi bilme ve kontrol etme arzusu da sizi bunları yapabilmekten uzak tutacaktır. O yüzden bu tip huylardan kurtulmaya çalışmak lazım.

Çalın, outsource edin, basit düşünün, üretin.

*over-engineering
** KISS - Keep It Simple & Stupid

Zayıf Olduğunu Bilmek ve iPhone

Zayıf olduğunu bil yazısında bir iş yaparken elde neyin olup olmadığını bilmek ve ona göre hareket etmekten bahsetmiştim:

Blair Witch filmi ve benzeri yapımlar bu konuya güzel bir örnek aslında. Hollywood gibi milyonlara film çekemiyorsunuz dolayısıyla taktik değiştiriyor, interneti, dedikoduyu ve farklı bir yolu seçip bir film yapıyor ve parayı kırıyorsunuz. Komiktir aslında bu filmin iki ilginç olgusu var. Birincisi filmin tüm konusu çarpma (eski 60 kadar ülkede yasaklanmış bir gore filmden – detayları inanınki bilmek istemezsiniz), ikincisi film gerçekten kötüydü. Buna rağmen para kazandı. Sonuca bakarsak muhtemelen onlar amaçlarına ulaştı. Sanırım yüz yılın sanat filmini yapmayı planlamıyorlardı.

Ben uslanmaz bir oyuncu olduğumdan dolayı düzenli olarak iPhone oyunlarına bakıyor beğendiklerimi alıyor, oynuyorum. İnsanların iPhone ve benzeri sistemler için 3D büyük oyunlar yapmasının nedenini hiç anlayamamışımdır. Sonuç itibarı ile bu oyunu oynayan kişiler bilgisayar dünyasından gelen ve gerçek grafiklere sahip oyunları oynamış kişiler, halbuki bu platform’ un grafik desteği zayıf, ekranı küçük ve kontrol için bir gamepad’ i yok vs. vs.

Muhtemelen işte bu yüzden Doom Ressurection’ den çok Drop7 isimli muhtemelen 3 haftada yazılmış bir oyun çok daha fazla satabiliyor. Bunun yanında Lucas Arts gibi zeki firmalar eski ve iPhone’ a port edilebilecek Monkey Island gibi güzel klasikleri piyasaya sürmeye başladılar ki bu da çok güzel bir mantık.

Özetle dostlarım, elinizdekinin ve hedef platformun zayıflıklarını bilmek lazım.

Otomasyon, otomasyon, otomasyon...

Sık söylediğim laflardan biri şudur : "If you can automate it, automate it". DRY (kendini tekrarlamamak/do not repeat yourself) sadece kod yazma sırasında değil bence hayatın her noktasında önemli bir şey. Özetle eğer bir şeyi otomatiğe bağlama şansın varsa hemen şimdi bunu yap. İlk internet sitemi yayınladığımda hayat çok farklıydı siteyi en ufak bir değişiklik için FTP ile her seferinde güncellemek ve tek kişilik CMS sistemi olmak rezil bir deneyimdi. İlk blog sistemimi yazdığımda da bazı şeyler fark ettim blog yazmaya başlamam ne kadar çetrefilli ise o kadar az blog yazıyordum, yani sistemin kendi limitleri veya gereksinimleri blog yazmamı engelliyordu.

Bu sadece teknik veya vakit ile ilgili bir sorun değil bu psikolojik bir sorun. İnsan doğası sıkıcı işleri sevmiyor ve rutin işler insana sıkıcı geliyor. Bir geliştirici olarak kendinizi bir rutin içerisinde bulursanız gidişatta bir hata var demektir. Belki Ruby On Rails' ın çıkışı veya binlerce framework' ün tetikleyicisi de budur.

Yazılım geliştirirken gerekli otomasyonu yapıyor musunuz?

  • Veritabanında değişiklik yaptıktan sonra ORM' de kodların belirmesi için kaç tuşa basman gerekli?
  • Yazılıma yeni bir eklenti eklendiğinde Unit Test' ler otomatik olarak çalışıyor mu?
  • Aynı kodu tekrar ve tekrar yazıyor musun?
  • Koddaki değişiklikten yazılım paketinin internette yayınlanması arasında kaç tane manuel işlem var?

Daha önceden büyük resmi görebilmek ile ilgili bir yazı yazmıştım, yazılım geliştirirken ve başka işler yaparken de büyük resmi görebilmek lazım.

  • Sisteminizde otomatiğe bağlayabileceğiniz şeylerin listesini çıkartın
  • Listedeki her başlık için "Otomatiğe bağlamak ne kadar sürer?", "Otomatik olmadığında hata oranı nedir?", "Bu işlemin ne kadar sıklıkla yapılması gerekiyor?" sorularını kendinize sorun ve cevaplarını düşünün. Otomasyona harcayacağınız vakit kendini 1 haftada amorti ediyor olabilir ya da hata çıkma oranından dolayı potansiyel bir hata da otomasyona harcayacağınız vakit kadar hatayı düzeltmeye ya da tespit etmeye vakit harcayacak olabilirsiniz.

Eğer programcı değilseniz hala hayatınızda otomatiğe bağlayabileceğiniz şeyler var:

Bunların hepsini otomatiğe bağladıktan sonra, para kazanmayı da otomatiğe bağlayınca Kuala Lumpur' da sahilde uzanıp otomatiğe bağladığınız her şeyi unutabilir ve belki de hayatın tadını çıkartabilirsiniz…

Güle Güle Twitter ve FriendFeed

Nedense ben bu süreçten çok fazla geçiyorum, her şey IRC ile başladı, daha sonra ICQ' ya geçti, sonra MSN, skype oldu vs. Ondan sonra IM olayından tamamen koptum. Bu süreç içerisinde forum kavramı bir dönem hayatımda oldu. Bu basit dönemlerde internette sosyalleşme de basitti.

Daha sonra Facebook ve MySpace gibi delilikler başladı ki Allah' a şükür Orkut' un ilk dönemlerinden dersimi almış olduğumdan onlara hiç bulaşmadan sıyrıldım. İnsanların okul arkadaşları ile, eski dostları ile diyalogunu bu tip bir platform üzerinden sürdürebilmesi her ne kadar kulağa çok güzel gelse de, o kişi okulda arkamdaki sırada otururken bile kendisi ile görüşmediğimden, bugün kendisini bir daha bulup neden görüşmek isteyebileceğimi bilmiyorum! Bu genel bir sorun değil bu benim sorunum, olayı yeterince sosyal ya da hümanist olmadığımı söyleyerek çözümleyebiliriz sanırım. Ya da diyelim ki yapılacaklar listemde on sene önceki arkadaşlarımın bugün hangi sosyal platformda kaç kız arakladığını takip etmek yukarılarda değil.

Bu dönem hala sürerken başka bir şey başladı, Twitter ve FriendFeed. Ben açıkçası Twitter' ı çok sevdim çünkü diyaloglar tamamen pasifti. Dolayısıyla dialogdan çok monolog vardı, bu da benim sevdiğim şeylerden biri. Ek olarak blog yazan biri olarak kısa şeyleri de paylaşmayı seviyorum ve bunun için de güzel bir platformdu. Yani microblogging dedikleri hadise... Twitter' da aktif olmaya başlayınca twitter' ın yapısı yetmez olmaya başladı, sonra bir çok kişi bana FriendFeed' i önerdi ve ben de ona geçtim.

Şimdi her zaman yaptığı gibi tarih tekerrür ediyor ve ben FriendFeed ile Twitter' dan da kopuyorum. Dolayısıyla diğer bir sosyal hoppalık maceramda bu şekilde sonuçlanmış oluyor.

Neden Kullanmıyorum

  • IM Kullanmama Nedenlerim;
    • Konsantrasyonumu etkilemesi
    • Aynı diyalogun telefon üzerinden 30 dakika yerine 2 dakikada çok daha verimli olarak çözülebileceğini bilmem
    • İnsanların istedikleri zaman size ulaşabiliyor olması (bu nedenle 2 sene boyunca cep telefonu kullanmadım ama maalesef onun yararları zararlarından çok olduğundan şu an gene mecburen kullanıyorum)
    • E-mail, forum ve bilumum pasif komünikasyonun birçok konuda daha verimli olması
  • Facebook, MySpace Gibi Sosyal Ağları Kullanmama Nedenlerim;
    • Herhalde buna ciddi bir cevap vermemi beklemiyorsunuz. Bunun cevabı bariz zaten. Belki de doğru soru neden kullanayım ki?
  • Artık Forum Kullanmıyor Olmamın Nedenleri;
    • Drama, polemik vs. ana nedenler ama bunun harici kaliteli forum bulmanın pek mümkün olmaması. Zoque Forum harici bir böyle bir forum görmedim, Zoque' un da altın dönemi maalesef kapandı, her ne kadar yeni bir nesil varsa da web tasarımı konusundan çok uzaklaştığımdan dolayı eski tadı alamıyorum. Gene de hala okuyor ve arada yazıyorum. Sadece eskisine göre çok daha az.
  • Twitter' ı Az da Olsa Kullanıyor Olacağımın Nedenleri;
    • Sinirlenince bir şekilde küfretmem gerekiyor,
    • Rasgele, hatta salakça ama çok derinmiş gibi gözüken cümleleri yazabileceğim bir yere ihtiyacım var,
    • Çünkü bağırmak, saçmalamak ve cevap almamaktan daha keyifli az şey var.
  • FriendFeed' i Az Kullanıyor Olacağımın Nedenleri;
    Zoque Forum' da seneler önce Din ve Siyaset konuları tamamen yasaklanmıştı. Önce bu bana çok saçma geldi. İnsanlara "O kadar tek hücreli beyinlere sahipsiniz ki bu konuları tartışmayı bile beceremiyorsunuz" demek gibiydi. Kısa sürede öğrendim ki insalar gerçekten de tek hücreli beyinlere sahipti ve bu tip konuları mantıksal ve saygı çerçevesi içerisinde tartışamazdı. Bunun ikinci ana nedeni ise bu iki ilmin de matematik gibi kesin cevaplarının olmaması ve tamamen kişisel olmasıydı. Tabii ki bu konulardaki hakaretlerin veya çirkefliklerin kişisel olarak insanları ciddi derecede rahatsız ediyor olması da cabası. İşte FriendFeed' den uzak duracak olmamamın ana nedeni bu. 
    • Signal - Noise oranının genelde kurtarmıyor olması, bunun bir nedeni de benim ilgili olduğum konularda ilgili olan insanların sayısının benim çemberimde çok fazla olmaması.
    • Çok fazla din ve siyasi konu geçiyor olması, Din bilmeyen kişiler ile tartışılabilecek bir şey değil, dolayisıyla din ile ilgili konular genelde bok atalım izi kalsın kıvamında, hakeza siyaset konusu da o şekilde. Siyaset ile zaten ilgilenmediğimden o konuların hepsi benim için çöp oluyor ama insanların 3,5 kitap, 2 televizyon programı ve 7 internet haberi ile her renkteki siyasi olay hakkında vücutlarının bilumum organları ile ileri-geri konuşmaları hakikaten eğlendirici. Ama bu tip bir diyalog görmek istersem zaten FailBlog ya da MySpace yorumlarını okuyorum.
    • Polemik, pire ve deve mevzuları. Ama her şeyden çok drama, drama ve drama. İnsan = Drama.  Benim hayatımda yeterince drama var, kotayı doldurmak için dışarıdan yeni drama ihraç etmem gerekmiyor. Gerektiği zamanlarda da Lorenzo' nun Yağı ' nı izleyip bir milenyuma yetecek kadar drama depoluyorum.


İnternet büzemeyeceğin milyonlarca ağızdan oluşuyor, dolaysıyla biz de büzmek yerine görmezden geliyoruz. Bu platformların hepsi kişisel veya markasal marketing için süper yerler ama herkesin bildiği iki gerçek var:

  1. Joey doesn't share food
  2. Ferruh doesn't do marketing

Durdu ve Yeter Dedi

Okuduğunuz şeyler daha sık dejavu yapar hale geldiyse, yeni makalelerin başlıklarına bakıp tam olarak neden bahsettiğini tahmin edebiliyorsanız, aynı şeyi yeni metaforlar ile dinlemekten sıkıldıysanız, okumanın, öğrenmenin, daha fazla araştırmanın vakti geçmiş, harekete geçmenin vakti gelmiştir. Altı ay bir yıl sonra belki yeni bir şeyler filizlenmeye başlar o zaman tekrar dönüp, okumaya, öğrenmeye, araştırmaya başlayabiliriz… Sanırım gerçekçi kalmak için ne zaman durmak gerektiğini bilmek lazım.

Köle Olmayı Seçmek

Bu yazı arada yazdığım gibi giriş – gelişme – sonuç kavramlarından uzak, daha çok bazı duyguları düşünceleri tetiklemeye eğimli bir yazıdır. Ek olarak yazı genel bir konu üzerinde dolaşmayı bile becerememekte. Dolayısıyla diğer bir kendi halinde yazı olarak Kabul edilebilir...

İnsanoğlu kendi elleriyle hayatı o kadar komplike bir hale getirdi ki bu dünyada hayatta kalabilmesi için artık 15 sene eğitim alması gerekir hale geldi. Yaşayabilmesi için hayatının %75' ini çalışarak geçirmek zorunda kaldı. Küçüklükten başlayarak bu durumu o kadar güzel bir şekilde yeni beyinlere empoze etti ki, kişiler kendilerinin köleliğini savunur hale geldi. Para, dünya, şan, şöhret için çalışmak önemli, değerli hatta saygı duyulacak bir iş gibi gösterildi. Daha sonra öyle bir noktaya geldi ki artık herkes bunlar konusunda hem fikir olmaya başladı.

Bir insan şunu söyleyebilir hale geldi:

Eğer zengin olsaydım da bu şekilde çalışırdım

Eğer siz de haftanın 5-6 gününü geri kalan 1-2 gününü yaşayabilmek için harcadığını hazmedeyenlerdenseniz, neden bahsettiğimizi anlıyorsunuz demektir. Çalışmak için çalışan insanların olduğu bir toplumda yaşar olduk, artık bizi köle yapmıyorlar biz kendimiz "özgür" irademiz ile köle olmayı seçiyoruz. Kendimizi kendimizden azad edebilecek miyiz?

Herkese yetecek bir dünyayı paylaşamıyoruz, 1500 somalilinin öldüğü bir operasyonda 18 amerikan askeri için film çekiyoruz (çünkü 1 yankee = 100 somalili değerinde!), neyi neden yaptığımızı bilmiyoruz, nereye gideceğimizi düşünmüyoruz. Bir kaç gün önce dünyayı değiştirecek fikirleri düşünüyordum, "Her iyilik yapılan kişi üç kişiye iyilik yapsa", "The Venus Project" vs.

Sanırım "Bill Gates' i müslüman yapmak" listenin başına konulabilir. Bunun anlamı dünyanın en zengin adamlarından birinin Zekat ödeyeceği yani her sene elindeki tüm değerlerin 40/1 ini fakirlere dağıtacağı anlamına geliyor. Belki sadece Bill Gates' i müslüman yapmak tek başına dünyadaki açlığı çözmeyecektir, ama ütopik bir şekilde tüm dünyanın zekat verdiğini düşünün. Bu ütopik dünyada fakirlik diye bir sorun olmayacaktı.

Bugünün global dünyasında yaşayan insanlar olarak her saniye suçluluk duygusu içerisinde olmamak mümkün olabilir mi? Benim doğduğum yer ondan daha iyi, o daha doğarken kaybediyor. Ben komşumdan daha çok kazanıyorum, benim şansım yaver gitti, kolum ve bacağım var, görebiliyorum ve konuşabiliyorum. Oradan insanlar savaşta ölürken ben MSN' de arkadaşlarımla muhabbet edip blogumda züppelik yapıyorum, suçluluk duygusu içerisinde olmamak mümkün mü?

Sanırım bunun tek çözümü İlahi Adalet' e inanmak, bilmek değil idrak etmek. Hiç bir şeyin kimsenin yanın kalmayacağını ve kimsenin sınavının başka biri ile aynı olmadığını anlamak.

Şimdi hepinize Happy Xmas, Hannukah ve new year...

* The Venus Project ve Zeitgeist Addendum -çok tek taraflı bir film, izlerken yargınızı kaybetmemeye çalışın- bunu tetikledi

Süper Makale Fikir Üretme, Etki ve Tepki

Hiç dikkatinizi çekti mi bilmiyorum ama bir bakıyorsunuz altı tane aynı dönem şairi çok yakın arkadaşlar, çünkü hepsi aynı mahallede büyümüşler ya da bir dizi oyuncunun hepsi çocukluk arkadaşı ve hepsi de çok ünlü ve benzer projelerde çalışıyorlar. Mesela Türkiye de bir dönem çok popüler olan muhasabe yazılım firmalarının en büyük ikisinin sahibi üniversitede aynı sınıfta olmaları ya da bugünün internet ve bilgisayar dünmyasının bu hale gelmesinde MIT' nin büyük rolü ve o günün MIT' sindeki simaların bugün bu sektörde çok büyük imzalarının bulunması gibi. Örnekleri çoğaltabiliriz popüler IDS' lerin geliştiricilerinin oda arkadaşı olması gibi. [1]

Benim eski ve uçuk teorilerimden biri insanların etrafındaki kişilerin beyin dalgalarından etkilenip istem dışı olarak bilgi çalmaları ve aynı noktaya ulaşmalarıdır. A Scanner Darkly' de bir yatak muhabbetinde de bu felsefenin kırıntıları görülebilir. Yani bir nevi beyninizin diğer insanların beyin dalgalarını çalıp bilinçaltında kullanması. Tabii ki yıllardan sonra bu teorimi daha oturaklı bir hale getirdim ve şuna çevirdim:

İnsanlar çok gelişmiş makineler, lakin girdi olmadan çıktı üretemezler. Mesela henüz ergenliğe erişmemiş bir çocuğa cinsel ilişkiyi anlatamazsınız [5], o çocuk henüz o bilgiyi idrak edecek bir girdiye, içgüdüye sahip değildir. Rasgelelik konusuna hakim olanlar buradaki noktayı daha çabuk kavrayabilirler. Rasgele bir sayı üretmek için genelde bir "seed" kullanırsınız, yani rasgeleliğin temelini oluşturacak girdi. Bilgisayarlar tamamen tahmin edilebilir olduklarından bilgisayarın kendisi aslında hiç bir zaman rasgele bir şey üretemez, bu yüzden gerçek rasgelelik (TRNG) çok daha komplike bir sistem gerektirir mesela "evren" gibi, "dünya" gibi, bu tip planını yapamadığımız, bir sonraki adımını tahmin edemediğimiz sistemler bizim için rasgele olan girdiler sağlayabilirler. Bu yüzden bazı sistemler rasgelelik sağlayabilmek için dış dünya datalarını kullanırlar, sıcaklık, nem, ses, hareket, ışık vs.

Şimdi demek ki insan girdi olmadan çıktı üretemiyor, hayalgücünün belli limitleri ve şekillendiricileri var, demek ki gerçekte rasgelelik yok ama bir dizi etken ve sonuçlar var. Teoride buna dayanıyor. Eğer insanlar aynı kaynaklardan besleniyorsa ürettikleri şeyler ve ulaştıkları noktalar da benzer olacaktır. Yani aynı web sitelerinden, aynı bloglardan, aynı televizyon dizilerinden, aynı filmlerden, aynı müziklerden ve bazen aynı coğrafyadan, hatta aynı öğretemenlerden, aynı kitaplardan beslenen topluluğa dahil olan kişiler aynı ve benzer üretimler yapacaktır. Eğer yarın bir gün bir sosyal platform çıkar ve bu kaynakları tek bir yerde toplar ardından da aynı kaynaklardan beslenen kişileri eşleştirirse bu kişilerin benzer çıktılar ürettiğini gösterecektir.

Özellikle yakın dönem trendlerini tahmin etme ve bir sonraki adımı görme de bunun sonuçlarından biridir. Ancak buradaki kişi çok sevinmemeli çünkü sektörün bir sonraki adımını tahmin edebilmiş olsa da onunla aynı havuzdan beslenen diğer kişilerde bu bir sonraki adımı tahmin edebilecektir. İşte o noktada "Fikir x Harekete Geçirme x Hız" formülü sonucun değerini belirleyecektir. Fikir' i bu formülden çıkartırsanız gerçekten önemli olanın eyleme geçirme kalitesi ve bunu ne kadar hızlı yapabildiğiniz olduğunu göreceksiniz [2].

Aynı nedenlerden dolayı tarihe icatlar ile ya da yeni yaklaşımlar ile geçmiş bir çok kişi toplum tarafından "kopuk", "manyak", "deli", "sorunlu" olarak nitelendirilmiştir, ya da okuldan atılmıştır. Ressam, müzisyen ve benzeri sanatçılar olduğu kadarıyla teknik kişiler de bir istisna değildir. Ek olarak bazı bilim adamlarının büyük bir buluşa ulaşmalarını sağlayan neden onların "genel olarak kabul gören" bir şeyi kabul etmemiş olmalalarıdır. Bu da aynı "Balığa suyu anlatmak gibidir", Ne zaman balık kendini sudan bağımsız sayabilir o dakikada suyun ne olduğunu anlayabilir, aksi takdirde su onun için dogma bir bilgidir, bunu tekrar tanımlamak ve anlatmak mümkün olmayabilir.

Ana konuya dönersek iki tip girdi olduğunu görebiliriz:

Genel Girdi
Bu klasik genel kültür girdisidir, bunun sayesinde kahvede iyi bir konuşmacı olabilir ve hatta bir sonraki haftaki memleket gündemini bile çözebilirsiniz. Ek olarak bu tip girdi toplumların kanalize edilmesindeki en mükemmel yoldur, çünkü bilinçli ya da bilinçsiz (hem yayıncı hem izleyici tarafında) belli etkiler oluşur ve sonuçlar benzer çıktılara yol açar. On sene önce yayınlanan bir televizyon serisi on sene sonraki ülkenin belli yaşındaki insanları üzerinde etki yapıp, belli akımlara yol açabilir. [6]

Alternatif Girdi
Eğer "Genel Girdi" yi popüler kültür ve standart yaşam tarzı noktasına indirgersek "Alternatif Girdi" yi de normal şartlarda bulunduğun coğrafya, etnik kültürde pek bilinmeyen ve beklenmeyen bilgi ile beslenme olarak tanımlayabiliriz. Mesela İstanbul - Bostancı' daki bir adamın Afrika Etnik müziği dinlemesi tam anlamıyla o kişi için alternatif bir girdidir. Dolayısıyla bu kişinin her adımdaki çıktısını etkileyecektir. [7]


Aynı dalgadan girdiye maruz kalan insanlar istem dışı aynı şeyleri üretecektir. Mesela ben XSS Shell' i yayınladığım hafta Attack API ve BeeF te yayınlandı. 2005' te bu konunun ilk örneği geliştirilmesine rağmen tam iki sene sonra, üç farklı kişi aynı konsepti daha farklı bir şekilde birbirlerinden haberdar olmadan tekrar yaptı[3]. İlk bakışta bu her ne kadar tuhaf görünse de bu kişilerin hepsinin benzer arka plana sahip oldukları (yazılım geliştiriciliği, güvenlik ve web uygulaması güvenliği odağı),  aynı blogları takip ettiği, son zamanlardaki aynı makaleleri okudukları düşünülünce, sonuç biraz kaçınılmaz oluyor. [8] Sonuçların ikisi çok yakınken diğeri biraz farklıydı. Bunun da ana nedenini, o kişinin alternatif girdilerine bağlıyorum. Onun ürettiği yazılım tamamen JavaScript ağırlıklı idi ve kendiside diğer iki kişiye göre JavaScript ile çok daha yoğun şekilde uğraşıyordu.

Son zamanlarda okuduğum Paul Graham' ın Cities and Ambition yazısı[4] tüm bu anlattıklarıma başka bir açıdan yaklaşıyor. O da yaşadığı şehrin insana verdiği mesajdan ve insanın o mesajdan etkilenip hayat tarzını ona göre şekillendirmesinden bahsediyor ki bu da burada bahsettiğim girdi ve çıktı fikrini destekliyor.

Tüm bunlar sizin günlük hayatınızda bir anlam ifade ediyor mu? Anlam ifade ettiği tek şey nasıl bir "girdi" [9] istediğinizi tanımlamak olabilir. Bunun sonucunda da çalıştığınız iş yerini, okuduğunuz siteleri, kitapları, kaynakları, ilgilendiğiniz hobileri, gördüğünüz yerleri, yaşadığınız şehri, yaşadığınız odayı, yaşağıdınız ülkeyi değiştirmek, çeşitlendirmek olabilir.





[1] Bunların hepsini kişi ve örnekleri isimler ile detaylı vermek isterdim ama maalesef hiç biri detayları ile aklımda kalmadı, eğer benzer kesin ve güzel örnekler biliyorsunuz yorum olarak belirtebilirsiniz.
[2] Bundan sonra tabii ki bu işi pazarlama gibi noktlar var, onlara değinmiyorum
[3] Burada kimsenin birbirinden duyarak yapması mümkün değildi çünkü projenin geliştirilme aşaması bir haftadan kısa olamaz, dolayısıyla bu üç kişinin de bunu tamamen birbirlerinden bağımsız yaptıklarını söyleyebiliriz. Daha da uç bir örnek vermek gerekirse, 5-6 sene kadar önce bir web projesini henüz açmadan, aynı fikri, neredeyse aynı arabirim ile ve hatta aynı renkler ve aynı arkaplan ile (benim soldan sağa iken onunki sağdan solaydı) başka birisi benim yayın tarihimden bir hafta kadar önce açtı. Eminim sizin de bizzat tanık olduğunuz benzer örnekler vardır.
[4] Bu Paul Graham' ın diğer yazıları gibi harika bir yazı, İstanbul tam olarak ne mesaj gönderiyor, henüz ben çözemedim. Ama sanırım gönderdiği mesajlardan biri "Hayatta Kal!" .
[5] İmam-ı Gazali' nin enfes metaforlarından biri, maalesef orijinal kullanım konusu aklımda değil
[6] Sanıyorum ki açmıştır da, ama o gözlemi yapmak beni aşan konulardan biri, belki yirmi sene sonra gene bu konuda blog yazarsam, tekrar bu gözlemi yapabilirim!'
[7] Bu noktada Kelebek Etkisini unutmamak lazım, ama aynı şekilde bir zarı 1000 defa atarsanız tüm zarların ortalaması 3 olacağı gibi genel çıktılar belli ortak paydalarda buluşacaktır
[8] Burada muhtemelen çok daha fazla kişi aynı arka plana ve girdiye sahipti ancak, bir çok farklı etkenden dolayı tahmin ediyorum ki bir çok kişi bu projeyi hiç bir zaman hayata geçirmedi.

[9] Bu "girdi" kelimesi çok fena yanlış anlaşılmalara neden oluyor!

Bilgi ve YAGNI

YAGNI - You Ain't Gonna Need It,  yazılım çevrelerinde kabul gören ve benim de şiddetle izlemeye çalıştığım prensiplerden biridir. Basit şekilde "bir şeye ihtiyacın yoksa yapma, ne zaman ihtiyacın olur o zaman yaparsın" diye özetlenebilir.

Bugün aklıma şu soru geldi: Bu prensibi bilgiye de uygulayabilir miyiz? Mesela "İspanyolca öğrenmeye henüz ihtiyacım yok, niye gidip İspanyolca öğreneyim ki?" Ya da "Ruby on Rails" seksi duruyor ama henüz benim bir işime yaramıyor gibi. Bu konu hafiften Genel Kültür Çağımızın En Büyük Yalanıdır konusu ile de ilişkili, henüz ben bir karara varamadım, karara varıp varmamak pratik yaşantıda ne kadar şeyi etkileyecek emin değilim ama ilginç sonuçlar getirebilir.

Süper Makale Büyük Resmi Görebilmek

Tatilim bitti, tekrar beyaz ekranlara döndüm ***. Uzun süredir kafamda dönen, herkesin bildiği lakin göze tekrar sokulmayı hakeden bir konuda yazmak istiyorum.

Büyük resmi görmek detaylardan kopup gerçek olayı görmek, getiriyi ve götürüyü analiz edebilmektir. Bu hayatın her yerinde karşı karşıya olduğumuz bir durumdur, elimizdekine odaklanıp gerçek amacı unutmak, bir projenin bir bölgesine yoğunlaşıp uzun vadede hataya dönüşen bir karar vermek, günü kurtarmak için 5-10 dakikadan kar edip işin sonunda günler kaybetmek ile alakalıdır.

Hatta genel olarak gizli servislerin ve devletlerin suni gündem yapması da bizim büyük resmi görmemizi engellemek içindir. Bu suni ya da gerçek ekonomik sıkıntı, savaş, magazin değerli bir haber ya da tamamen gerçek dışı bir olay olabilir. Bunlar sayesinde odağın kayması ve gerçekte, büyük çapta olan olayın farkedilmemesi sağlanır.

Büyük resmi görmeye bir kaç örnek;

Toplu Taşıma Sorunlarını Çözmek:

Bir metropolde toplu taşımanın geliştirilmesi ciddi maliyetlere çıkacaktır, ancak toplu taşımayı çözmenin tek amacı sadece insanların daha mutlu olmasını sağlamak için değildir, bunun getireceği güzellikler arasında şunlar da vardır :

  • Toplu taşımada kaybedilen insan gücünün ekonomiye geri dönmesi,
  • Toplu taşımanın kötülüğünden dolayı artan kişisel araç kullanımının artması
    • Bu hava kirliliği,
    • Daha fazla benzin harcanması (paranın yurtdışına çıkması) ve
    • Daha fazla kişisel aracın satılması (paranın yurtdışına çıkması) anlamına geliyor.
  • vs. vs.

Dolayıysıyla toplu taşımayı çözmenin kendini ne kadar sürede amorti edeceği hesaba katılmalıdır, bu sadece insanlar dah fazla oy versin diye yapılması gereken bir şey değil.

Çalışanların öğle yemeği vakti:

Yapılan araştırmalarda öğle yemeğine 30 dk. yerine 60 dk. ayıran firmalar çalışanlarından daha yüksek performans alıyorlarmış*. Burada büyük resmi gören firmalar 30 dk. kar etmeye değil bunun uzun ve orta vadedeki etkilerini görebiliyorlar. Benzer bir şekilde zamanında Hayalet Çalışan başlığı altında benzer bir konudan bahsetmiştim.

TDD, Test Driven Development :

TDD bir yazılım geliştirme metodolojisidir. TDD ile yazılım geliştirirken her yazılan kod için bir de test kodu yazılır, bu da tabii ki yazılan kod oranını ciddi şekilde yükseltiyor. TDD' nin özellikle Türkiye gibi sıkışık, aceleci, henüz tam oturmamış ülkelerde yerleşememesinin en büyük nedeni de gene büyük resmi görememektir. TDD konusunda yapılan bir çok araştırmada TDD' nin uzun vadede bakım, hata ayıklama ve benzeri proseslerden kazancından dolayı çok daha verimli olduğunu ortaya konulmuştur. Bugün bir çok firma ya TDD uyguluyor ya da sadece Unit Testing yapıyor. Dolayısıyla günlük yazılım geliştirme hızı düşse de sonuçta kazanç artıyor, bu noktada büyük resmi göremeyen yazılım firmaları da günü kurtarmaya devam ediyor **.

Maalesef hayatta da büyük resmi kaçırabiliyoruz, yegane amacı kaçıyoruz. Burada bir kaç nokta var, 

  • Yaptığınız şeyleri yaparken kendinize “Neden?” sorusunu sorun,
  • Yeni bir karar verirken sadece kısa vadeyi değil ana nedeni düşünün,
    Mesela üniversite sınavlarından sonra okul seçerken sadece iyi okul seçmeyi düşünmekle yetinmeyin “Neden Okuduğunuzu” u düşünün.
  • Her işinizi yaparken arada bir adım geri atın ve tüm olayı bir bütün olarak görmeye çalışın. Detaylarda kaybolmayın. Neden başladığınızı, şu an yaptığınızı neden yaptığınızı, bu yapılan ana sonuca yardımı olup olmayacağını değerlendirin.
  • Konunun içerisinde olmayan biriyi konuya çekip hızlı şekilde fikir alın.
    Programcılıkta bir yerde saatlerce takılır ve sorunu çözemezseniz hemen etraftaki bir programcıyı bulur ve ona sorunu sorarsanız, sizin iki saattir çözemediğiniz olayı genelde o bir dakikada tespit eder. Çünkü bu sorun genelde ya yazım hatasıdır, ya yazdığınız kod ile baktığınız çıktının farklı olmasıdır. Dışarıdan gelen kişi sizin kadar işin içerisinde olmadığından varsayım yapmadan en aptalca olan şeyleri bile kontrol eder. Yani size “Sunucunun prizi takılı mı?”, “Baktığın tarayıcı cache’ in de mi tutuyor?”, “Çalıştırdığın yazılım eski verisyonu mu son olarak compil ettiğin mi?” diye sorabilir. Siz ise bunları o noktada düşünemeyebilirsiniz (Hatayla Yaşamak ve Sorun Çözmek).

Konu bundan çok daha geniş ama siz zaten konuyu biliyorsunuz, bu ise size bir hatırlatma. Şimdi bir adım geri atın ve düşünün.

 

 

* Makalenin kaynağı BA Business Life dergisi, ancak online olarak bulamadığımdan kaynağı veremiyorum.

** Bu konuda bir çok istisna var, her firma illa TDD kullanacak diye bir şey yok, her projeye uygun da olmayabilir, ama TDD başarısı kanıtlanmış metodolojilerden biri.

*** “yeşil sahalara dönme” kelime grubuna yapılan göndermedir bu, bu noktada okuyucunun suratında bir tebessüm oluşması gerekiyor.

Süper Makale Penetration Tester Olmak

Daha önceden pek çok kişi zaten söyledi güvenlikçi olmak sadece birkaç teknik konuyu iyi bilmek ya da birkaç kitap okumak değil daha çok beynin nasıl çalıştığı, bir soruna nasıl yaklaşıldığı ve olaylara bakış açısı ile ilgili. Bunun yanında bir çok başka meslekte de gerektiği gibi gündemi takip etme, odaklanma ve havadaki kokuları alabilme de gerekli meziyetlerden.

Bir güvenlik uzmanının ya da daha spesifik olarak penetration tester’ ın bir dizi özelliğe ihtiyacı var. Bu özelliklerin bir kısmı teknik, ve teknik şeyler öğrenilebilir ama bir kısmı da doğuştan gelen huylar ve muhtemelen ne yaparsanız yapın öğrenemeyeceğiniz ya da gerçekten öğrenmesi seneler sürecek şeyler.

Konuyu burada hemen “güvenlikçi oılunmaz, güvenlikçi doğulur(!)” a bağlamak istemiyorum, çünkü durum bu değil. İddialara göre Mehmet Akif Ersoy demiş ki “Şiirin %5 ilham, %95 çalışmaktır”. Ben de bu şekilde düşünüyorum, dolayısıyla %5 + %95 e erişince Mehmet Akif Ersoy olunuyor.

Yazacaklarımın bazıları gerçekten ölümcül bazıları ise sadece işinizde daha iyi olmanızı sağlayacak şeyler.

  • Güvenlikçi Olarak Yaşamak, Güvenlikçi Olarak Düşünmek
    • Yapmak değil, yıkmak
    • Kullanmak değil, Suistimal etmek
  • Derinlemesine Bilgi
  • Paranoya
  • Tutku
  • İletişim Becerisi
  • Okuma

Penetration Testing, Güvenlik Uzmanı ve Vulnerability Assessment

Yazının detaylarına geçmeden önce bazı terimleri temiz şekilde ifade etmek gerekir.

Penetration Testing (Pen Test)
Bir sistemi dışarıdan genelde ekstra hiçbir ekstra bilgi sahibi olmadan güvenlik açıklarına karşı test etmek ve bu açıkları mümkün olduğu kadar exploit etmek.

Vulnerability Assessment (VA)

Aynı penetration testing gibidir ama açıklar exploit edilmez, burada dikkat edilmesi gereken bir nokta var ki Vulnerability Assessment daha çok false positive verecektir ve açığın gerçek etkisini ortaya koymayabilir.

Mesela test edilen sistemdeki Buffer Overflow açığı olan bir SMTP server varsa ama karşıdaki sistem x64 ise ve bu açık x64 da geçerli değilse Vulnerability Assessment bunu açık olarak direk kabul edecektir ama gerçekte bu açık exploit edilemeyeceğinden direk bir risk taşımamaktır. Buna rağmen eski versiyon bir yazılım bulundurmak genelde iyi bir fikir olmadığından VA’ ın sonuçları her şekilde işe yarayacaktır.

Güvenlikçi / Güvenlik Uzmanı

Güvenlik Uzmanı çok geniş bir terim genelde şu iki anlamda kullanılır:

  • Bir sistemin güvenliğini sağlamadan sorumlu kişi.
  • Güvenlik işini bilen kişi.

İroniktir ki genelde güvenlikçikler sistemleri korurlar Penetration Testerlar gibi saldırmazlar ama bu grubun ikisi de Güvenlikçi, Güvenlik Mühendisi, Güvenlik Uzmanı diye geçebilir.

Ek olarak bazı güvenlikçiler kendi sistemlerini test etmek için kendi içlerinden kendi sistemlerine saldırganmış gibi de test edebilirler. Bu kişiler genelde iki rolüde üstlenmiş olurlar. Not düşmek lazım bu aynı kendi programınızda “bug” aramak gibidir, yani muhtemelen iyi sonuçlar vermeyecektir. Yazılımın sahibi olarak yazılımın zaten doğru oldu varsayımı ile yola çıktığınızdan genelde önünüzdeki sorunları bile göremeyeceksinizdir.

Güvenlikçi Olarak Düşünmek

Polisiye filmlerdeki klasik muhabbetlerden biri “profiling” dir yani saldırganın profilini çıkartabilmek. Buradaki en büyük klişe ise bir dedektifin saldırgan gibi düşünmesidir. Ne kadar klişe olsa da bu gerçekten saldırgana ulaşmanın en iyi yoludur ve güvenlikçi de aynı periyoddan çok daha güçlü şekilde geçer.

Çünkü bir polis gerçekte saldırgana ulaşmak için kimseyi öldürmez ama güvenlikçi siteye girer, exploit eder, database’ i indirir, reverse shell’ ine erişir. Gerçekten suçu işler, doruğa çıkar ve iner. Bu gereksinim güvenlikçinin içerisinde saldırgan kimliğinin bire bir yaşamasını sağlar.

Bilinen bir gerçek bir çok büyük güvenlik firmasında çalışan kişilerin eski suçlu hackerlar olduğudur.

Örnek isterseniz Kevin Mitnick’ in kendisi ya da eski @stake’ in L0pth Heavy Industries hacker grubunda gelen tayfası güzel bir örnek olacaktır. Bu örneklerin yanında diğer bir çok benzer güvenlik sektöründe çalışan kişinin de karanlık bir mazisi vardır. Bu arada not düşmek gerekir ki bu furya değişiyor, yazının ilerisinde ona değineceğim.

O zaman güvenlikçi saldırgan gibi düşünmelidir, Saldırganın motivasyonu nedir?

  • Para,
    Karşıdaki sistemi kırıp elde edeceği getiri (Kredi Kartı vs.)
  • Şan / Şöhret,
    Cyber Grafiti veya benzeri gösteriler, Saldırgan sistemi kırabildiğini tüm dünyaya gösterir
  • Ego Tatmini,
    Saldırgan karşıdaki sistemi kırıp kendisinin sistemin geliştiricilerinden daha iyi olduğuna inandırır, ek olarak kırılamayanı kırmış yeni bir şey yapmıştır.

Peki aynı durumda penetration tester ne yapmaktadır, onun motivasyonu nedir?

  • Para,
    Sistemi kırmak, kontrolleri geçmek güvenlikçinin pozisyonun koruması ya da daha iyi bir tester olup daha çok maaş alması demek.
  • Şan / Şöhret,
    Konu ar-ge olunca durum tamamen aynıdır, güvenlikçi yayınladığı yeni bir bir makale, araştırma yazısı ile o çevrede ünlenecektir, aynı şekilde saldırının başarısı ile de firma ya da kendi içerisinde bulunduğu grup içerisinde ünlenecektir.
  • Ego Tatmini,
    Güvenlikçi bu noktada saldırgan ile birebir aynı duyguları paylaşır.

Görüldüğü üzere güvenlikçi ile saldırgan tamamen aynı duygular içerisindedir, dolayıyla penetration tester’ lar dünyadaki saldırgan rolünü direk olarak oynayan sayılı mesleklerin birini icra etmektedirler.

Yazının devamı gelecek inşallah, orada biraz daha psikolojik farklılıklara, daha verimli olmak için yapılması gerekenlere ve en sonra olarakta kendinizi bu alanda nasıl geliştirebilirsinize ve Derinlemesine Bilgi, Paranoya, Tutku, İletişim Becerisi, Okuma konularına değinmeye çalışacağım.

Süper Makale Hayatınızı Değiştirecek 62 Öneri

Özellikle bilişim sektöründe hayatınızı değiştirecek 62 öneri. Genel olarak kendi deneyim ve gözlemlerimden derledim. Öneriler dört ana konuyu içeriyor "Kişisel Gelişim", "Zamanı Verimli Kullanma", "Proje Geliştirme" ve "İş Hayatı".

  1. Kendinizi Geliştirin ...
  2. Kitap okuyun,
  3. Silahınızı tanıyın,
  4. Kısayolları öğrenin,
  5. Bilmediğinizi bilin, anlayın ve itiraf edin,
  6. Paranın alabileceği en iyi sistemi, en iyi monitörü, en iyi klavyeyi, mouse' u, masayı ve sandalyeyi alın. Eğer hayatınızın %50' sini bu ekran karşısında geçirecekseniz bunu hakediyorsunuz demektir,
  7. Bir konuyu biliyorsunuz diye o konuda dinozor olmayın, yeni konulara vakti gelince kendinizi adapte edin,
  8. Bir blog tutun, sadece kendinize özel olabilir ama bir blog tutun,
  9. Ne istediğinizi bilin,
  10. Ne yaptığınızı ve hayatınızı düzenli olarak sorgulayın, işleri akışına bırakmayın,
  11. Seçeneklerinizi bilin,
  12. Kovalayan Yakalar, Başkalarının sizi hayallerinizden vazgeçirmesine izin vermeyin,
  13. Yeni teknolojileri direk kullanmasanız bile onlardan haberdar olun,
  14. Bulunduğunuz alandaki blogları takip edin,
  15. RSS Reader kullanın,
  16. Yeni teknolojilere açık olun, belirli zamanlarınızı yeni araçları, teknolojileri test etmek ve denemek ile geçirin. Beğendiğiniz sistemleri kullanmaya başlayın,
  17. Kürdan Sendromuna (The Cheap Toothpick Syndrome) düşmeyin, Ekonominizi zekice ve düşünerek yönetin, her sey sıcak para demek değildir. Eğer saatte 30 YTL kazanıyorsanız taksiden 10 YTL kar etmek için otobüse binip 30 dk. a kaybetmeyin,
  18. Ön görebildiğiniz konularda kumar oynayın, (örnek olarak : domain satın almak, web 2.0 vs.), Bir çok sektörde ilk gelen büyük pastayı alan kişidir,
  19. Yanlış giden işlerden ders alın, Hatalarınızı tekrarlamayın,
  20. Kendinizi tekrar etmeyin, aynı kodu iki defa yazmayın, aynı kitabı iki defa okumayın, aynı filmi iki defa izlemeyin, Dünyadaki üretilmiş bilgi o kadar fazlaki limitli kaynaklarınızı aynı şeylere harcamayın,
  21. Bulunduğunuz alandaki "En iyi Pratik" leri bilin ve uygulayın,
  22. Boğulmayın kendinize keyifli vakit ayırın, keyifli vaktin hakkını verin güzel kullanın,
  23. İngilizce Öğrenin,
  24. Okul okumak için okul okumayın, Kariyerinize ve istediğinize göre bu seneleri sektörün içerisinde değerlendirebileceğinizi farkında olun,

    Zamanı Verimli Kullanma...

  25. E-maillarınızı 10 dk. da bir kontrol etmeyin, e-mail programınızı kapalı tutun ve iki saatte bir ya da benzer vakitlerde açıp kontrol edin,
  26. Aynı anda birden fazla iş yapmayın (Multi-Threading), Odağınızı koruyun,
  27. MSN, ICQ vs. benzeri IM yazılımlarını kullanmayın veya belirli periyodlarda açın,
  28. Bire bir görüşmelerde yazılı metnin donukluğundan ve vakit kaybından kaçının beş kişiye kadar skype ya da telefon konferanslarını tercih edin,
  29. Her zaman bir Yapılacaklar Listeniz olsun, bir sonraki adımınızı bilin,
  30. Geniş ve büyük planlar yapın ama Yapılacak Listenizi küçük gruplara bölün, bir adım 30 dk. yı geçmesin, Geçerse onu da tekrar daha küçük gruplara bölün. Küçük adımlar sizi odakta tutacak ve ilerleme kaydettiğinizi görmenizi sağlayacaktır.
  31. Her zaman okuyacak bir kitabınız olsun ve bu kitabı yanınızda dolaştırın. Bir yerde sıra beklemek zorunda kaldığınızda, hemen okuyun, bu tip talihsiz durumları kendi lehinize çevirin,
  32. Yazılımlardan beklentilerinizi yükseltin ve eğer şu anki yazılımınız beklentilerinizi karşılamıyorsa diğer yazılımları araştırın,
  33. Becerebiliyorsanız ve sağlığınızı etkilmiyorsa daha az uyuyun, Hayat kısa ve onu daha fazla uyuyarak daha da kısa hale getirmeyin,
  34. Gereksiz şeylerden kendinizi izole edin, saçma şeylere harcadığınız vakti kısın. Faturaları otomatiğe bağlayın, TV' de zapping yapmayın izleyeceğiniz şeyleri seçip kaydedin ya da download edin, Eğer gerçekten hobiniz değilse politika gibi angarya geyiklerden uzak durun, vb.
  35. Sağlığınıza ve moralinize dikkat edin,

    Proje Geliştirme...

  36. İnsanların konular hakkında düşüncelerini alın ama son kararı siz verin,
  37. Kıllanırsanız kurcalayın, Bir şey yanlış gözüküyorsa, kokuyorsa, kıllanırsanız işler sarpa sarmadan onu kurcalayın, durum anlayın,
  38. Politika ve prosedürde takılıp kalmayın,
  39. Mükemmeliyetçi olmayın,
  40. Bir projeye başlamadan önce benzer projeleri araştırın,
  41. Başladığınız projeleri bitirin, cok proje yapmak yerine yoğunluğunuzu bir kaç projeye yoğunlaştırın, Unutmayınki altı aylık web projelerinin milyon dolarlara satildigi bir zamandayız,
  42. Siz sanatçısınız resminizi gösterilecek hale gelmeden onu gostermeyin ama mükemmeliyetçi de olmayın,
  43. Herşeyi kendiniz yapmaya çalışmayın, yapılmış kaynaklardan faydalanın,
  44. Eğer projeniz yapılmışın daha iyisi veya tamamen yeni bir şey degilse o projeyi yapmayın,
  45. Yapılması gereken şeyleri ertelemeyin, kırık pencereler terkedilmiş binalara neden olacaktır,

    İş Hayatı...

  46. CV - Özgeçmişinizi her zaman güncel tutun, Kendinizi bulunduğunuz yerde çalışma zorunluluğunda hissetmeyin, alternatifleriniz olduğunu bilin,
  47. İşiniz zevk vermemeye başladıysa yeni bir iş aramaya başlayın ve bulunca yeni işinize geçin, Bu hayat sizin ve işvereniniz için siz sadece is yerindeki diğer bir cihazsınız, Gereksiz yerlerde duygusal olmayın,
  48. Teknik becerilerinizin yanında "Kendini Pazarlama", "Prezentasyon", "İletişim" gibi teknik olmayan konularda geliştirin (soft skills) ,
  49. Blog tutun,
  50. Kişisel projeler geliştirin,
  51. Bir konuda uzmanlaşın ve en az iki ilişkili konuda iyi seviyede bilgi sahibi olun,
  52. İş görüşmelerine hazırlıklı gidin, gittiğiniz firmayı tanıyın,
  53. İş yeriniz geçici, aileniz ve bilginiz kalıcıdır, önceliklerinizi doğru belirleyin,
  54. Hayır demeyi öğrenin,
  55. İş yerinizi seçerken para dışındaki kriterleri düşünün, Kendinizi geliştirebilecek misiniz? Zevk alacak mısınız? Nasıl takım arkadaşlarınız olacak?..
  56. Sizden daha iyi teknik kişilerin bulunduğu yerlerde çalışmaya çalışın bu size daha fazla öğrenme imkanı sağlayacaktır,
  57. İş hayatında topun kimde olduğunu bilin ve sıcak patatesi elinizde çok dolaştırmayın. Yapmanız gerekenleri yapın, işin içinde ters gitme olasılığı varsa yöneticinizi sürekli olarak bilgilendirin ve onay alın. İşler kötü gitse bile bu sizin sorununuz olmayacaktır.
  58. Doğru istek için doğru zamanı bekleyin,
  59. Teknik bilgileri ne olursa olsun karaktersiz insanlardan, iş arkadaşlarından uzak durun, kazancağınız teknik bilgiye değmeyecektir,
  60. Sonuç getirin, polemik, laf ve jargon kalabalığı değil,
  61. Mantıklı olun, iki defa düşünüp bir defa harekete geçin,
  62. Köprüleri yakmayın, İş yeriniz ve iş arkadaşlarınızla iyi geçinin.

Süper Makale Hayatınızın %25' i Sizin Gerisi Yalan

 

Cap[2]Bu her zaman kafamda dolaşan şeylerden biridir.

Hayata geliyorsunuz :

  • İlk 10 sene ne yaptığınızı bile bilmiyorsunuz,
  • İkinci 10 sene okulda okuyorsunuz.

Dolayısıyla hayatınızın %25' ini ne yaptığınız hakkında fikriniz olmadan geçirdiniz bile. Doğdunuz, okudunuz, üniversite sınavına girdiniz, kazanamadınız, bir sene daha çalıştınız girdiniz, kazandınız, okulu bitirdiniz, askere gittiniz, işe girdiniz, yaş 22 ve zilin sesini duymanızla hayatınız başladı.

Sağdaki çılgın pasta grafikte bu noktadan sonraki hayatınızı özetledim. Gününüzü işte çalışarak, yemek yiyerek, faturaları ödeyerek, ev işlerini yaparak,otobüslerde harcayarak ve uyku ile bitireceksiniz. Ondan sonra size kalan 2-3 saatte de eğer şanslıysanız istediğiniz bir şeyi yapacaksınız. Film izlemek, arkadaşlar ile dışarı çıkmak, oyun oynamak ya da böyle saçma bloglar yazmak.

İnsan için ne kadar acıdır ki hayatın %25' i okul ve eğitim gibi şeylerle ve kalan kısmının %27' si işe gidip %24' lük kısmı için para kazanmaya çalışmak için geçiyor. Eğer bunu becerebilirseniz de kendinizi şanslı hissediyorsunuz.

Notlar:

  • Excel foo' mu maruz görün, benden ancak bu kadar.
  • Datalar haftanın 7 gününün 5 gününü işte geçiren ve saat 09:00 - 18:00 arası çalışan birine göre üretilmiştir, hepsi itina ile benim tarafımdan uydurulmuştur, gerçeklik çarpışabilir.
  • Hayatın sadece zevkli şeyler değil, iş hayatı, okul hayatı olduğunu bende biliyorum ama bir şeyi yapmak zounda olmak ile bir şeyi yapmak istediğin için yapmak arasında dağlar, bostanlar ve kutuplarda cinsi tükenen penguenler var.
  • Bu post yazılırken hiç bir insana zarar verilmemiştir.

This is your life, and it's ending one minute at a time.
You have to realise that someday you will die, until you know that you are useless...

Zayıf Olduğunu Bil

Bir bilgi işlemci olarak bilmeniz gereken birçok şey var. Kullandığınız işletim sistemi, bazı programlama dilleri, ağ bilgisi, donanım bilgisi vs. vs. Tahmin edebileceğiniz gibi sonu olmayan bir liste sizi orada bekliyor.

Dolayısıyla sizin odaklanmanız ve kendi bölümünüze ayrılmanız gerekiyor ancak konu orada da bitmiyor, her şeyden sonra ne kadar çok şey biliyor olsanız da bilmediğiniz şeyler olacak. Hatta daha fazla öğrendikçe daha fazla bilmediğinizi anlayacaksınız. Bu bilmedikleriniz içerisinde kariyeriniz ve projeleriniz boyunca size gerekenler ya da önünüze çıkanlar da olacaktır. Belki onları öğrenebilirsiniz belki es geçebilirsiniz ya da o anki bilginizin dahilinde o konuyu çözemeyeceğinizi fark edersiniz.

Bu durumlarda zeki olmak en önemli faktördür, Eğer solaksanız sağ elinizle bilek güreşine girmezsiniz, bacağınız sakatsa maratona katılmazsınız… Aynı şekilde güçlü olduğunuz konuları da ortaya çıkarmaya ve onların üzerine yürümeye çalışın, projelerinizde iş yerinizde ve hayatınızda başkaları ile aynı şeyleri yapmak yerine sizin avantajda olduğunuz şeylere yönelin. Bu şekilde birçok yarışa erken başlamış olursunuz.

Blair Witch filmi ve benzeri yapımlar bu konuya güzel bir örnek aslında. Hollywood gibi milyonlara film çekemiyorsunuz dolayısıyla taktik değiştiriyor, interneti, dedikoduyu ve farklı bir yolu seçip bir film yapıyor ve parayı kırıyorsunuz. Komiktir aslında bu filmin iki ilginç olgusu var. Birincisi filmin tüm konusu çarpma (eski 60 kadar ülkede yasaklanmış bir gore filmden – detayları inanınki bilmek istemezsiniz), ikincisi film gerçekten kötüydü. Buna rağmen para kazandı. Sonuca bakarsak muhtemelen onlar amaçlarına ulaştı. Sanırım yüz yılın sanat filmini yapmayı planlamıyorlardı.

Sonuca gelirsek sevgili dostlarım yapabileceklerinizi ve yapamayacaklarınızı bilin ve ona göre kararlar verin. yedi – sekiz sene önce sektörde çok daha toy olduğum halimi hatırlıyorum ve çok gülüyorum. Gençliğin de etkisi ile o kadar çok şey bildiğimi sanıyordum ki… Şu an düşününce o zamanki bilgim ile o şekilde düşünmem ne kadar acı bir durum. Aynı şekilde beş sene sonra şu anki halime güleceğime de eminim.

O zamanlar tabii ki sektör çok daha kapalıydı, bilgi almak ya da tabiri caizse kendinize mentor – üstat bulmak çok bir işti, biz ise sadece önünde dial-up ı olan ama Google’ u olmayan insanlardık.

Özetle sevgili dostlarım şunları bilin:

  • Siz en iyisi olmadığınızı ve her zaman sizden iyileri olacağını,
  • Her şeyi bilmediğinizi ve hiç bir zaman bilmeyeceğinizi,
  • Bildiğiniz, iyi olduğunuz şeyleri kendi avantajınıza kullanmayı ve iyi olmadığınız noktalarda iki defa düşünmeyi,
  • Cin olmadan adam çarpmamayı…

Ek olarak bilmediğinizi bilmek yeni bir şeyler öğrenmek için süper bir yol.