Ana içeriğe atla

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

İ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ız unutursunuz. Neyi unuttuğunuz hatırlamaya çalışırken neye odaklanmanız gerektiğini kaçırırsınız.

Yan projeyi yeni bir teknoloji ile mi yapacaksınız yoksa alışkın olduğunuz teknolojileri mi kullanacaksanız? Alışkın olduğunuz teknolojilerin biraz dışına çıkın. Örneğin yeni bir veri tabanı teknolojisi ya da arayüz için yeni bir javascript kütüphanesi kullanabilirsiniz. Yeni şeyler denerken birden fazla alan için (veri tabanı, web arayüzü, mobil platform, API servisleri, kuyruk sistemleri gibi) yenilikten kaçının. Önce sadece bir alan için, örneğin veri tabanı için, yeni bir şeyler deneyin ve projenin biraz olgunlaşmasını bekleyin, daha sonra diğer alanlarda da yeni teknolojiler deneyebilirsiniz.. Bilmediğiniz bir teknolojiyi kullanmak projeyi sizin için daha heyecanlı yapacaktır.

Hazır çözümler için kod yazmaktan kaçının. Bir blog için içerik yöneticisine (CMS) ihtiyacınız varsa WordPress, bir e-ticaret sistemine ihtiyacınız varsa OpenCart kullanabilirsiniz. Başkalarının daha önce karşılaştığı ortak ihtiyaçlar için (login, loglama, toplu e-posta gönderme vb.) enerjinizi boşa harcamayın. Projenin fark yaratacak kısmına odaklanın. Mükemmelliştirmeye çaba sarf etmeyin. Tabii ki spagetti kod olmasın, tasarım kalıplarına uyun, ama önce proje çalışsın, sonra kodları ideal formuna sokarsınız.

Az para harcayın, hatta hiç harcamayın. İhtiyacınız olan birçok aracın ücretsiz sürümü büyük ihtimalle yan projeniz için yeterli olacaktır. Yan projeniz, yalın ürün (Minimum Viable Product) olmadan alan adı, hosting, logo tasarımı gibi masraflara girmeyin. Microsoft Azure, Amazon AWS, Google Cloud gibi bir çok hizmetin ücretsiz ürünleri bulunmaktadır. GitLab, Jira, Redis ... gibi ihtiyaç duyacağınız bir çok aracın, kendinizin host edebileceği ücretsiz bir sürümü vardır.

Düzenli olarak kod yazın, araştırın. Yan projeniz için bir teslim tarihi (deadline) koymak yerine kendinize proje için her hafta 5 saat süre ayırmak gibi bir hedef koyun. Bu süre araştırma için de geçerli olabilir. Projeyi küçük lokmalara ayırın. Parça parça işler planlayın ve yapın. Önceliklendirme yapın. Takıldığınız yer olduğunda bundan bağımsız başka bir parçayı yaparak devam edin ve takıldığınız yer hakkında eş zamanlı olarak araştırma yapın. Haftada bir gününüzü ayırmak yerine her gün küçük zaman dilimlerinde projeye bakmak , nerede kaldığınızı hatırlamanızda kolaylık sağlar. Eğer haftada bir gün bakmayı planlarsanız bir hafta aksarsa aralık iki haftaya çıkar. Projeye sık sık bakmak aklınızın köşesinde sürekli projeye ait detaylar ve sorunlar hakkında düşünmenizi sağlar.

Kodlarınızı GitHub gibi görülebilecek bir yerde paylaşın. Kimsenin aklına gelmeyen bir çözüm bulduysanız o başka. Kodlarınızı başkalarının görmesi düşüncesi kaliteyi artırır, sizi tasarım şablonlarına uygun kod yazmaya zorlar. Ayrıca GitHub hesabınızı öz geçmişinizde göstermek sizi bir adım öne çıkarır.

Proje takibi için araçlar kullanın. Organize olun, not alın, kod versiyonlama sistemleri kullanın. Tek kişi bile olsanız bunları yapın.

Kodlama dışında da yan projeleriniz olabilir. Robotik kodlama, IOT projesi, endüstriyel programlama script dilleri öğrenimi gibi konularla elektroniğe yakınlaşabilirsiniz. Siber güvenlik, yapay zeka, veri analizi gibi konularda araştırma yapabilirsiniz. Blog yazma, medium'da yazı yazma, eğitici videolar çekme, sosyal medya içeriği oluşturma, LinkedIn profili oluşturma,  etkinlikler düzenleme gibi farklı şeyler yapabilirsiniz. Açık kaynak kodlu projelere pull request oluşturabilirsiniz. Açık kaynak kodlu projelerde Türkçe'ye çeviri katkısı sağlayabilirsiniz. Yöneticilerinizle konuşup şirket içi kullanılabilecek bir proje geliştirebilirsiniz. İngilizce konuşma kursuna (birçok iş ilanında standard hale gelmeye başladı) gidebilirsiniz. İsterseniz eş dost akrabanın bilgisayarına format atabilirsiniz.

