Az Çorba Az Çeviklik

Gökhan Ercan
Apr 17, 2019 · 6 min read

Çevik metodoloji (agile) iyi güzel ama çeviklik herkesin her koşulda uygulayabileceği bir şey değil aslında. Bu yazıda konuya biraz olumsuz tarafından bakmak istiyorum. Çevik metodolojiler eğer iyi ve tam uygulanamazsa beklentilerin tam tersine sonuçlar doğurabilir.

Basitlik

SCRUM, Agile, Lean vb. günümüz metodolojileri basitlik üzerine kurulular. Çok az sayıda temel kuralları var. Metodolojiler, ekiplerin işini yapmayı durdurup ikide bir işi nasıl yaptığını kontrol etmeye zamanı olmadığını biliyor. Dolayısı ile karmaşık modelden basit modellere giderek proje planlama, yönetim, kontrol, dökümantasyon yükünü hafifletmeye çalışıyor. Metodolojiyi basitleştirmek bir yandan riskleri arttırırken diğer yandan basitliği sayesinde sağladığı süreklilik ve tutarlılık ile verim arttırmayı hedefliyor. Benim uyarım da burada başlıyor. Peki zaten aşırı basitleştirilmiş olan metodolojinin bütün prensip ve kurallarına gerçekten uyulabiliyor mu? Uyulması gereken 3–5 kurala da uyulamadığı zaman risklerini arttırmanın yanında metodolojisizlik sorunu ile karşı karşıya kalınılabilinir. Yüz kurallı bir metodolojiden 3–5 kurallı metodolojiye düşmemizin sebebi sadece en önemli ve olmazsa-olmaz olanları tutma niyetimizdi. Metodolojilerin basitleştirilmiş olması doğal süreci ya da üretilen şeyi basitleştirmedi. Dünya artık daha karmaşık, rekabet daha fazla, analiz yapmak, anlamak, anlatmak gittikçe zorlaşıyor. Örneğin bir arayüz ne kadar basit ise onun arka planı o kadar derin. Google’ı tek bir metin kutusu üzerinden çok kolay kullanıyor olmamız arka plandaki karmaşıklığı maskeliyor mesela.

Sıklıkla İhlal Edilen Çeviklik Kuralları

Çevikliğin sıkı kuralları yok, bir framework değil bir yaklaşım. Dolayısı ile kurallardan çok prensipleri var demek daha doğru. Ama bu prensipler gerçekten çok kritik. Örneğin yazılım kadar karmaşık bir fenomene uzun toplantı ve analizler sonucunda detaylı dökümantasyon yapmamak gibi bir “deliliği” sadece o prensipleri tam uygulayarak başarıya ulaştırabiliriz.

Çevikliği seçip riskleri arttırıp, ön analizleri kısaltmak uyulması çok kolay karar. Ama uyulması zor olan bazı çevik prensipleri iyice değerlendirmek gerekir. Bu maddeleri bildiğiniz agile manifestodan [1][2] seçerek yorumlayarak listeliyorum. Maddeleri yazılım özelinde örneklendireceğim:

Kişi “bu kod çalışmıyor” dediğinde sadece “bu kod çalışmıyor” demek istiyor ve karşı taraf sadece “bu kod çalışmıyor” olarak algılıyor olmalıdır.

Gelişigüzellik

Bilgiyi elde etmek zaten bu kadar zorken, iş birimlerinin projelere destek vermemesi proje sürecini kaosa, ürünü ise yanlış varsayımlarla dolu bir yap-boz tahtasına çevirebilir. Agile’ın sürekli geribildirime dayanan iteratif yapısından dolayı evrime ya da makine öğrenmesine benzetmek ilk bakışta keyiflidir ama hiçbir projenin 4.5 milyar yıl beklemeye zamanı olduğunu sanmıyorum. Çeviklik sayesinde bir ahenk ile tasarlanması gereken ürün, bu süreçler aksadığında gelişigüzel bir yapıya bürünebilir. Bu gelişigüzel yapı oluşturan hep kısa vadeli çözümü uygulayan sürece kluge (kluuj okunur) adı veriliyor [6]. Kluge hayatın her yerinde var ama her zaman faydalı değil. İnsan vücudu bir kluge ürünü mesela. Milyonlarca yıl boyunca hep o günün lokal ortamında hayatta kalabilmeyi maksimize ederek gelişmiş çok kompleks bir sistem. Bu yüzdendir sırt ve bel ağrılarımız, ya da kullanmadığımız garip organlarımız. Gelişigüzel yapı yeniden yapmadan düzeltilemiyor, yama yapılabiliyor sadece. Bu işin doğasında var. Yazılım projelerindeki kluge’lar 2-3 yıl sonra yeniden geliştirme gerektirir, büyük bakım ve genişletebilme sorunları üretir.

Hayat uzun vadeli idealist planlar ve tasarımlar için çok kısa olabilir ama hep gelişigüzel yüzeysel çözümlerle geçmeyecek kadar da uzun.

Umursamazlık

En çözümsüz problemi sona sakladım. Bunun manifestoyla, analizle, politik riskler ile falan pek ilgisi yok. Bu bir idealizm eksikliğidir. Yaşamak dışında hiç bir entellektüel meraka ya da tutkuya sahip olmama durumudur. “Hocam bu matematik hayatta bize ne zaman lazım olacak” faydacı kültürüdür. Bu kültür sorgulayamaz, üretemez, öğrenemez. Bu kültürü, adeta salgın bir hastalık gibi yayılması kolay ama durdurması çok zor bir felaket olarak görüyorum. Sonuç olarak, idealin ne olması gerektiği her zaman tartışmaya açık olsa da, ne olmaması gerektiğinin bu olduğunu düşünüyorum.

https://dilbert.com/strip/2007-11-26

Gökhan Ercan — Denemeler

Gökhan Ercan - Denemeleri— Yazılım, Teknoloji, Felsefe

Gökhan Ercan — Denemeler

Gökhan Ercan’ın Denemeleri — Yazılım, Teknoloji, Felsefe

Gökhan Ercan

Written by

Software developer, rocker, reader, science addict, NLP researcher, phd cand. www.gokhanercan.com

Gökhan Ercan — Denemeler

Gökhan Ercan’ın Denemeleri — Yazılım, Teknoloji, Felsefe