Category Archives: NEDEN?

JIRAMANIA BİZE ÇOK UZAK ÇOOKKK!!!

threetools.pngGeçtiğimiz günlerde Atlassian firmasının sitesinde gördüğüm What 3 Dev Tools Do You Rely on Most? başlıklı haber çok hoşuma gitmişti. Yani bir uygulamanın bu kadar çok amaca hizmet edebilir olması ve bu kadar efektif kullanılması hem o uygulamayı yazanlar için hem de kullananlar için çok güzel bir durum.

Yukarıdaki resimde de görüleceği üzere arkadaşlar development süreçlerinin her aşamasına JIRA ‘yı entegre etmişler. Bu sayede JIRA+CVS+ECLIPSE üçlüsü ile projelerini tıkır tıkır yürütmeyi başarmışlar. Resme bakınca JIRAMANIA bu olsa gerek demiştim kendi kendime…

Bu arada nedir bu JIRA diyenler buradan ve Mustafa Tan ‘ın blogundan detaylı bilgiye ulaşabilirler.

JIRA özetle “Söz uçar yazı kalır” felsefesinin yazılım projelerinde hayat bulmasıdır benim gözümde. Yapılan , yapılması gereken, yapılması umulan yada yapılacak olan işlerin takip edilebilmesini ve kayıt altında olmasını sağlar JIRA. Yani e-maili, telefon yada birebir muhattabiyeti kayıt altına alır. “Abi bee bu kod patlıyor bir el atıver de biz de teste devam edelim” şeklinde gelecek vakitsiz bir telefonun önüne geçer JIRA. Onun yerine e-mailinize ve JIRA hesabınıza tatlı bir issue düşer bir öğle tatili öncesinde… :)

Açar bakarsınız ve gerekeni yaparsınız. Sonradan birisi çıkıp da “Ben şu zaman demiştim sen bu zaman yaptın“, yada “ben böyle demiştim sen şöyle yaptın“gibi bir iddiada bulunamaz çünkü herşey orada yazılmıştır. JIRA ‘nın tanıtımı yapıp , teorik olarak kullanımını anlattıktan sonra sıra geldi hayatın gerçekleriyle yüzleşmeye…

Biz de şu anda dahil olduğum projede JIRA ‘nın nimetlerinden faydalanmaya çalışıyoruz. Hem development hem de test sürecinde yoğun bir şekilde JIRA kullanılıyor. Özellikle de projesini yaptığımız şirketin IT departmanıyla olan ilişkilerde işlerin daha ciddi yürütülmesi adına JIRA köprü görevi görüyor. Şu sıralarda bizim ekibin yazdığı modüller Alfa tesinde. Müşterimizin IT departmanındaki arkadaşlar bizlerin yaptığı ekranları test edip bizlere hatalı durumlarda “issue açıyorlar“. Buraya kadar herşey olağan. Ama bazen etrafımda öyle manzaralara denk geliyorum ki… Millet uzaya gidiyor biz nereye diye düşünüyorum…

Bir hata raporlanmış, developer arkadaş da düzeltmiş bir güzel. Şimdi tek yapması gereken JIRA ‘da kendisine atanan görevi ufak bir açıklama girerek kapatmak. Developer arkadaş kaygılı. Neden mi? Çünkü hatayı raporlayan vatandaş açıklamaları anlamamkta büyük bir direnç gösteriyor. Ne yapsam ne yazsam diye düşünürken oradan dahiyane bir fikir egliyor. “Ya telefon açıp söylesene. Böyle böyle diye anlatsana” (Hani yazılandan anlamıyor belki laftan anlar diye umuyor sanırım) yada “Dur dur ben de e-mail adresi var o bayanın uzun uzun bir mail at olsun bitsin“  Güler misin ağlar mısın?

Madem bizim telefon, e-mail gibi hizmetlerimiz var neden JIRA kullanıyoruz? Neden birileri JIRA ‘da bizim sorunsuzca çalışabilmemiz için emek harcıyor? Yada bu işler madem böyle de yürütülebiliyor neden bir grup zeki arkadaş oturup JIRA adlı bir uygulama geliştiriyor. Maksat yeşillik olsun diye değil mi? Yada el alem “Sizin JIRA ‘nız var mı?” diye sorduğunda “Olmaz mı hem de en enterprise edition ‘ından” diyebilmek için…

