10 Mart 2013 Pazar

Yazılımcı Hakları

Türkiye'de binlerce, dünyada ise milyonlarca kişi, çoğu zaman özel hayatlarından da zaman çalarak saatlerini bilgisayar önünde geçiriyor ve tüm yaratıcılık ve bilgilerini kullanarak yazılım geliştiriyor. Her gün gelişen teknolojiye ayak uydurmak, sürekli gelişmek, sürekli öğrenmek zorundalar. Hem zaman zaman inzivaya çekilip yeteneklerini ortaya dökmek, hem de bir takım içerisinde uyumlu ve verimli çalışmak zorundalar. Hem girişken olup önerecekleri teknik çözümler ile sorunları çözmek, hem de verilen görevleri en iyi şekilde bitirebilmek zorundalar. Hem çok eğlenceli, hem de çok emek isteyen bir iş yazılım geliştirmek.


Ancak ilginçtir ki hala birçok şirket, yazılım geliştirenlere kötü çalışma ortamı ve kötü donanım sağlıyor ve hala onlardan verimli çalışmaları bekleniyor. Hala birçok yerde yazılımcıların kullanacakları araçlara kısıtlamalar getiriliyor, internet erişimleri kısıtlanıyor, fazla mesai yapmaya zorlanıyor. Yazılım kariyerim boyunca çalışanlarına belli açılardan değer veren firmalarda çalıştığım için kendimi şanslı hissediyorum. Bununla beraber, yazılım geliştiren şirketlerce yazılımcı haklarının tam anlamıyla anlaşılmadığını düşünüyorum.

2006 senesinde Jeff Atwood'un yazdığı "Programcı Hakları" yazısını okuğumda ne düşünüyorsam, hala aynı şeyi düşünüyorum. Şirketlerde gerçek değeri üreten kişiler olan yazılımcılara verilen değer istenen seviyede değil. Uzun zamandır kendi düşüncelerimi toplayıp "Yazılımcı Hakları"ndan bahsedeceğim bir yazı yazmak istiyordum. Fırsatını bulduğum için mutluyum. Yazımı hazırlarken sonda belirtilen kaynaklardan da faydalandım. İlgilenenler bağlantıları okuyabilir, başkaları ne düşünüyor fikir sahibi olabilir.

Başarılı yazılım üretmeyi amaç edinmiş yazılımcıların işlerini iyi yapabilmeleri için gerekenleri şöyle listeleyebilirim.

1) En az büyüklüğü 21 inç olan, HD görüntü veren bir adet monitör
Birçok yerde "en az iki monitör" olarak belirtilirken, bir miktar gerçekçi olmak adına asgari standartı 21 inç bir monitör olarak belirtiyorum. Kullandığınız PC ya da diz üstü bilgisayar ne olursa olsun, büyük bir mönitör ilk olmazsa olmazlardan. Verimliliği arttırmak istiyorsanız, yazılımcılarınızda DVI ya da HDMI arabirimi ile bilgisayarınız ile bağlantı kurulabilen, HD görüntü veren monitörlerin olduğundan emin olun.

2) İstediği marka hızlı bir bilgisayar
Yazılımcıların verimliliğini azaltmak ve onlara iş yaptırmamak istiyorsanız, onlara düşük bellek ve donanımlı bilgisayarlar temin edin. Asgari 8 Gb bellek artık bir standart. Aynı anda birden çok Vagrant çalıştıracak, sanal sistemleri ve sunucuları ayağa kaldıracak, bir yandan birçok IDE açık kod yazarken, bir yandan da maillerini kontrol edecek birinden, "donmuş pencereleri" izlemesini beklemeyin.

Bilgisayar bir yazılımcının uzvu gibidir. Onunla yaşar, onunla hayatını paylaşır. Bırakın hangi markayı kullanmak istiyorsa kullansın. Fahiş fiyatlardan da korkmayın. Hızlı, iyi bir bilgisayar almaya yetecek miktar parayı kendilerine verin. İster üstüne kendileri ekler daha iyi bir bilgisayar alır, ister aynen kullanır. Hem yönetici, hem de çalışan mutlu olur.

