03.09.2015

5 Madde ile Yazılımcı ve Girişimdeki İlk Gün Sendromu

Yazılımcı olmak zor iş. Özellikle karşında girişimci gibi bir zat’ı muhterem varsa çok daha zor olabilecek bir iş. Bu durum ne tek başına girişimciden, ne de yazılımcıdan kaynaklanıyor. Buradaki temel sebep yazılımın ve girişimin doğal olarak içlerinde barındırdıkları çelişkiler.

Bu çelişkilere örnek vermek gerekirse;

Yazılım parçalardır, girişim bütün.
Yazılım sorunları tanımlamaya çalışır, girişim doğrudan çözmeye.
Yazılım zamanı uzatır, girişim kısaltır.
Yazılım nettir, girişim flu.

Gibi pek çok şeyden bahsedebiliriz. Gelgelelim, bu kadar ters iki tane alanın birarada bulunması, günümüz teknoloji çağında olmazsa olmazlarımız arasında. Demek ki bu çelişkilerden bir sentez ortaya çıkartmak durumundayız.

Bu sentezi çıkartırken mümkün olduğunca yanınızda bulunması için bir kitap yazdım, ücretsiz olarak buradan edinebilirsiniz. Okuyup beğenirseniz paylaşmayı da unutmamanızı rica edip, geçeyim.

Şimdi bahsedeceklerim de, bu bahsi geçen sentez oluşturma sürecinin ilk günlerinden sonra, yani girişiminize bir yazılımcı bulduktan hemen sonra, yazılımcınızın işe başladığı ilk günde karşılaşılması mümkün olan birkaç sorun ve çözüm yolları ile ilgili.

5 başlıkta toplama durumu da listeleme sevdasından ziyade, şu sıralar okumanın “hap” haline dönüştürülmüş referans kaynaklarıyla çok daha akılda kalıcı ve yardımcı olacağını düşünmemdir. Kitabımda da, yazdığım yazılarda da konuları mümkün olduğunca maddelere bölmeye dikkat ettim, edeceğim.

Yazılımcının bir girişimdeki ilk gün sendromuna gelirsek;

1- “Kim Yazdı Bu Kodu Ya”

Özellikle daha önceden birileri tarafından geliştirilmiş bir ürün varsa, yeni gelen yazılımcının karşılaşması pek muhtemel durumlardan bir tanesi, kodu anlamak için ayrıca bir zaman harcaması gerekmesidir.

Bu durumla karşılaşan yazılımcının yaklaşımı, öncelikle kodun gerçekten anlaşılır olup olmadığını kontrol etmek yönünde olacaktır.

Burada karşılaşılabilecek sorunların en kolay çözümü, herhangi bir yazılım süreci içerisine girildiğinde, sürecin sürdürülebilir olduğunu tekrar tekrar kontrol etmek olacaktır.

Bunun da en kolay yolu, kodun dokümantasyonundan geçer. Bu alanda işin abilerine kulak vermek gerek:

“Any fool can write code that a computer can understand. Good programmers write code that humans can understand.”
-Martin Fowler, Refactoring: Improving the Design of Existing Code, 1999

NOT: Alıntıyı İngilizce yaptım; zira içinde bulunduğum ekosistemi geliştirmek gibi bir derdim var ve eğer girişimciyseniz, İngilizce öğrenmelisiniz, üzgünüm.

2- “Kolaymış Aslında”

Daha önceden kod yazılmışsa kodun anlaşılmasından sonra; yazılmamışsa da işin başlangıç aşamalarında sıkça karşılaşılan bir durum.

Yapılacak işin anlatımı girişimci tarafından yapıldığında, yani işe bir bütün olarak bakıldığında, yani iş daha parçalarına bölünmeden hemen önce, yapılacak işin çok kolay görünmesi olarak özetlenebilir.

Bu tip durumlarda en sık rastlanan, projeye dair zaman tahminlerinin yapılması ve o tahminlerin tutmamasıdır.

Böyle bir sonuç almamak için, yazılımcınızın kodun veya projenin incelemesini detaylarıyla yaptığından, zaman tahminlerini inceleme ardından oluşturduğundan emin olmanızı öneririm.

3- “Ya Bitmezse”

