Increasing Standards & Productivity
Contents
Günümüzde Programcılık
Programcılığa ilk başladığım yıllarda bilgisayar daha yeni yeni hayatımıza girmişti. Kullanılan diller de şimdikine göre oldukça farklıydı. Herşeyden önce ya yeşil unix ekranları ya da siyah beyaz DOS ekranları vardı. Dolayısıyla bir program yazarken yok şuraya tıkladı, yok başka ekrana geçti gibi kontroller de yoktu. Prosedürel olan bu diller ile aslında arka arkaya gelen komutlar yazılır sonra yukarıdan aşağı yazılan kodlar sırasıyla çalıştırılırdı.
Bilgi işlem departmanları o kadar yeniydi ki mevcut kodlara bakım yapmak diye birşey söz konusu bile değildi çünkü mevcut kod yoktu.
Fakat kısa bir zaman içinde "mevcut kod" lar oluştu ve yeni işlere girerken başkalarının yazdığı kodlara bakım yapmak da işin bir parçası haline geldi.
Zaman içinde yazdığımız ortamlar değişti, bilgşsayarlarımız değişti, yazma standartlarımız değişti, internet ile tanıştık, dolayısıyla birbirleri ile konuşan sistemlerle de tanıştık. Haliyle güvenlik de işin bir parçası oldu. Sonra entegre edilen cihazlar artmaya başladı. Telefon santralleri, POS'lar, mobil cihazlar vs geldi.
Yolculuk hala devam ediyor.
Yeni projeler
Bugün yeni bir işe başlayan programcı önünde iki seçenek bulacaktır. Ya yeni bir projeye başlayacaktır ya da eski proje(ler)e devam edecektir. Yeni bir projeye başlandığında;
- Uygun altyapıyı kurmak
- Uygun dili veya dilleri seçmek
- Doğru veritabanını seçmek ve şekillendirmek
- Proje hayatı boyunca uygulanacak standartları belirlemek
- Analiz
- Planlama
- Doğru kodlama
- Test
- Yükleme
- Hata yönetimi
- İlaveler ve geliştirmeler
gibi konular ile boğuşmak gerekecektir. Bu adımların her biri projenin faydalı ömrünü etkileyebileceği için üzerlerinde çok düşünülmesi gereken konulardır. Örneğin eldeki kadro bir dili biliyor diye projeye uygun olmayan bir dil ile işe başlamak sonrasında ayağa dolanacak bir sorun olmaya adaydır.
Yazılacak yeni projenin iyi veya hızla istenilen bilgiye erişilemeyecek şekilde dokumante edilmemesi, kodun ve projenin geçirdiği safhaların en baştan itibaren görülememesi yine projenin faydalı ömrünü ciddi oranda kısaltacaktır.
Mevcut projelere destek
Bir çok programcının çok da hoşlanmadığı ancak işin doğasında yer alan bu konu, doğru ele alındığında sıkıntısız hatta keyifli bir hale dönüştürülebilir.
Mevcut projelere destek verirken,
- Kullanılmıs standartlar
- veritabanı yapısı
- mantık yapıları
- dokümantasyon
- yazılımın tarihçesi
- nelerin halihazırda yapılmıs olduğu, nelerin eksik olduğu
gibi konularla uğraşmak gerekecektir. Doğal olarak yazılmış kodlar zamanla belli oranda güncellenebildiği için günün şartlarına göre kimi zaman ilkelö kimi zaman hatalı kalabilecektir. Mevcut veritabanı yapısı doğru kurgulanmadıysa yapılacak genişletmelere doğru cevap veremeyebilecek kimi zaman performans problemi, kimi zaman yeni teknolojilere uyumluluk konusunda sorun olabilecektir.
Projenin büyüklüğüne göre kimi zaman proje yeni teknolojilerle parça parça yeniden de yazılabilir ancak yönetimsel bir karardır. Sonuçta yeniden yazılıma harcanacak zaman / fayda oranı programcıların tasarrufunda değildir.
Yazilim sirketinde calismak
Sürekli başka başka projelerle uğraşmak çoğunlukla arada nefes alamamak anlamına gelir doğru ama başka bir açıdan bakıldığında da yeni konulara eğilmek de çoğu programcı için motivasyon artırıcı olabilmektedir.
Bir yazılım şirketi yeni yazılımlar geliştirirken mecburen yeni teknolojileri takip etmek ve en son en doğru teknolojiyi kullanmak zorundadır. Bu da programcıların eğitim alması, öğrenmesi, kendini geliştirmesi anlamına gelir.
Sirketin yaziliminda calismak
Gorevler
Business Analyst
Senior Developer
Code Review
Junior Developer
Front End Developer
Graphic Designer
Agile Coach
Yazilim Gelistirme Teknikleri
Agile
Trello
Online ve basit bir proje yönetimi olan Trello mobil cihazlarla da dünyanın her yerinden ulaşılabilen yapısıyla projelerın gidişatlarını gözlemlemede etkin bir araçtır
Agile Zen
TDD
BDD
Standartlar & Prensipler
S.O.L.I.D.
S
O
L
I
D
Design Patterns
MVC
MVVM
Pairing
Kod Paylasimi
GIT
ve Digerleri
Extreme Programming
Test
Unit Tests
Regression Tests
App Test
Reviews
Deployment
CI Server
Online Deployement Servers
Cloud
Verimlilik Nasil Artirilir
Calisma kosullari
https://www.youtube.com/watch?v=u6XAPnuFjJc&t=39
http://stephenhaunts.com/2015/03/09/retaining-software-developers-in-your-company/
Calisma Saatleri
Eğer illa saat 9 dan 6 ya gibi bir çalışma zorunluluğu yoksa, bu saatlerin çalışanlarca kaydırılması mümkün olmalıdır. Örneğin 8 de işe gelen 5 de 7 de gelen 4 de çıkabilmeli veya 10 da gelen 7 de çıkabilmelidir. Böylece çalışanların insiyatifine bırakılan başlama saatleri örneğin trafikte kaybedecekleri zamanı ve yıpranmayı engelleyecek ve işe daha erken ve zinde gelmelerini sağlayabilecektir. Bu şekilde işe gelen programcı daha erken işten çıkabilecek ve günün belki trafikte geçen 2 saatini 1 saate düşürerek kendisine zaman ayırabilecektir.
Uzaktan çalışma
Kimi projelerde yapılacak işin boyutu blok olarak birkaç gün sürdüğünde ofiste bulunma zorunluluğu olmadan uzaktan çalışmayı mümkün kılmak işin hızlanmasını sağlayabilir. Günlük toplantılara karşılıklı görüntülü konuşma ile katılabilinir. Bunu belli kurallar dahilinde programcının insiyatifine bırakmak çok faydalı olacaktır. Günümüzde uzakta olmak ile ofiste olmak arasında neredeyse hiç fark kalmadığını düşünürsek olabilecek tek aksaklık karşılıklı diyalogların hızında kaybedeceğiniz günlük 10-15 dakika olabilir.
Yine o gün içinde doktor, dişçi, tamirci, banka vs gibi evinin civarında halletmesi gereken bir işi olan programcının geri kalan zamanını daha etkin olarak projesine vermesi mümkündür.
Telefon Kuralı
Çalışma alanında masa telefonu bulunmayacak, cep telefonları ile çalışma alanında konuşulmayacak. Telefonu çalan veya bir yeri aramak isteyen kalkıp çalışma alanının dışında belirlenen istirahat alanına gidecek. Böylece sessiz ofis ortamı sağlanmasına ciddi bir katkı sağlanarak çalışanların konsantrasyonunda ciddi bir düzelme sağlamak mümkün.
Kulaklık kuralı
Karşılaştığım en basit, en kolay uygulanabilir ve en etkili verimlilik artırma yollarından birisi diyebililirim. Kural : Eğer programcının kulağında kulaklık varsa ve durum cok acil değilse, programcıya soru sorma, rahatsız etme.
Ne sağlıyor?
- Dış dünyadaki gürültü ve seslerin önüne geçiliyor
- Konsantrasyonun dağılmasını engelliyor
- Gereksiz konuşmaların önüne geçiyor
Bu kural, kimi zaman kulaklığın ucu bir yere bağlı olmasa bile kullanılabilinir.
Firewall
Gerçekten virüs ve zararlı veya porno içerik içermeyen siteler haricinde tüm sitelerin açık olması programcıya rahat bir ortam sağlayacaktır.
Günümüzün koşullarında sosyal medya sadece zaman öldürülen bir alan değil bazen bilginin bizzat bulunduğu bir yer halini almış durumda. Böyle olmasa bile programcıların çalışma aralarında farklı bir konuyla uğraşması son derece normal. Unutulmaması gereken programcıların bant üretimi yapan fabrika çalışanları olmadığıdır. Yaratıcılığını ve beynini ortaya koyan çalışanlar, rahat bir ortamda çok daha verimli çalışabilirler
Kimi yerlerde de filtreler çok can sıkıcı olabilmekte. Internette bir sorunun çözümünü ararken bulduğunuz en etkin çözüm kişisel bir blog sitesinde olabiliyor ve kişisel sitelere giriş engellendiği için gözünüzün önündeki çözüme ulaşamıyorsunuz.