3) İstediği işletim sistemi
Bir yazılımcıyı belli bir işletim sistemine hapsetmek, anlamakta en zorladığım konulardan biri. Şirketler gözüyle baktığınızda, eminim hepinizin aklına aynı mazeret geliyor: "Şirketler belli bir işletim sistemine destek veriyor, güvenlik uygulamaları kuruyor, anbean kullanıcıları takip ediyor, diğer işletim sistemlerini bilmediğinden yasaklıyor." Bu teknik destek ve yönetim bölümünün problemi, bizlerin değil ki. Tüm dünya rahat rahat hiçbir problem yaşamadan kullanıyorken yasaklamak niye? "Ben bilmiyorum, o zaman sen de kullanma" diyerek bir yazılımcıyı ikna etmek üzgünüm ki imkansız. Bu nedenledir ki yazılımcı haklarının 3 numarasında istediği işletim sistemini kullanmak bulunuyor.

4) İstediği IDE
Hangi teknolojiyi kullanırsanız kullanın, bir yazılımcıyı belli bir IDE'ye zorlamak çok anlamsız. Yazılımcılar için IDE'ler, taktığınız numaralı gözlük gibi aşina olunan araçlardır. Onları kullanarak rahat yazılım geliştirirler, kendilerini rahat hissederler. Kısa yollarını öğrenir, daha verimli olmak adına her özelliğini bilmek isterler. Hatta benim senelerdir IntelliJ Idea lisansına sahip olduğum gibi lisans ücreti ödemeyi bile göze alırlar. Onları aşina olmadıkları araçları kullanmaya zorlamayın, bırakın istedikleri IDE'yi kullansınlar.

5) İstediği klavye ve fare
Yazılım kariyerimin ilk yıllarından bu yana, çalıştığım şirketlerin bana verdiği klavye ve fareleri hiç kullanmadım. Gittim, araştırdım, kendi istediğim, kendimi rahat hissettiğim cihazları aldım ve kullandım. Saatlerini klikleyerek ve tıkır tıkır yazarak harcayan biz yazılımcıların böyle bir beklentisinin olması kadar normal birşey olamaz.

6) Rahat bir sandalye
Sıkça boyun ve omuz ağrısı ile boğuşan biri olarak, ortopedik rahatsızlıklar yazılımcıların baş belasıdır diyebilirim. O nedenle ergonomik, rahat bir sandalye yazılımcı sağlığı için önemli ihtiyaçlardan biri.

7) Uygun bir çalışma ortamı
Ne çok sıcak, ne çok soğuk, gürültülü olmayan, pis kokmayan, ferah ve aydınlık bir mekanda çalışmak her yazılımcının hakkıdır.

8) Hızlı internet bağlantısı
İnternet bir yazılımcı için bir numaralı bilgi kaynağıdır. Hergün çözülmesi gereken sınırsız sayıda problemi sadece kendi bilgi birikimiyle bir yazılımcının çözmesini beklemek haksızlık olur. Problemin farkedildiği anda, çözüm bilinmiyorsa aranıp bulunması, verimlilik adına çok önemli bir noktadır. O nedenle hızlı bir internet bağlantısı, arkanıza tüm dünyanın bilgisini almanız anlamına gelir.

9) Yasaklanmamış internet erişimi
Şirketlerce müstehcen ve hukuk dışı sitelere konulan yasakları bir yere kadar anlıyorum. Ancak dropbox, slideshare, google mail, google docs, facebook, youtube ve daha birçok popüler sitenin yasaklanmasının geçerli bir nedeni olamaz. Birincisi, kimseyi tüm zamanını 100% odaklanmış şekilde çalışmaya zorlayamazsınız. Zihinleri dinlendirmek adına insanları özgür bırakmalısınız. Hatta birçok araştırmaya göre, zaman zaman facebook kontrolü yapan çalışanların daha verimli çalıştıkları ortaya çıkmış. İkincisi, yasakladığınız sitelerin faydasız olduğunu ispat etmek mümkün değildir. Birçok konferans videosunu youtube'dan izlemiş biri olarak bunu kesin olarak söyleyebilirim. Üçüncüsü, kısıtlamanın nedeni gizli şirket bilgilerinin dışarı ile paylaşılmasını engellemek ise, üzgünüz çabanız boşuna. Ahlak yapısı bozuk çalışanlar isterlerse her şekilde hırsızlık yapabilir. Yapılabilecek şey, gizli bilgilerin sadece belli kişilerce erişilmesine izin vermektir. Yoksa internet erişimini kısıtlamak bir fayda sağlamaz.

