Kayıtlar

2019 tarihine ait yayınlar gösteriliyor

Bir Yazılım Etkinliğinden Akılda Kalanlar

Resim
Bir etkinliğin hazırlanması, yapılması ve orada olanlar. Olayın sıcaklığı geçmeden işte akılda kalanlar … Aykırı Yazılımcılar başlığı altında 21 Aralık Cumartesi günü Manisa Celal Bayar Üniversitesi Hasan Ferdi Turgutlu Teknoloji Fakültesinde bir etkinlik yapıldı. Bu etkinliğe konuşmacı olarak katıldım. Önce etkinlikte karşılaştığım olayları sonra da etkinliğin içeriğini aklımda ve notlarımda kaldığı kadarıyla paylaşacağım. Bilgilendirici olmaktan daha çok duygusal bir yazı sizleri bekliyor. Etkinliği tamamen öğrenci arkadaşlar koordine etti. Etkinliğin ayarlanmasına yaklaşık iki ay önceden başladılar. Başlarda hafta içi planlanan etkinlik, katılımcıların hafta içi etkinliğe gelme konusunda karşılaştıkları zorluklar nedeniyle hafta sonuna alındı. Etkinliğin hafta sonu olabilmesi için öğrenci arkadaşlar bürokratik birçok engeli aştılar. Bu konuda çok dertlilerdi. Bir kurumun kültürünün değişmesinde yolu açan öncülerin yaşadıkları tüm zorlukları yaşadılar sanırım. Etkinliğin p

Türkiye'de IoT Macerasından Soğuk Bir Kesit

Resim
Internet of Thnigs (IoT) projesini duyunca ağzımın suyu akmıştı. Böyle bir projede olmayı hep istemiştim. Yeni teknolojiler ile yeni bir dünyaya açılacaktım. Üstelik tüm zamanımı ayırabilecektim hem de proje yöneticisi olarak. Tüm masraflar müesseseden! Pespembe hayaller ile çıktığım bu yolda başıma neler gelmedi ki! Cihazlar birbirine bağlı ama insanlar birbirine bağımlı! IoT ile yapılabilecekleri düşünmekten başım dönmüştü. Tüm medikal cihazlardan veri alıp, bu verileri doktorlara zamanında iletebilecek, hastaların tedavisinde kolaylıklar sağlayacaktık. Toplanan veriler ile veri madenciliği, yapay zeka uygulamaları fikirleri havada uçuşuyordu.  IoT dünyasında bilgisayar mühendisliği temel konularına geri dönüyorsunuz. Bit, byte, hex, ASCII, TCP/IP, encoding, process, thread, little/big endian, MSB-LSB, CRC, UDP broadcasting, subnet... Bu gibi temel konularda tek bir hata tüm projeyi çalışmaz hale getirebiliyor. IoT cihaz üreticilerinin her biri kendi tarzıyla bilgi alı

Yazılım Dünyasında Bulut Problemleri

Resim
Bundan yıllar önceydi. Yazılımların çoğu masaüstü uygulaması idi. Kullanıcı istekleri bir ekran bir buton konularak çözülebiliyordu. Veritabanı kullanıcının bilgisayarı ndaydı. Yazılım CD ile teslim edilir, disket ile yedek alınırdı. Teknoloji hızla gelişti. Yazılımlar web uygulamaları haline gelmeye başladı. Yazılım ürünü artık SaaS olarak sunulmaya başlandı. Yazılım şirketleri sunucu üstüne sunucu alıyor, harddisk kovalıyor, RAM miktarını çoğaltıyorlardı. Sonra “bulut” çıktı. Tek tıkla sanal bilgisayar sahibi olunabiliyordu, tek tıkla uygulama ve veritabanı sunucusu ayağa kaldırılıp yine tek tıkla yedek alınıp yedek yüklenebiliyordu. Yazılımcılar mutluydu. Ya da öyle olduklarını zannediyorlardı! Bulut için hayaller güzeldi. Sıfır donanım yatırımı ile anında istediğiniz kadar altyapınız olabilecekti. Yazılımcılar sadece kodlama yapacak, uygulama için ne kadar işlemci gücü ne kadar RAM gerekir düşünmek zorunda kalmayacaklardı. Akıllı cep telefonlarının yaygınlaşması, neredeyse intern