Yan projenizi başkasına anlatırken hangi ihtiyacı çözmek için yola çıktığınızı anlatın. Sanki bir yatırımcıdan yatırım almak istiyormuşçasına, ürünü satmaya çalışıyormuşçasına sunum hazırlayın ve arkadaşlarınıza sunun. Bu sizin projeyi daha iyi anlamanıza olanak sağlar ve sunum yeteneğinizi geliştirir.

Boş zamanlarınızda kendinizi geliştirmeyi alışkanlık haline getirin.

Başarısız olmaktan korkmayın, denemezseniz başarısız da olamazsınız.

Yorumlar

Bu blogdaki popüler yayınlar

Bir Uluslararası Yazılım Şirketinin Batış Hikayesi

 Güzel başlamıştı hikaye. Yazılımcılar mutlu, kullanıcılar memnundu. Sonra pandemi başladı. Sorun para değildi. Olmayan şey huzurdu… Durdurun hype trenini, inecek var kırık kalpler durağında  — Photo by Kelly Sikkema on  Unsplash Gerçek olamayacak kadar güzeldi çalışma ortamı. Yazılımcılara istedikleri eğitim ve donanım alınıyordu, personel arası hiyerarşik bir yapı yoktu, sorumluluğun yanında yetki de veriliyordu, esnek çalışma saatleri yazılımcılara göre esnekti, izin isteyen hiç kimse geri çevrilmiyordu, pandemiden önce bile uzaktan çalışma vardı. Ne oldu bu şirkete? Nazar mı değdi? Şirketin yazılım ürünü Türkiye’de doğmuştu. Ürün birçok ülkede hem kamu tarafından hem de özel sektör tarafından kullanılıyordu. Yazılım geliştirme ekipleri hem Türkiye’de hem de diğer ülkelerde bulunuyordu. Yazılımın argesi için gelen geri bildirimlerin çoğu Türkiye’den geliyordu. Yazılımın kalbi Türkiye’de atıyordu.  Koronavirüs pandemisi nedeniyle Türkiye’de kamu kuruluşları hizmet alımı ile aldıklar

Uluslararası Yazılım Firmasında Çalışmak

Türkiye merkezli 5 ülkede ofisi olan 50’den fazla mühendisi bulunan ve müşterileri hariç 8 farklı milliyetten kişiler bulunan bir yazılım firmasında yaklaşık 11 aydır çalışmaktayım. Bu süreç boyunca hem çalıştığım şirkette hem de iletişimde bulunduğum diğer uluslararası şirketlerde gözlemlediğim noktaları paylaşmak istedim. Buradaki görüşlerim tamamen kişiseldir ve firmadan firmaya değişebilir. Eleştiriyi önce en günahsız olanınız yapsın! Photo by Kyle Glenn on Unsplash İşe giriş ve mülakat süreçleri zor. İş ilanlarını mantıklı ve açıklayıcı olarak açılıyorlar. Öyle her şeyden anlayan süper yazılımcı aramıyorlar. Şirketin ihtiyacını göz önüne alarak ve her yazılımcının şirkette kullanılan teknolojileri bilemeyeceğini göz önüne alınarak iş ilanını açılıyor. Özgeçmişimde yazan her kelime ile ilgili sorguya çekildim. Başvurduğum pozisyon için gereken yeteneklerle ilgili zor sorular soruldu. Nasıl yaptılar bilmiyorum ama şirket kültürüne uyumumu ve iletişim yeteneğimi de ölçmüşler. Açık

Kamuda Yazılımcı Ol(ma)mak

Yazılımcı olarak 8 yıl kamuda, 2 yıl özel sektörde çalıştım. Bir yandan da freelance olarak çalıştım. Yurtdışındaki firmalarla da güzel yurdumun esnafıyla da çalıştım. En garip manzara bence kamudaki yazılım manzarası. Şu anda bir kamu kurumu için geliştirilen yazılım projesini yönetiyorum. Girdiğim toplantılarda, aldığım e-postalarda, yaptığım telefon konuşmalarında eski kamu anılarım depreşti. Kağıtların arasında hayalleri yıkılmış bir yazılımcı bulabilirsiniz Kamuda çalışırken hem benim hem de arkadaşlarımın başına gelen olaylardan ve şu anda kamuda çalışmaya devam eden tanıdıklarımdan aldığım bilgilerle, kamudaki yazılım dünyasını size sanayi diliyle aktarmaya çalışacağım. Bu yazı şahsi görüşlerimi içerir. Yine de kamuda 8 yılın yeterince objektif bir bakış açısı sunacağını düşünüyorum. Kamuya yazılım projesi geliştirirken karşılaşabileceğiniz durumlar: Bir kamu kurumu ile görüşmeye başlamak için bağlantı gerekir. Kamu kurumuna “sizin şöyle bir ihtiyacınız var ben bunu çözen yazılı