İçindekilerGirişİndex
YukarıİlkÖncekiSonrakiSon
Geriİleri
Yazdır
Onder Teker
on_der_tek_er@yahoo.com

Yapıcı Tembellik

Hemen tembelliğin 'yapıcısı' mı olur demeyin. Tembellik her zaman kötü şey değildir. Kötü olan 'uyuşukluk'tur. Ayrıca çalışkanlık da her zaman iyi bir şey değilidr. İyi olup olmamsı ne için çalıştığınıza ve çalışmanızın sonucunda ne ortaya çıktığına bağlıdır. Çalışkan bir insan olmamama rağmen eğitimin tamamlamış, bir çok boş zaman etkinliği gerçekliştiren biri olarak bir yazılımcı için tembelliğin çalışkanlıktan daha faydalı olduğuna inanıyorum. Hatta tembel olan yazılımcı çalışkan olan yazılmıcıdan çok daha iyidir diyerek olayı abartabilirim. Bunlar tembel bir insanın çalışkanları kıskandığı için söylediği saçmalıklar değildir. Zira fazla/gerkesiz/yanlış yönde çalışmanın yararsız olması ötesinde zararlı olduğu bir çok kişinin kabul ettiği bir gerçek olarak karşımızdadır. İşi bileceksin işe gitmeyeceksin!' anlayışı yanlıştır. Hüner hem işe gidip hem de işi bilmek ve işi az çabayla bitirmektir.

Nesneye Yönelen Tembeller Sürüsü

İşlevli/Yordamlı Programlama (Functional/Procedural Programming) ve Nesneye Yönelik Programlama (Object-Oriented Programming) çalışkan, bir işisi sürekli yapmaktan bıkmayan usanmayan insanların bulduğu veya benimsediği kavramlar değildir. Fonksiyon veya prosedürü ilk düşünen kişiler 'Aptal mıyız biz durup durup aynı şeyleri yapıyoruz?' diyen insanlardır. 'Yap işte, sıkı çalış ve bitir işi!' diyenlere aldırmamışlardır. Aynı şekilde yapı/kayıt (struct/record) gibi verileri bir yerde gruplama çalışmaları da aynı sebepten geliştrilmiştir : aynı tanımlamayı tekrar tekrar yapmamak. Hele nesneye yönelik programlama tam tembellerin işidir. Veriyi ve işlevleri bir sınıfta toplayıp onu tekrar tekrar kullanmak ancak tembel ama zeki bir insanın bulabileceği bir şeydir. Hele hele kalıtım (inheritance) ve çok biçimlilik (polymorphism) tam tembel işi. 'Bir iş yerinde hem müdür için hem memurlar için aynı işi niye tekrar tekrar yapayım?' diyenlere en uygun yöntem nesneye yönelik programlamadır. Bir class yapar Person diye, sora Officer ve Manager'ı Person'u genişleterek yazar. Ortak işleri tek yerde yapmış olur. Kimse OOP'a 'tembel işi' diyor mu? Bir zaman diyenler vardı. Şimdi object-oriented olmayan dil kalmadı. Niye? Herkes tembel mi? Evet. Herkes tembel. Gereksiz yere niye çalışalım ki? Bunun kim ne faydası var?

Çalışkanlığın Zararları

Kimse 'Çalışkanlığin kime ne zararı olabilir?' demesin. Atatürk 'Türk milleti çalışkandır!' diyor. Ama hemen peşinden de 'Türk milleti zekidir!' diyor. Bir kaç yüzyıl her savaşta yenilmiş, uygarlığı yozlaşmış, devleti çokmiş bir ulusun bireylerine moral vermek için hoş sözler değildir bu. Türk milleti çalışkandır hem de zekidir. Kimse bizden çalışkan ama aptal olmamızı beklemesin. Kendileri tembellik yapıp başkalarının çalıştıklarına göz dikenler, bizim çalışkan ama aptal olmamızı çalıştıklarımızı, emeğimizi elimizden almak için istiyorlar. Elbette gerektiğinde çok çalışacağız. Ama gerekmediğinde değil. Gerektiğinde de kafamız çalışacak.

Çalışkanlara Ölüm!

Zaman zaman incelediğim veya üzerinde çalışmak zorunda olduğum kodlarda bazen öyle kötü çalışkanlıklar gördüm kü, hakikaten çalışkanlığın zekayla ve deneyimle birlikte olmadıkça ne kadar zararlı olabileceğine birinci elden tanık oldum. Bir projeden aynı işlemi 40-50 yerde bıkmadan usanmadan yapıldığına tanık oldum. 'Ne var canım 1 kere copy, 50 kere paste' demeyin, olası değişikliklerin tek bir yerde yapılmayıp 50 yere tekrar tekrar yapılması gibi bir sonucu var. Bir yazılımcı, 'Üff burada çok iş var, bir yolunu bulup bu işi hafifletmem lazım?' demelidir. Bu tembellik değildir!