Tanıdık Yazılımcı

Resim
Kiminin yeğeni, kiminin bir arkadaşının arkadaşı Kimsin sen tanıdık yazılımcı? Her yerdesin, her işin güzelini sen yapıyorsun Pahalıya değil karın tokluğuna çalışıyorsun Bir telefon uzaktasın, arayınca ulaşılamıyorsun Hayallerimle oynama beni ağlatıyorsun Fikri olanların dostusun Sen diğer yazılımcılarının korkususun Her fikri hayata geçiriyorsun İnsan değil sanki otomasyonsun Eminim klavyen hiç soğumuyordur Çayın kahven eksik olmuyordur Telefonun susmuyordur Umarım kulağın çınlıyordur En yeni teknolojiler sende Sunucu masrafları “hallederiz abi” seviyesinde Değil Bill Gates, Elon Musk gelse Her işin oluru ancak sende Söyle nasıl bitiriyorsun aldığın bunca işi Klavyene kuvvet söyle şu işin gizemini İnsan değilsin sanki bir derleyici Kiminin ilacısın kiminin derdi Bir proje geldi sen başlamışsın Kodlarını gördüm her yeri yamamışsın Yorumlardan selamını aldım Artık hayal değil bir arkadaşsın

Yazılım Projelerinde Güvensizlik Nedenleri

Resim
Yazılımcıya güvenmeli mi, güvenmemeli mi? Yazılımcı ya işi beceremezse, ya fikrimi çalarsa, ya başka bir yerden teklif alınca kaçarsa?  İşverene, yöneticiye güvenilmeli mi? Yönetici projeyi yanlış anladıysa, işveren aynı projeyi başkasına da yaptırırsa, bana sorumluluk verip imkan vermezlerse? Bu yazıda paylaşacağım durumlar özellikle freelance çalışanların başına gelse de hemen hemen her yazılımcının meslek hayatında karşılaşabileceği durumlardır. Bu yazının içeriği sanayi dilinde ve biraz ortaya karışık oldu, çünkü durumlar karışık ve hoş olmayan durumlar. Bu yazı gerçek olaylara dayanmaktadır. (arka fonda korku filmi müziği) Yazılım sektöründe yazılımcılara güvenmek bir projenin sağlıklı bir şekilde ayağa kalkabilmesi için gereklidir. Doğru ekibi kurup, ekibine güvenen bir proje yöneticisi için işin zor kısmı bitmiştir. Sektörde bazen yazılımcılara güvenilmediğini bazen de yazılımcıların yöneticilere (işveren, patron, proje yöneticisi, PM) güvenmediğini görüyoruz. Bu yazıda bunun

Girişimlerin ve Küçük Yazılım Şirketlerinin Sunucu İle İmtihanı

Resim
Bir yazılım ürününün en büyük gider kalemlerinden olan sunucu ve servis masrafları ile ilgili tatsız gerçekleri duymaya hazır mısınız? O zaman ileri, ileri, kabul et, ileri, son! Sunucu ihtiyacınızı bulut sistemleri, dedicated, VPS, fiziksel sunucular gibi çözümlerle karşılayabilirsiniz. Bu kadar çok seçenek olmasının yanında bol bol reklam ve şehir efsaneleriyle bilgi bombardımanına tutulan biz yazılımcılar hangi seçeneğin bizim için en uygun olduğu konusunda kararsız kalıyoruz. Karar versek bile içimizde hangisinin daha iyi olduğuna dair bir arayış devam ediyor, acaba soruları kafamızın içinde sürekli dönüyor. Diyelim ki bir yazılım ürününü ele avuca gelecek şekilde (MVP minimum viable product) geliştirdiniz. Belli bir kullanıcı kitleniz de oluştu. Paylaşımlı sunucu barındırma (shared hosting) hizmeti ile belli bir yere kadar uygulamanız sorunsuz çalışıyor. Ancak kullanıcılarınıza daha kaliteli bir kullanım deneyimi yaşatmak ve kesintisiz bir hizmet sunmak istiyorsanız artık kendi su