10) Bilgisayarlarında yönetici olmak
Her yazılımcı, kendi kullandığı bilgisayarda admin (yönetici) olmalı. İstediği uygulamayı kimseye ihtiyaç duymadan kurabilmeli. "Şirket ağını virüslerden korunmak amacıyla yasaklanıyor" diye düşünebilirsiniz. Şirket ağını virüslerden korumak için çok daha farklı çözümler mümkünken, çalışanın motivasyonunu yerle bir eden böyle bir çözüme gitmek çok gereksiz.

11) Kaliteli yazılım geliştirmek
Bob Robert C. Martin'in de dediği gibi "yazılacak her kod iyi yazılmayı hakeder". Geliştirdiğiniz yazılımın kalitesinden ödün vermenizi istemek, emeğinize, işinize, mesleğinize hakaret etmek demektir. Kaliteli yazılım geliştirmek için, eğer "TDD, BDD, Sürekli Entegrasyon (Continuous Integration), Eşli Programlama (Pair Programming), Kod gözden geçirme (Code Review)" gibi şeyler gerekiyorsa, mutlaka imkan ve ortam sağlanmalıdır. Her yazılımcının kaliteli yazılım geliştirme hakkı vardır.

12) Sürdürülebilir tempoda bir yoğunluk
Zaman zaman mesailere kalarak projelerimizi yetiştirmeye çalışıyoruz. Ancak bunu sürekli hale getirmek, düzenli olarak çalışanlardan özel hayatlarından vakit çalmalarını istemek çalışanlara haksızlık yapmak demektir. Yoğunluk zaman zaman artsa da, tempo sürdürülebilir olmalıdır. Sürekli zorunlu mesai, boşuna "işten ayrılmalarının önde gelen nedenlerinden biri" olarak adlandırılmıyor.

13) Yöneticiden destek almak
Yöneticinin desteği, çalışanını karşısına alıp dinlemek ve sorunlarının çözümüne eğilmek olduğu gibi, çalışanlarına güven duymak ve gerekirse ek sorumluluklar vermek şeklinde de olabilir. Her yazılımcı kendi sorunlarını ve fikirlerini dinleyecek, ona güvenecek bir yöneticiye sahip olmayı hakeder.

14) Kendini geliştirmek için vakit
Yazılım geliştirmek, doktor olmaya benzer. Sadece öğrendiklerinizi kullanarak birşeyler başarabilirsiniz ancak zamanla bildiklerinizin yetmediğini farkedersiniz. Sürekli öğrenmek, sürekli kendinizi geliştirmek zorundasınız. Şirketler yazılımcılarına kendilerini geliştirebilmeleri için vakit vermek zorundalar. Yoksa sıradan yazılımcılarla sıradan işler yaparak başarısızlığa mahkum kalırlar.

15) Günlük ve rahat kıyafetler ile işe gelebilme
Rahat kıyafetlerden kasıt, içinde takım elbise, kösele ayakkabı ve kıravat olmayan, ortama uygun günlük giysiler. Her şirketin kendine has kıyafet yönetmelikleri olabilir. Ancak unutulmamalıdır ki, günün büyük çoğunluğunu masasında, bilgisayar önünde, oturarak geçiren yazılımcıları olabildiğince rahat ettirmek, onların verimliliğini olumlu yönde arttıracaktır. Bunun bir yolu da ortama uygun, rahat kıyafetlere izin vermektir.

Kaynakça
Eminim sizin aklınızda başka maddeler de vardır. Benimle ve diğer okuyucularla paylaşmak isterseniz, yorum bölümüne yorumlarınızı bırakabilirsiniz.

Orjinal metine 1 güncelleme yapıldı.
#1) 15 numaralı madde eklendi

0 yorum:

Yorum Gönder

Template developed by Confluent Forms LLC; more resources at BlogXpertise