CraftSummit 2015, Istanbul
Kurucu ortak, Baş Yazılım Mimarı
Zanaat, –tı ad, Arapça
1. Sermayeden çok nitelikli emeğe dayalı; öğrenimin yanı sıra el becerisi ve ustalık gerektiren meslek.
Sonunda ortaya özgün bir kazanım çıkaran emektir. Tekdüze emek vermek yetmez, seri üretimden bahsedemeyiz. Nitelikli emek toplumsal emeğe nazaran daha karmaşık eğitim gerektiren, sonunda daha fazla katma değer üreten emektir.
Sektöre yeni atılmış bir mühendisle yıllarca deneyim kazanan bir mühendis aynı olmadığı gibi; yıllarca çalışsa da gerçek bir ustalık kazanamamış bir mühendis ile belki de daha kısa sürede ustalık kazanmış bir mühendis de aynı değildir.
Görünürde karmaşık olan yapıları oluşturabilmek, anlaşılmaz problemleri çözebilmek için gereklidir. Yazılımda da karmaşık problemleri, isterleri karşılayabilmek için becerikli olmak gerekir.
İyi yazılım ustaları yazdıkları kodun görünümünden, sundukları API’lerin tasarımına, yazılım mimarisinden, önyüzde tasarıma uygunluğa kadar her alanda estetik kaygıyla hareket edip, kaliteli ve göze ve ruha hitap eden işler yaparlar.
Okullardaki yazılım mühendisliği eğitimi zanaat eğitimi değil.
Zanaat eğitimi çok uzun yıllar, bizzat iş üzerinde çalışarak, ustadan çırağa geçen ve en önemlisi usta ve çırak arasında birebir etkileşim sonucu olan bir eğitim.
Kitaptan mı öğreniyorsun?
Bu dojoda korku yok, acı yok, yenilgi yok.
Kendine güven, konsantre ol, aklında bir resim çiz ve o resmi uygula.
Resim eğer içinden geliyorsa mutlaka doğrudur.
Karatenin amacı sadece dövüşmek değildir.
Gerçek problemler çözmek, daha iyiyi bulmak, daha iyiyi üretmek
Dövüşmek zorunda kalmamak için
Karate beyinde ve kalptedir. Kuşakta değil.
Biz kumaş kemer kullanıyoruz.
Saygınlık kazanmanın en iyi yöntemi iyi dövüşmek.
Soru sormadan, sadece öğren.
Think outside the fence!
Dengen iyiyse her şey iyidir.
Hep "cool" şeyler öğrenmek
istiyorsun ama önemli olan dengedir.
Önce ayakta durmayı öğren,
sonra uçmayı öğrenirsin.
Ne kadar çok bildiğin değil, bildiklerini ne kadar iyi bildiğin önemli.
Dövüşmekten nefret ediyorum.
Her zaman senden iyisi vardır.
“Basit, kompleksten daha zor olabilir:
İşi basit tutabilmek için düşünce yapınızı saflaştırmak adına çok çaba sarf edersiniz.
Ama nihayetinde buna değer çünkü bir kez oraya varınca dağları yerinden oynatabilirsiniz.”
Ehliyet gözün, kulağın ve beynin yerini tutmaz.
Cesur olduğunu kalbin söyler. Madalya sadece şanslı olduğunu gösterir.
Kalbinde merhamet olmayan için yaşamak ölmekten daha büyük cezadır.
Kökün kuvvetliyse ne olursa olsun büyüyebilirsin.
1) Hiçbir zaman hiçbir şeyden emin olmayın.
3) Başaracağınıza emin olduğunuzda dahi asla düşünmekten vazgeçmeyin.
4) Bir muhalefet ile karşılaştığınızda bunu otoriteye dayanarak değil tartışarak çözün. Çünkü otoriteye dayanan zafer bir ilüzyondur.
7) Fikirlerinizin eksantrik olmasından korkmayın. Bugün kabul edilen her fikir bir zamanlar eksantrikti.
8) Pasifçe onaylanmaktansa zekice fikir ayrılıklarını tercih edin. Eğer zekâya yeterince önem veriyorsanız ikincisi çok daha derin bir uzlaşı barındırmaktadır.
En iyi eğitim "yaparak" olur.
Öğrencinin kendi hayallerinden birini seçin.
Kaynak kod yönetimi için GitHub, GitLab ve code review.
İş paylaşımı ve süreç planlamasını öğretin.
Mimari hangi aşamalarda gerekli? Kod hangi sırayla geliştirilir? Önceliklendirme nasıl yapılır?
İş takibi için Trello.
Asenkron ve yazılı iletişimi tercih edin.
Öğrenci istediği zaman eski arşivleri okuyup, üzerinden geçebilir.
İletişim için Slack.
Odaklan. En iyi karaten hâlâ içinde.
Şimdi onu özgür bırakmanın tam zamanı!
Yazılım ustalığı ve yazılım zanaati eğitimi oldukça meşakkatli bir yolculuktur. Bu konuşmada usta Miyagi'nin felsefesinden örneklerle yazılım ustalığı eğitiminin problemlerini ele alacağız.