Acil İşler Diyarında Bir Garip Yazılımcı

Resim
Her iş acil mi? Şu işe hemen bakılması mı lazım? Müşteri mi bekliyor? Elinizdeki işleri bırakıp hemen başka bir işe mi bakmanız lazım? Telefonlar susmuyor mu, e-postalar mı yağıyor? Her şey acilse çözüm ne? Yalnız değilsin ey garip yazılımcı! Hele bir soluklan da şu yazıyı bir oku. Derdine şifa olmasa da yaralarına merhem olur. Önceliklendirme yapılmalıdır. Önceliklendirme yapılırken risk değerlendirmesi yapılmalıdır. Hangi hata sistemi nasıl etkiliyor, hatadan hangi kullanıcılar etkileniyor, hata nedeniyle ne kadar veri kaybı ihmal edilebilir, yeni geliştirilecek bir özellik gecikse ne kaybederiz, her zaman erişilebilir bir sistem mi daha önemli yoksa olabildiğince güvenli bir sistem mi ... gibi soruların cevabı herkese göre değişir. Sizin için neyin önemli olduğuna ekipçe karar verin. Yazılım ürününüzün katma değerine göre değerlendirme yapmaya çalışın. Önem derecesine ait etiketler geliştirin ve koyun. Örneğin kırmızı etiket hemen çözülmesi gereken bir hatayı temsil edebilir.

Yazılım Şirketlerinin Yeni Müşterisi : Yazılımcılar

Resim
Yeni yazılımcı bulmak ve mevcut yazılımcıları elde tutmak giderek zorlaşıyor. Üstelik üniversiteler sektörün ihtiyacından daha fazla yeni mezun vermesine rağmen, üstelik yazılım firmalarının cömert tekliflerine rağmen... Yazılımcı çalıştırmak isteyen firmaların artık bir müşterileri daha var: Yazılımcılar. Artık firmalar yazılımcıları mutlu edip kendilerini yazılımcılara beğendirmek zorundalar. Nitelikli yazılımcı bulmak giderek zorlaşıyor. Nitelikli yazılımcılar başka firmalardan sürekli iş teklifleri alıyorlar ve yurt dışında çalışmak istiyorlar. Bir firma nasıl yazılımcıları mutlu eder ve nasıl yazılımcıların çalışmak istediği bir yer haline gelir, gelin beraber bulmaya çalışalım. Yazılımcılar yeni çıkan teknolojileri kullanmak isterler, yeni şeyler öğrenmek isterler. Bu yeni yetenekleri hem öz geçmişlerine eklemek için hem de iş tatminlerini artırmak için edinmek isterler. Firmalar yazılımcıların eğitimi için zaman ve kaynak ayırmalıdırlar. Çalışma saatlerinin belli bir kısm

Yazılım Projesinde Yeni Teknolojiye Geçmek

Resim
Yeni çıkan bir programlama dilinin, javascript kütüphanesinin, veri tabanı teknolojisinin ya da proje yönetim tekniğinin mevcut bir projede kullanılması hem yazılımcının kariyerine hem de yazılımı üreten şirkete değer katan ve riskli bir karardır. Bu kararı alırken nelere dikkat etmeliyiz, kimi nasıl ikna etmeliyiz? Monolitik masaüstü yazılımdan mobile uzanan oradan da bulutlara çıkan yeni teknolojileri takip etmek zor iken bir de bu yeni teknolojileri mevcut bir projede kullanmak biz yazılımcıların bu hayattaki heyecanı ve imtihanı olsa gerek. Blockchain, AI (yapay zeka), siber güvenlik, IoT, sanal gerçeklik gibi yeni alanların yanı sıra Agile gibi yeni proje yönetimi tekniklerinden otomatik ölçeklenebilir bulut sistemlerine kadar bir çok yenilik var. Her gün yenisi çıkan JavaScript kütüphanelerinden, hibrit yazılım geliştirme araçlarından hangisini takip edeceğimizi şaşırıyoruz. (Ben bunları bu yazıda teknoloji diye ifade edeceğim.) "Cool" olanı kovalamak, "hy

