Aykırı Yazılımcı

Hüseyin Polat Yürük
Aykiri Yazilimcilar
4 min readJun 25, 2019

Evet biliyorum. Başlığı ilk gördüğünüz anda “Aykırı Yazılımcı” hakkındaki ilk düşünceniz olumsuzdu. Sürekli sorun çıkaran, takım içerisinde huzursuzluk yaratan, verilen işleri eksik bir şekilde teslim eden, söylenenlerin her zaman tersine hareket eden, sürekli olarak kendisine atanan işleri son zamana bırakıp teslim tarihini kaçıran, yazılımla ilgili prensipleri takip etmeyen, kodlama standartlarını elinin tersi ile iterek başına buyruk davranan, isyankar ve sürekli problem yaratan bir kimse. Beyniniz bunu otomatik olarak siz farkında olmadan yaptı. Çünkü “aykırı yazılımcı“ kelimesinin beyindeki karşılığı tam olarak bunu ifade ediyordu.

İtiraf etmem gerekirse, size empati yaptığımda benim de ilk düşüncem bu olurdu. Çünkü hepimiz “aykırı” kelimesinin ne anlama geldiğini çok iyi biliyoruz.

Alışılmışa, doğru olarak kabul edilmişe uygun olmayan, karşıt, ters, mugayir.

Aykırı yazılımcı terimi daha önce başkaları tarafından ele alınıp tanımlandı mı bilmiyorum. Fakat ben bu terimi alışılmışın dışında kullanıyorum. Alışılmışın dışında derken, genelde olumsuz anlamlar uyandıran bu “aykırı” kelimesini yazılım dünyasında olması gereken doğru zihniyeti savunmak için kullanıyorum.

Doğru olarak kabul edilmişe uygun olmayan

Anlatmak istediğim de tam olarak bu.

Aykırı yazılımcı; doğru olarak bilinen yanlış yazılım zihniyetine bir eleştiri olarak doğan yazılımcı demektir. Aykırı yazılımcı, yazılım dünyasında doğru olarak bilinen yanlışların aksine bilimsel olarak kanıtlanmış doğruları savunur. Yıllarca tekrar tekrar sıklıkla yapılan hatalar; aslında yanlış olan, yazılım bilimine tamamen aykırı olguları doğru olarak kabul eden yanlış bir yazılımcı zihniyetinin doğmasına neden olmuştur. Aykırı yazılımcının karşı durduğu zihniyet budur. Aykırılığı da buradan gelir.

Peki nedir bu doğru olarak bilinen yanlışlar?

Doğru olarak bilinen yanlışları tek bir makale ile anlatmak neredeyse imkansız. Fakat aklınızda bu terimi daha iyi canlandırmak için birkaç tane yaygın olarak yapılan hatalardan ve doğru bilinip aslında yanlış olan olgudan bahsedeceğim.

Bunlardan ilki yazılımcının veya programcının asıl işinin kod yazmak olduğu. Çoğu kişi (yazılımcılar dahil) yazılımcının işini kod yazmak olarak tanımlarken aslında gerçek işinin problem çözmek olduğunu, kod yazmanın sadece bir problemi çözmek için yapılan bir eylem olduğunu unutuyor veya doğru olarak bilinen yanlışa inanmayı seçiyor.

Bir diğeri yazılımların yönetiminin zorlaştığı an gelince tüm yazılımı sıfırdan baştan yazmanın verilecek en doğu karar olarak kabul edilmesi. Genelde işlerin bu noktaya gelmesindeki gerçekler tam olarak sorgulanmıyor veya sorgulanıp yapılması gerekenler bilinmesine rağmen gerekli olan adımlar atılmıyor. Yazılımcılar her seferinde birşeyleri yeniden kodlamanın/yazmanın herşeyin ilacı olduğunu, eğer mevcut yazılımı sıfırdan baştan yazarlarsa öncekine göre çok daha iyi bir iş çıkartabileceklerine inanıyorlar. Ama bunun yüzde yüz garantili olamayacağını bilmiyorlar. Aslında bu bir diğer doğru olarak bilinen yanlıştan geliyor.