Görüldüğü üzere bir uygulama ne kadar akıllıca tasarlanmış olursa olsun işin içine beşeri faktörler girince, o akıllıca tasarım pek bir anlam ifade. Siz siz olun bu gibi fikirlere aldırış etmeyin. Elinizdeki araçlar her ne kadar amacınız olmasa da onları ne kadar efektif ve doğru kullanırsanız o kadar rahat edersiniz. Sisteminize ekleyeceğiniz fazladan her araç hem maddi yük getirecek hem de ayrı bir yönetim süreci isteyecektir. O nedenle bu gibi işlere ayıracağınız kaynağın karşılığını en iyi şekilde almalısınız. Hem siz elinizdeki aracı doğru kullanmak konusunda ne kadar ısrarcı olursanız etrafınızdakiler de er geç size uymaya başlayacaktır. (Yani birileri derdini yazarak anlatmayı ve diğer taraf da yazılandan birşyeler anlamayı öğrenmeli.) Yanlışları değil doğruları toplu halde yapmaya özen göstermenizi dileyerek yazımı burada noktalıyorum.

CEVABI KİM BİLİYOR?

word.pngCuma günü Erhan Burhan ‘dan gelen e-mail aracılığıyla WordPress ve altındaki tüm blogların erişime kapatıldığını öğrenmiştim. Türk Telekom ‘un DNS ‘ini kullanmadığım için durumu fark edememişim haliyle. Bundan ötürü abartıp Erhan ‘dan bir ekran görüntüsü bile istemiştim. (Gözümle görmeden inanmam dercesine)

Haftasonu bu erişm engelleme kararı tüm WordPress camiasının gündemindeydi. Ne oldu , ne olacak , nasıl kurtuluruz bu durumdan şeklinde sorular , erişim izninin çıkmasıyla son buldu. (Temizlenmeyen DNS cacheler yüzünden bazılarımız için bu sorular biraz daha uzun sürdü.)

Bugün de WordPress ‘in geliştiricilerinden Matt bu erişim yasağı ile ilgili olarak kendisine ulaştırılan açıklama metnini bloguna taşımış. İşin ilginç tarafı da o da ne yapacağını bilemeyip Türk kullanıcılara “ne desek” diye sormuş.

I’m curious, particularly amoung our Turkish community, what do you think we should do about this? How should we respond?

Buradaki metinde geçen “Biz size defalarca söyledik ama dikkate almadınız yada herhangi bir geri dönüş yapmadınız” şeklindeki imalar beni çok şaşırttı. Çünkü ben WordPress ile ne zaman iletişime geçsem mutlaka bir cevap alıyorum .Ya Matt yada Mark mutlaka bir cevap dönüyorlar. Böyle bir durumun ortaya çıkmış olması çok garip. Elbette kendilerine bu tip bir rapor olaşıp ulaşmadığını ancak WordPress ekibi bilir ve belki de bu durumla ilgili bir açıklama yaparlar. (En azından ben kendilerine bu soruyu sordum)

Sonuç olarak hiç de hoş olmayan ve itibarımızı zedeleyecek bir durumla karşı karşıya kaldık. İşin kötüsü bu durum karşında ne yapacağız sorunun cevabını WordPress ekibi de bilmiyor. Ee peki o zaman cevabı kim biliyor?

NEDEN BİR STANDART YOK?

mobile.jpgUzun süren cep telefonu değiştirmeme direncim bu haftasonu (eski) telefonumun ruhunu teslim edecek bir hava estirmesiyle sona erdi ve ben de gidip kendime yeni bir cep telefonu aldım.

Neden bunca zaman direndiğimi merak edenler için hemen gerekçemi açıklıyayım: Benim için telefon değiştirmek ciddi bir problem. Bir önceki “migration” sırasında yaşadığım kayıplar ve sorunlar beni canımdan bezdirmişti. Ondan ötürü de elimden geldiğince telefon değiştirmekten uzak dururum.

Yeni bir telefona taşınma sırasında bana en çok lazım olan veriler telefon rehberim ve wap bookmarklarım. Telefon rehberimi aktarmak için aklıma gelen 2 yol var. Birincisi ne var ne yok sim kartıma kopyalamak ve bu kart aracılığıyla yeni telefona rehberi kopyalamak. Diğer yol da uygun bir yazılım bulup telefon rehberini bilgisiyarda bir dosyaya export edip, bu dosyayı yeni telefona import etmek.

Rehberi karta kopyalamak başlı başına bir sorun. Kartın kapasitesi 250 kayıt ile sınırlı olduğu için bir kısım kayıtlar telefonda kalıyor. Öte yandan yaşanan Türkçe karakter sorunu var ki beni canımdan bezdirmiştir. Bir de bir isme ait sadece tek bir telefon numarası yok ki. Bir kişinin birden fazla telefonu ve telefon numarasının yanında bir dolu da detay bilgisi var. (e-mail,adress,web sitesi vs.) Bu bilgileri de karta aktarma imkanım yok. O nedenle kart aracılığıyla rehberi aktarmak pek efektif olmuyor.

