- Küçük otomasyonları tekrar ede ede, bir noktada tüm araçlar ve sistemler düzeltilmesi gereken şeyler gibi görünmeye başladığı bir bilişsel eşiğe ulaşılır
- Teknik yetkinlik arttıkça, sorunları sadece fark etmenin ötesinde, onları bir sorumluluk gibi hissettiren duygusal bir ağırlık oluşur
- Düzeltme isteği, basit bir verimlilik artışının ötesine geçip bazen duyguları düzenleme aracı hâline gelir ve kimi zaman insanın kendi kurduğu sistemin içine hapsolmasına yol açar
- Sistemler zamanla mutlaka bozulur ve kusursuz çözüm diye bir yanılsama yoktur
- Sonuçta gerçekten gereken beceri, her şeyi düzeltme yeteneği değil, bir şeyi düzeltmeden de dayanabilmeye yetecek zihinsel ferahlıktır
Başlangıç, küçük otomasyonlar
- Dosya adlarını değiştiren bir Python betiği ya da
gitkomut kısayolları gibi küçük verimlilik iyileştirmeleriyle başlar - Sistemdeki rahatsızlıkları doğrudan düzeltince, dünyadaki her şey geliştirilecek bir hedef gibi görünmeye başlar
- Bir noktadan sonra bu durum “yapabilirim”in ötesine geçip, “yapmalıyım” diye hissedilen ahlaki bir takıntıya dönüşür
Teknik yetkinliğin ağırlığı
- Programlama öncesinde rahatsız eden yazılımları görmezden gelmek mümkünken, artık sorunlar apaçık görünür
- Başkalarının yazdığı özensiz kodlar ya da hardcoded ayarlar bir azar gibi hissedilir
- Tüm sistemler ve yazılımlar, düzeltilmesi gereken bir TODO listesi gibi algılanmaya başlar
Sürekli refactor edilen bir hayat
- Her seferinde “Bunu daha iyi yapabilirim” düşüncesiyle kendi araçlarını geliştirmeye kapılırsın
- Düzenlenmemiş kod dizinleri, sayısız deneme ve vazgeçiş, bitmeyen yapısal yeniden tasarımlar bazen kişiyi kendine bağlayan bir emeğe dönüşür
- Kafka’nın “kafesi inşa edip kuşu beklemek” benzetmesindeki gibi, amaçsız araç üretimine saplanılabilir
Yazılım çürür
- Kusursuz görünen bir betik bile bir gün dış değişiklikler yüzünden işe yaramaz hâle gelir
- Web sitesi düzeninin değişmesi, paket sürümü değişiklikleri, bağımlılık hataları gibi
- Sorun çıktığında bu durum sadece rahatsızlık değil, suçluluk duygusu da yaratır
- Sonunda insan, sürekli bakım gerekliliği gerçeğiyle yüzleşir
Otomasyon yanılsaması
- “Bir kez kurarım, sonra bir daha dokunmam” şeklindeki sahte umuda sık sık kapılırız
- Programlamayı sorun çözmenin zaferi sanırız ama bu aslında sadece bitmeyen bir savaştır
- Tamamlanmışlık diye bir şey yoktur; yalnızca sürekli su basan siperler kazıyoruzdur
Duygu düzenleme aracına dönüşen kodlama
- Araç yapmak bazen hayattaki karmaşayı kontrol etme yönünde psikolojik bir tepkidir
- Sistem karmaşıklaştıkça, insan ironik biçimde kendini daha düzenli hisseder
- Karmaşık bir hayattan kaçmak için yeni uygulamalar ya da refactor denemeleri yapıp kendimizi avutabiliriz
Habersiz gelen burnout
- Burnout, basitçe fazla çalışmaktan çok aşırı sorumluluk duygusundan doğar
- “Ben düzeltebiliyorken neden düzeltmiyorum?” biçimindeki öz eleştiri, stresi daha da artırır
- Bitmeyen teknik sorumluluk hissi, kendini yıpratan bir yüke dönüşür
Bırakabilme becerisini öğrenmek
- Her sorunu çözmek zorunda değilsin
- Bazen düzeltmek zorunda olmadığını bilmek, daha büyük bir kontrol duygusu sağlar
- Kusurları kabul edip olduğu gibi kullanmak da bilinçli bir tercih olabilir
Gerçek beceri, duygusal berraklık
- Asıl önemli olan, düzeltme becerisinden çok düzeltmeden de rahat kalabilme becerisidir
- Ne zaman duracağını, hangi projelerin sadece kendini rahatlatmak için yapıldığını ayırt edebilmek gerekir
- Her şeyi düzeltme takıntısından çıkıp, kusurluluğun içinde de rahatlık bulabilen bir tutuma ihtiyaç vardır
Sonuçta programlamadaki en zor beceri,
"bozuk olanı olduğu gibi bırakmayı" öğrenmektir
21 yorum
Her şeyin bir amacı vardır. Amaç yerine geldiyse artık düzeltmeyi bırakabilirsiniz. Ancak amaç yerine gelmediyse düzeltmek gerekir.
Görünüşe göre başlangıç noktası, projenin amacını net biçimde kavramak.
Dünyada sadece bankaların ve ödeme şirketlerinin darmadağın API'lerini bir araya getirip düzenlemek bile yüz milyarlarca won değerinde şirketler yaratabildiğini fark edince insan rahatlıyor haha
Ku x..
VB 6.0 ve COM + OLE + ActiveX ile yapılmış bir sistemin hâlâ gayet iyi çalıştığını görüp de dehşete kapılarak onu yeniden yazma arzusu duyuyorsanız, acı çekecek kişi sizsiniz
Sonuçta programlamadaki en zor beceri,
"bozuk olanı olduğu gibi bırakmayı" öğrenmek sanırım.
Katılıyorum. İş açan bir tip olduğum için hep zorlanıyorum...
Sıradan bir programcının alelacele bir araya getirdiği otomasyonun bozulması zaten kaçınılmazdır.
İyi içerik
Burnout totemi
: İş otomasyonunu büyük emekle kurduğunda, faydasını yanındaki iş arkadaşı görürken kendin başka işlerin otomasyonuna koşulunca;
15 dakikada yapılacak işi 2 günde otomatikleştirenlerdenim; yani maaşını yan gelip yatarak alanlardan biri.
Aşırı sorumluluk duygusu programcıların meslek hastalığı gibi; bunu sistemle çözmek gerekiyor.
Bunu Quality Assurance ekibi assure etmeli.
QA, geliştiricinin aşırı sorumluluk duygusunu dizginleyebilir mi? Tam anlayamadım da.
Bir geliştiriciye kusur aranarak üst üste "kodu yanlış yazmışsın" denirse
üzerine binen sorumluluk duygusu yüzünden yeni denemelerden kaçınmaya başlar
ve sonuçta gelişim getirmeyen, sadece güvenli kod yazmaya yönelir.
QA'nin güvence vermesi gerektiği derken kastedilen de budur.
Geliştirici bir kodlama yapmak için belli ölçüde risk almak zorundadır
bunu doğrulayıp sorumluluğunu üstlenecek olan da QA olmalıdır.
Bu yazı o şekilde de okunabiliyormuş, öyle mi? Bana kalırsa bu yazı, illa bir yere koymak gerekirse, daha çok yak shaving’i eleştiren bir yazı gibi gelmişti.
roxie’nin dediği gibi, metnin kendisi gerçekten de yak shaving ile ilgili bir anlatı,
ancak bunu kendi kişisel deneyimlerime göre yorumlayınca, metnin içeriğinden biraz farklı bir hikâyeye dönüştü.
Bunu NIH (not invented here) olgusuyla da açıklayamaz mıyız? Bakımın sonuçta sabit maliyet olduğunu ve maliyetin insan emeğini de içerdiğini unutmamak gerektiğini düşünüyorum.
Bunu uzun süre yapabilmek için, aşırı sorumluluk duygusunun telafi psikolojisinin kısır döngüsüne dönüşmesinden önce
ara sıra sorumluluğun ve duyguların ağırlığını biraz olsun bırakmayı da öğrenmek gerekiyor gibi görünüyor.
Benim de pek iyi dengeleyemediğim bir taraf aslında haha... güzel bir yazı olmuş
Bu bence iyi bir nokta. Sorumluluk duygusu, kelimenin tam anlamıyla sorumluluk hissetmek olduğu için, kendi başına bir karşılık talep etmez. Ama zaman geçtikçe beden ve zihin yorulurken sorumluluk duygusu kolay kolay kaybolmaz; insan da bu aradaki boşluğu kapatmak için (aslında böyle bağlanmaması gereken bir şey olsa da) farkında olmadan bir karşılık beklemeye başlıyor gibi görünüyor.
Şey, "bozuk olanı olduğu gibi bırakmayı öğrenmek"ten daha iyi bir uzlaşma noktası varsa, o da herhalde "bozulana kadar dokunma"dır :)
Hacker News görüşü
Tiyatro yaparken öğrendiğim bir alıntı var. Sanat sürecini, zor olanı alışkanlık haline getirmek, alışkanlık haline geleni kolaylaştırmak ve kolayı güzel kılmak olarak açıklıyordu
UI sorunları hakkında kişisel bir görüş sunuyor
Kişisel projelerle ilgili zorluklardan yakınıyor
Yazılım mühendislerine saygısını ifade ediyor
Mükemmeliyetçiliğe yönelik bir eleştiri getiriyor
Kişisel bir içgörü paylaşıyor
Aile ve çocukların mükemmeliyetçiliği aşmaya yardımcı olduğundan bahsediyor
Yazılımı doğrudan yazmanın daha eğlenceli olduğunu ve daha basit çözümler sunduğunu söylüyor
Yeni olana saplantılı kültürün sorunun kökeni olduğunu savunuyor
Psikologların insanları en iyiyi arayanlar ve yeterince iyi olanı arayanlar olarak sınıflandırdığını belirtiyor
"Bozuk olanı olduğu gibi bırakmayı öğrenmek"tense "önemli olmayan şeyi bırakmayı öğrenmek" daha uygun bir ifade gibi görünüyor.
Mutlaka düzeltilmesi gereken şeyi elbette düzeltmek gerekir.
Katılıyorum. Kişinin kendi bahçesini daha güzel hâle mi getirdiğini, yoksa gerçekten önemli bir iş mi yaptığını iyi anlayıp gerektiğinde bırakabilmesi gerektiğini düşünüyorum.