Gece yarılarına, hatta sabahlara kadar kod yazanlar, 'Ne yapalım süre yetmiyor, iş çok?' diyenler. Vaz geçin çok çalışmaktan! Nesneye yünelik programlamamayı öğrenin. Alet işler el övünür. Yazılımda alet nesnedir. Bir nesneyi bir kere yazacaksınız, bir daha da hep onu kullancaksınız. Sadece gerektiğinde onu değiştirmek veya yani bir kaç nesne daha eklemek gibi bir işlem yapacaksınız. Bu kadar kolay.

Türk Kültürü ve Çalışkanlık

Uluslara belli özellikler atfetmek bilimsel değildir. 'Bizim millet..' diye başlayan yer cümle yanlış, hatta bazen saçmadır. Ancak bizim ülkemizin insanlarının da bir karakteri var. Bunlar ırksal değil kültüreldir. Ayrıca kalıcı değil geçicidir. Dünyanın en gelişmiş uygarlıklarını kurduğumuz dönemlerdeki özelliklerimizle çöküş dönemlerinde veya şu andaki gibi yavaş yavaş toparlanmaya başladığımız dönemlerdeki özellikler aynı olmayabilir. Az gelişmişliğin birinci özelliği herkesin tembelleşmesi buna karşı bazılarının da çok çalışması. Halbuki sizden ileride yürüyenlere yetişmenin yolu hızlı koşmak değildir. Çünkü bir süre sonra yorulmak, tökezleyip düşmek veya nefesi kesilip durmak da var. Yapmamız gereken çok çalışmak değil, çok akıllı olup az çalışmaktır. Az bir çalışmayla çok iş başarmaktır. Tarım, hayvancılık ve balıkçılıkla upraşanlar için bile artık iş 'teknik'tir. Akıllı olan kazanır çok çalışan değil. Yazılımda bu diğer alanlardan daha fazla geçerlidir.

Yabancı bir ülkede çalışan bir arkadaşımın başından geçen olayı aktarayım. Türkiyede alıştığı yoğun tempoyu orada da devam ettirmek isteyen arkadaşım, o ülkede çalışmaya başlar başlamaz akşamları kimse istemeden fazla mesai yapmaya başlamış. Herkes vaktinde çıkarken bu bir kaç saat daha iş yerinde kalıyormuş. Çalışkan ya, herhalde terfi veya takdir bekliyor. Yoksa göze girmeye çalışan yalaka bir insan değildir. Gerçekten iyi niyetli çalışkan bir insan. Bir dün müdürü çağırmış 'Niye fazla çalışıyorsun, sorunun ne?' diye sormuş. Fazla mesai yapmasını 'sorun' diye değerlendiriyor adam. Bizim arkadaşra 'Ben böyle alıştım, biz Türkiyede gecelere kadar çalışırdık!' diye açıklamış durumu. Müdürü 'Olmaz öyle şey!' demiş. 'İşini normal vakitte bitiremiyorsan, daha fazla çalışarak hiç bitiremezsin. Aksine kötü ve hatalı kod yazarsın.'. Ne kadar tuhaf değil mi?

Haftada 40 saatten fazla çalışma gelişmiş ülkelerde terkedilmiş durumda. Çalışanların haklarını koruma nedeniyle değil. Zira fazla mesai isteğe bağlı ve ücretli. Ülkemizdeki gibi değil durum. Sebep, yoğun çalışmayla yapılan işlerin kötü olması, uzun vadede daha fazla çalışmaya neden olması. Fazla mesai yapanlar daha önce yaptıkarı hataları düzeltmek için daha fazla çalışan insanlar. Sonra 'Ne kadar çok çalışsak yine işler yetişmiyor!' diyorlar. Allah allah? Neden acaba?

Tembel Olun!

Bir yazılımcının çalışkan olması gerekmez. Yazılımcılık hamallık değildir. Beyin emekçisinin beynini kullanırken de akıllı davranması gerekir. Elbette bu, çalışkan olup gece gündüz çalışmaktan daha zor. Zeki davranmak çalışkan olmaktan daha zor. Etrafınızda kaç tane çalışkan insan var kaç tane zeki insan var? Mesele sadece zeki olmak değil, bir işi az çalışarak başarmak deneyim de istiyor. Başkalarının sorunları kolayca nasıl çözdüğünü, hangi araçları kullandıklarını öğrenmek gerek. Dünyada an fazla üretim, kişi başına en fazla verim batıda var. Ama adamlar bunu haftada 40 saat çalışarak yapıyorlar. 35 saate indirmöek için uğraşıyorlar hatta.

Diyelim ki SQL biliyorsunuz ama XML bilmiyorsunuz. Önünüze bir iş geldi hemen SQL'le çözmeye çalışma eğiliminde olacaksınız. Ancak bazı durumlarda SQL çözümü XML çözümünden 100 kat daha fazla emek ister. İçiçe veri barındran bir yapı için tek bir XML document'i yeterken 10-15 tane SQL tablosu yazmak gerekir. 'Ne var ben çalışkanım, çalışır yaparım 10-15 tabloyu ne olacak? Elime mi yapışır.' demeyin. Çünkü yapışır. Basit bir mantık değişikliği, yapıdaki küçük bir değişklik sizi saatlerce çalışmaya mecbur bırakır. XML öğrenmek de belki zamanınızı alacaktır. Belki yeni öğrendiğiniz bir teknolojiyi uygulamanız sizi daha çok çalıştıracaktır. Ama ikinci veya üçüncü projede artık kara geçmeye başlayacaksınız.