Ekibe yeni dahil olan yazılımcıların, tecrübe düzeyleri ne olursa olsun ilk zamanlarda karşılaştığı sorunlardan bir tanesi de, beklenen sürede işin sonuçlandırılmasının zor olduğunu düşünmek olacaktır.

Bunun temel sebebi, girişimcilerin genelde aslında orada olmayan “deadline”lara bağlı kalınmasını istemeleri, projede sürekli değişiklikler isteme potansiyeli barındırmaları ve bütün bu sürecin yine de belli bir kalite düzleminde gelişmesini beklemeleri.

Bu sorunun en rahat çözümü, sorun ortaya çıkmadan önce projenin analizini tam ve net olarak yapmak. Bu konuya dair çok daha ayrıntılı yazılar yazılabilir, ben de zamanla yazacağım, lakin en azından çözümünü burada belirtmiş olayım.

4- “Bütün İşi Yapacak Tek Yazılımcı Ben Miyim?”

Bu da, özellikle tek yazılımcı tarafından oluşturulması planlanan projelerin yarattığı en büyük tedirginliklerden bir tanesi.

Öncelikle belirtmek isterim ki, hiçbir yazılım sadece yazılımcı tarafından oluşturulmaz. Bunun plan, analiz, yönetim, tasarım, deneyim gibi başlıkları da mevcuttur.

Bu başlıkların çoğunluğunu yazılımcı kendi başına yapabileceği gibi, özellikle tasarım ve deneyim alanlarında tek başına kalması kendini çok da iyi hissettirmeyecektir.

Bu yüzden, mümkün olduğunca “at binenin, kılıç kuşananın” yöntemini izleyerek her alanın uzmanına en azından danışılması gerekiyor. Ardından süreç çok daha rahat işleyecektir.

5- “Üretken Değil Miyim?”

Sık karşılaşılan sorunlardan bir tanesi de “üretkenlik” meselesiyle alakalı.

Normal koşullar altına bir yazılımcının üretkenliğini belirleyebilmek için, kendisinin veya proje yöneticisinin zaman tahminleri üzerinden değerlendirme yapmak gerekiyor.

Lakin girişimlerde durum pek de öyle olmuyor. Hızlı ürün çıkartmak önemli elbette, burada hesaba katılmayan tek şey “ürün ne kadar hızlı çıkarsa kaliteden ödün vermeyiz?” sorusu.

Yalın girişim seminerlerinde ürünün çıkartılmasına dair pek çok şey konuşulur. Minimum iş görür ürün çıkartmak adına ödün verilebilecek şeyler tartışılır. Bu alanda yalın girişim fikrine kısmen katılmakla beraber, ürünün kalitesi üzerine ciddi şekilde düşünülmesi gerektiğini düşünüyorum.

Kaliteli üründen kastım “sürdürülebilir” yazılım ile üretilen ürün. Yani yazılımcı değişmese bile tekrardan koda bakıldığında bir şey anlatabiliyor olması kritik.

Üretkenlik de böyle bir şey. Ürünün ne kadar hızlı çıktığı bilgisiyle beraber, kaliteden ne kadar ödün verildiği bilgisi de üretkenliğin kıstasları arasında. Bu bağlamda iki şey önereceğim:

Kısa bir zaman çizelgeniz varsa, özellikleri azaltmayı deneyin.
Zaman tahminlerini yapabilmesi için yazılımcınıza tam bir analiz sağlamaya çalışın. Gerekirse bunu yapmak için yardım alın.

Bu iki maddeyi tam gerçekleştirdikten sonra, üretkenliği zaman çizelgesine göre tam olarak ölçebilmeniz mümkün.
Ya Sizce?

Yıllardır içinde bulunduğum yazılım şirketimin ardından, yakın zamanda girişimlere teknik konularda ve yazılımcılarla ilişkilerde danışmanlık vermeye başladım.

Bu kapsamda bir kitap da yazdım; ismi “Denklem: Girişimciler için Yazılım Dünyasında Hayatta Kalma Rehberi”. Kitaba buradan ulaşabilirsiniz.

Eğitimler ve atölyeler de yapacağımız sürecin her başlığında siz girişimcilerin fikirlerini önemsiyorum.

Fikirlerinizi yorum olarak yazarsanız çok mutlu olurum, teşekkür ederim şimdiden!

Aynı zamanda dilerseniz Facebook, Twitter ve LinkedIn üzerinden de bana ulaşmanız mümkün.