Kodu okumak yazmaktan çok daha zor olduğu gerçeği yazılımcılar tarafından ya bilinmiyor ya da görmezden geliniyor. Alınan bütün yeniden yazma kararlarının altında bu görmezden gelinen veya bilinmeyen gerçek yer alıyor. Bir yazılımcı başka birinin kodunu okurken zorlanıyor. Ardından şu yanılgıya düşüyor. “Ben daha iyisini yazabilirim.” Evet bu olası fakat daha iyisini yazdıktan sonra bir başkası da onu okurken zorlanacak. Çünkü yazılımcının doğasında bu var. Kod okumak diğer programcının aklını ve mantığını okumak gibidir. Dolayısıyla zor bir iştir.

Biraz teknik açıdan doğru bilinen yanlışlardan bahsettikten sonra bir de yazılımcının sosyal hayatından örnekler verelim.

Yazılımcılarının çoğu onların dünyayı daha iyi yorumlamasına yardımcı olan, onları daha verimli yapan, problem çözme yeteneklerini ve yaratıcıklarını arttıran üstelik tamamen bedava olan en değerli şeylerini yani uykularını doğru bilinen yanlışlar uğruna feda edebiliyorlar. Çoğumuz yazılımcının daha verimli ve uzun saatler çalışmasını sağlayan yakıtının kafein olduğuna inanırız. Evet kafeinin belli bir yararının olduğu bilimsel bir gerçek. Fakat yazılımcıların çoğu projelerini yetiştirmek için kafein alarak geç saatlere kadar çalışıyorlar. Daha uzun çalışırlarsa daha iyi bir iş yapıp projelerini yetiştirebileceklerini zannediyorlar. Fakat bu büyük bir yanılgı. Geç saatlerde yapılan işler genelde kalitesiz kodlara neden oluyor. Yazılımdaki buglar artıyor. Halbu ki zamanlarını doğru planlasalar hergün minimum 7–8 saat kaliteli uyku alarak işlerini yetiştirebilirler ve sağlıklarını da koruyabilirler.

Diğer bir örnek, çoğu kişi yazılımcıları göbekli yeteri kadar egzersiz yapmayan sağlıksız ve düzensiz beslenen kişiler olarak akıllarında canlandırır. Neden? Çünkü yazılımcılar kodlama yapmaya daldıklarında kendilerini bir kutunun içine sokarlar. Bilgisayar başında abur cuburlarla beslenerek sağlıklarını hiçe sayarlar. Aslında işini iyi bir şekilde yaparak aynı zamanda sağlıklı kalarak yaşamlarını sürdürmenin birçok yolu var.

Doğru yazılımcı zihniyeti nasıl olmalı?

Sanırım artık Aykırı Yazılımcı’nın ne demek olduğu konusunda yeteri kadar fikre sahipsiniz. Bunlar sadece birkaç örnekti. Bunlar gibi daha birçok doğru bilinen yanlışı anlatmak ve doğru yazılımcı zihniyetini aşılamak için Medium’da “Aykırı Yazılımcılar “ isminde bir topluluk oluşturdum. Şuanda topluluğu yeni oluşturduğum için sadece ben varım. İnanıyorum ki, benimle aynı fikirde olan, doğru yazılımcı zihniyetine sahip daha bir çok yazılımcının topluluğa dahil olup, yazdığı yazılarla camiasına katkılarını sunacaklardır.

Doğru yazılımcı zihniyetini öğrenmek için paylaşılanları okumanız ve kendi tanıdığınız yazılımcılarla paylaşmanız yeterli. Bunu için ilk küçük adımı atıp; Aykırı Yazılımcılar topluğunu takip etmeye başlayarak işe koyulabilirsiniz. Değiştirebildiğimiz her bir zihniyetin camiaya büyük katkılar sunacağına inanıyorum.

Neler Paylaşılacak?

  • Yukarıdaki paylaştığım doğru bilinen yanlış zihniyet örnekleri dahil tüm yanlışlara aykırı yazılar
  • Yazılım mesleğiniz boyunca yaptığınız hatalar ve hikayeleri (Hataların anlatılması diğer kişilerin aynı hatayı yapma olasılığını düşürecektir)
  • Sadece hatalar değil mesleğinizde doğru yapılanlar ve bu doğruları yapmak için ne gibi eylemlerde bulunduğunuzu anlatan başkalarına örnek olacak hikayeler
  • Genel yazılım meslek hikayeleri
  • Ve son olarak doğru yazılım zihniyetini aşılamakta yararlı olacağını düşündüğünüz her türlü yazı

Neler Paylaşılmayacak?

Aykırı yazılımcı ve doğru yazılımcı mantığına aykırı herşey.

Originally published at http://huseyinpolatyuruk.com on June 25, 2019.

--

--