Diyelim ki deneyimli bir programcısınız ama nesneye yünelik programalama bilmiyorsunuz. Bir iş geldi, nesneye yünelik programalaya çok uygun. (Ki artık nesneye programalamya uygun olmayan bir iş kalmadı.) Siz yine geleneksel (abiden kalma) yöntemlerle çalışırsanız belki daha çabuk bitirsiniz. Ama ortaya çıkan yazılımın bakımı zor olur. Nesnelerle çalısaydınız bir nesneye bir kaç property ve bir kaç metot eklemek kadar basit bir iş sizi için bir çok hataya yol açacak büyük bir değişiklik demektir. Yaparım ne olacak elime mi yapışır? Gerekirse gece yarısında kadar çalışır yaparım!' demeyin. Gece yarısı da yetmez sabaha kadar çalışabiliriniz.

Size kişisel bir anımı anlatayım. Ben çocukken yaz tatilinde annemin köyünde kalırdık. Dayım bir inşaat yapıyordu ve bütün akraba çocuklar onun için çalışıyorlardı. Tuğla kum falan taşımaktı işleri. Ben 'misafir' olduğum için çalışmıyordum. Akraba çocukarını izlerken onların tuğlaları elleriyle taşıdığını gördüm. Bir el arabası vardı ama dayım başka işler için kullanıyordu. 'İlerideki inşaatta bir el arabası var, onu alın kullanın!' diye akıl verdim. Bir de 'Salaklar!' diye bir ünlem eklemişimi ki buna çocuklar çok bozuldular. Beni dayıma şikayet ettiler. O zaman kadar bana bir şey demeyn dayım 'Gel sende çalış!' diye beni zorladı. 'Lan!' şeklinde de onun bir ünlemi vardı. Ben de 'Tamam' dedim. 'Ama tuğlaları paylaşalım, ben payım düşeni taşırım'. 5 çocuk vardı 4 ton tuğla ayrı ayrı dökülmüştü. Ben bir tanesini seçtim. En küçük iki çocuğa da 1 tonu birlikte çalışmak üzere verdim. Bunlar hemen çalışmaya başladılar. Ben üstüme eski şeyler giyip geleyim dedim. Onlar bitirene kadar da mahsus uzak durdum. Onlar bitirdiler ben de çıkıp geldim. Beni hamallık yaparken görmek, benimle dalga geçmek için hepsi orada bekliyorlardı. Ben az önce onlara verdiğim aklı kendim uyguladım ve öbür el arabasını gidip aldım. Onların 3 saatte taşıdığını ben 20 dakikada taşıdım. Fitil oldular. Benim tembel olduğumu söylediler. Dayıma olayı anlattılar ve aile efradı benimle "Ay nekadar tembelsin, alt tarafı iki saat çalışacaktın!' diye dalga geçtiler. Bana o kadar tuhaf geldi ki. Sanki amacımız işin yapılması değil de bizim ter dökmemiz, yıpranmamız. Onların düşünme mantığıyla benimki arasında bir fark olduğunu farkettim. Bende bir tuhaflık vardı. İlerki yaşlarda beni diğer çocuklardan ayıran özelliği farkettim : Zeka. Ben akıllıydım. Tembeldim belik ama aynı zamnda akıllıydım.

Burada söylemek istediğim çalışkan insanların salak olduğu tembellerin akıllı olduğu değildir. Zira hiç bir şey yapmadan oturan veya kendisine verilen işten kaçan insanların genellikle kendini akıllı sanan salaklar olduğunu düşünüyorum. Ama çalışkanlığın da zekayla birlikte olmayınca iyi bir şey olmadığına inanıyorum. O yüzden bazı işler için gece gündüz çalışan, yeni şeyler öğrenmek isteyen, sorumluktan kaçmayan insanların hem zeki hem çalışkanlar. Ama çalışkan demek boş yere eşek gibi çalışan demek değildir. Hele hiç kendini geliştirmeden, hiç bir şeyi sorgulamadan çalışanlar insan değil sadece robot olabilirler.

Başarı = Zeka x Çalışma. Yaptığı işte hiç aklını kullanmayanlar için Zeka değerini sıfır olarak verirsek sonucun kaç çıktığını görün. Sıfır yutan elemandır. Elbette çalışması sıfır olan bir zeka için de yutan eleman yutmaya devam eder. Yaratıcı tembellik zeka değerini yüksek tutarak başarıyı arttırmakdır. Başka bir deyişle, yaratıcı olun da isterseniz tembel olun. Yine bir çok şeyi başarabilirsiniz. Hatta yaratmayıcı çalışkanlardan çok daha fazlasını başarabilirsiniz. Yeterki ne zaman çalışkan ne zaman tembel olmanız gerektiğini bilin.

İçindekilerGirişİndex
YukarıİlkÖncekiSonrakiSon
Geriİleri
Yazdır