Yazılımcılar İçin Yan Proje Oluşturma Rehberi

Resim
İster hobi amaçlı olsun ister maddi amaçlı her yazılımcının bir yan projesi olmalıdır. Peki yan proje oluştururken nelere dikkat edilmelidir, nasıl bir yan projemiz olmalıdır? Organize olalım beyler Yan proje (side project) için öncelikle bir fikir bulmak gerekli. Bu projenin amacı ne olacak? Hangi ihtiyacı çözecek? Yeni bir fikir mi olacak yoksa mevcut bir fikrin daha iyi uygulanmış bir hali mi olacak? Sadece yeni bir teknolojiyi öğrenmek için mi? Deneysel mi olacak ya da eğlenceli mi? Yoksa maddi bir getirisi olacak mı? Bu proje ürün olursa kimler kullanacak? Ürünü kullanacak kişilere erişip geri bildirim alabilecek miyim? . . . Bu soruların doğru bir cevabı yok, cevaplar size bağlı. Ama proje bir amaca hizmet edip bir ihtiyacı çözecekse, hele birde maddi getirisi olacaksa motivasyonunuz yükselecektir. Bunun yanında sadece eğlence amaçlı olan deneysel bir proje yapmak stressiz bir öğrenme ortamı sağlayacaktır. Gün içinde proje için aklınıza gelen her şeyi not alın. Not almazsan

Yazılımcı Sabır Overflow

Resim
Kod yazmaktan sıkıldınız mı? İşler yetişmiyor mu? Hayat anlamsız mı geliyor? Ekran görmek istemiyor musunuz? Yöneticiler sizi anlamıyorlar ve işi berbat mı ediyorlar. Artık sabrınız kalmadı mı? Şunları da yapılacaklar listesine ekleyelim dedi proje yöneticisi Bir yazılımcı olarak işinizi yapmak size zor geliyorsa ve zevk vermiyorsa, hayatınızı sadece molalarda yaşadığınızı hissediyorsanız, televizyon izler gibi ofis penceresinden manzara izliyorsanız ve bu manzarada yaşayamıyorsanız, tükenmişlik sendromu, burnout, yaşıyor olabilirsiniz. İsterseniz önce yazılımcının tükenmişlik sendromu yaşamasının nedenlerine bakalım: Yazılımcının her işte kendini ispatlamaya çalışması tükenmişlik sendromunun nedenlerinden birisidir. Ne kadar tecrübeli olursa olsun, bir şirkette ne kadar süre çalışırsa çalışsın her yeni projede, her yeni müşteride, her yeni teknolojide yazılımcı kendini ispatlamak zorunda hisseder. Bu yazılımcı üzerinde ilave bir stres ve baskı oluşturur. Ülkemizde genelde

Spagetti kod nasıl yenir?

Resim
Spagetti kod üzerine günü kurtaran if ve else ifadeleri eklenir. Acil olan tüm işlere aynı anda bakılır. Anlaşılmayan hatalar try-catch ile susturulmaya çalışılır. Anlaşılması güç değişken isimleri ve fonksiyon isimleri kullanılır. Tekrarlayan kod parçacıkları yerleştirilir. Kodu açıklayan yorumlar eklenmez, dokümantasyona kesinlikle katkı yapılmaz. Artık spagetti kod servise hazır. spaghetti code magic Spagetti kod, okunması ve anlaşılması zor olan, kodun takibinin zor olduğu kodlardır. Yazılımın var olduğu ilk günden itibaren varlığına başlamıştır. Herkes iyi kod yazdığını iddia ederken bu spagetti kod nasıl oluşuyor? Suçu önceki yazılımcıya atmadan önce gelin beraber bakalım işin aslı neymiş. Spagetti kodun varoluş hikayesini birlikte dinleyelim: Kullanıcıların ihtiyacı tam olarak anlaşılmadan, proje kapsamı belirlenmeden, sektör konusunda bilgi edinilmeden, uygun araçlar kullanılmadan, yazılım mimarisi belirlenmeden ve en önemlisi doğru ekip oluşturulmadan yola çıkılır. A