Peki bir PC aracılığıyla bu işi yapmak mümkün mü? Teoride mümkün. Öncelikle bir Windows işletim sistemi kullanıcısıysanız ve kazaran kullandığınız bluetooth alıcısının sürücüsünü kurduysanız vay halinize. (Aklınızda olsun Windows XP SP2 altında Widcomm sürücülerini kullanmak yerine işletim sisteminin sürücüleriyleriyle idare edin.) Bağlantıyı sağsağlim gerçekleştirdiğimizi düşünürsek sıra uygun programı seçmeye geldi. Sony Ericsonn için ben genelde Float’s Mobile Agent (FMA) veya My Phone Explorer tercih ediyorum ama gelin görünkü bu ardaşların export imkanları yok yada benim işimi görmedi. (Nokia için de Oxygen Phone Manager deneyebilirsiniz . En azından PC Suite gibi bilgisayarınızı çöplüğe çevirmiyor.)

Ayrıca yeni telefonumla birlikte gelen yazılım da import için öyle her dosya tipini desteklemiyor. (O da Microsoft amca severlerden)

Diğer bir sıkıntı da wap bookmarklar. Malum wap adreslerini akılda tutmak imkansız. Hepsini de Google ‘dan arayıp tek tek ekleyecek kadar yeterli enerjiye de sahip değilim. Bunun için de diğer bookmarklarımı bluetooth ile yeni telefonuma göndermeyi denedim. O da olmadı. (formatlar uyuşmadı sanırım) Keşke wap ortamında wap bookmarklarımızı saklayabileceğimiz bir wap sitesi olsa. (Aslında bu tip bir çalışma aklıma gelmişti ama beklediğim desteği bulamayınca fikirden öteye geçmedi.)

İşte yukarıdaki nedenlerden ötürü 4 gündür servis yolculuklarımı cepten-cebe migration için harcıyorum. Hayatımda en kolay telefon aktarımını Nokia 6310 ‘dan 8310 ‘a geçerken yapmıştım. (İki telefon da birinin aynısı ondan sanırım.) Telefonlar karmaşıklaştıkça yazılımların yetekleri arttıkça en basit ve en temel ihtiyaçlar ihmal edilmeye başlandı sanırım. Halbuki telefon üreticileri (yada onlara yazılım yapan firmalar) XML gibi güzel bir standartta anlaşsa da bizler de farkı üreticilerin ürünleri arasında geçiş yaparken perişan olmasak. (My Phone Explorer verilerinizi XML olarak export ediyor ama diğer üreticilerin yazılımları bunu import etmedikten sonra pek de bir anlam taşımıyor. )

Bu devirde (insanların milyonlarca kullanıcıya ait milyarlarca veriyi sorunsuzca aktardığı devir) 200-300 tane rehber kaydını bir telefondan diğerine aktarırken perişan olmak bana çok koydu. Umarım uzunca bir süre telefon değiştirmek zorunda kalmam…

SUÇLU KİM?

no_picture.jpgBir kaç gündür aklımı meşgul eden bir soru var. Bu yazıyı da belki sizler aklımdaki bu sorunun cevabını verirsiniz diye yazıyorum. (Vermeseniz de olur tabi)

Aslında aklımı meşgul eden sorunun kaynağı ff kod adlı arkadaşın CODE OF HORROR başlıklı yazısı. Öncelikle bu yazının kalanını okumadan evvel Code of Horror yazısına göz atmanızı tavsiye ediyorum. Yazıda uygulama geliştirirken “NEYİ NASIL YAPMAMALIYIZ” şeklinde uyarılar var ve bu uyarılar kötü anılar eşliğinde gayet çarpıcı bir şekilde anlatılmış. Önüne koyulan kaynak kodlarını revize ederken ff dikkatini çeken kodlama hatalarını blogunda paylaşmış. (Daha doğrusu ortaya dökmüş)

Bu durum çoğu iş ortamında blogda anlatıldığı gibi birebir yaşanıyor. Yani birileri vakt-i zamanında birşeyler kodluyor daha sonra başka birileri (Muhtemelen işin piri , programcının hası yada yüzüklerin efendisi diye tabir edilen abilerimiz) gelip bu kodlardaki saçmalamaları buluyorlar. Hataları bulmakla kalmayıp üstüne üstelik önceden kodu yazan arkadaşın da sık sık kulaklarını çınlatıyorlar. (Aynen ff‘ in yaptığı gibi)

Şimdi buradaki hikayede iki tip karakter var. Birtanesi herşeyi çok iyi bilen (yada öyle sanan yada çok iyi bildiği düşünülen) kişi. O kişi açısından bir sorun yok. Sadece kodlardaki anormallikleri bulup düzeltecek ve parasını alacak. Diğeri ise ; bir zamanlar kendisine verilen görevi yerine getirirken hatalar yapmış kişi.

Olaydaki kişileri de belirledikten sonra, sıra “acaba ben burada hangi kategoriye giriyorum” sorusuna geliyor. Elbetteki 2. kategoriye yani hata yapma ihtimali olan kişi kategorisine giriyorum. Durum böyle olunca beni “ ileride benim de kulaklarımı çınlatırlar mı” diye bir telaş sarıyor.

Elbetteki bir hata yapıyorsak yada yapacaksak bunun sonuçlarına katlanmamız ve hatamız yüzümüze vurulunca da itiraz etmememiz lazım. Fakat benim takıldığım nokta burası değil. Acaba bu hatalarda ; hatanın yapılmasına baştan engel olmayan yada engel olmaya çalışmayanların suçu yok mu?

Gözlemlediğim kadarıyla çoğu projede bu tip denetimler yada iyileştirmeler bir gün bir yerlerde sorun olduğunda yapılıyor. (en azından benim gördüklerimde) Yani bir şikayet yada sorun şans eseri ortaya çıkmamışsa kulak çınlamalarından yırtmış oluyorsunuz. (O tip sorunlar ne hikmetse testlerde bir türlü fark edilmez.) Ama yaptığınız işte sonradan sorunlar çıktıysa vay halinize , vay verdiğiniz emeklere. Bir anda harcanmaya hazır olun.

Acaba bu gibi sorunların ortaya çıkmasında zamanında:
(NOT: Aşağıdaki maddeler tüm iyi niyete rağmen laftan anlamayan developer ‘larla çalışmak zorunda olanları kapsamamaktadır.)

Yeterince deneyimi olmayan çalışanlara (özellikle benim gibi işe yeni başlayanlara) bir araç yardımıyla “CODE POLICY” uygulamayanların payı olabilir mi?

Yada yazılan kodlara en azından developer belirli bir nokataya gelip alışana kadar KOD POLİSLİĞİ uygulamayanların , yada “şunu şöyle yaparsan daha iyi daha efektif olur” demeyenlerin payı olabilir mi?

Yada şirkette yeterince dökümantasyon,tutorial vs. olmamasının , olsa bile güncel olmayıp işin yapılış şeklini öven (Biz çok akıllıyız dünyanın bir numaralı aracını kullanıyoruz. ) yazılarla dolu olmasının payı olabilir mi?

Yada işi yap nasıl yaparsan yap , işi vaktinde bitirmeni sağlayan her yol mübahtır gibi bir zihniyete destek verenlerin payı olabilir mi? (Makul bir proje takvimi hazırlanamadığı durumlarda ortaya çıkan bir durum)

Yada proje için kodlama standartlarını koymayıp çalışanlara kopyala-yapıştır bir de şuradaki butona bas herşey çok güzel olacak diyenlerin payı olabilir mi?

Görüldüğü üzere gitgide soru işaretlerinin sayısı artıyor. Sanırım olaylara tek taraflı bakmak ve birilerini yaptığı hatalardan ötürü harcamak pek de doğru değil. Hele de bir kişinini yaptıklarını tüm projeye mal etmek hiç doğru değil. ( ff adlı arkdaş da bunun farkına varıp sonradan olayları toparlamaya çalışmış.)

Bu kadar şikayet sanırım yeterli . Çözüm ise iş yerlerinde yada projelerde abi-kardeş ,usta-çırak ilişkisini geliştirmek. Bizde genelde işi iyi bilen insanlar ya “şöyle yapın böyle yapın tarzından emirler yağdırırlar ” yada “üzerlerinde çok yük olduğu için kod polisliği gibi işlere zaman ayıramazlar” (Genelde bu tip işler angarya olarak görülmektedir.) İş verenlerin de deneyimi az kişileri ucuz iş gücü olarak görmeyi bırakıp, çalışanlarına yatırım yapmayı öğrenmesi gerekiyor. (Bu yatırımın en büyük geri dönüşü yine kendilerine olacaktır)

Bu blog yazısıyla deşarj olduğuma göre mutlu bir haftasonu geçirmeme hiçbir engel kalmadı. Bu yazıyı sabırla okuyan herkese mutlu haftasonları diliyorum…