Problemi Anlamadıysan Çözmeye Hazır Değilsindir

Problemi Anlamadıysan Çözmeye Hazır Değilsindir

İzninizle bir kez daha tekrar edeyim: “Problemi anlamadıysan çözmeye hazır değilsindir.”

Henüz kariyerimin başında da olsam gerek üniversite yıllarımda gerek iş hayatımda genellikle debug etme, problemi anlama, başkasının yazdığı kodu okuma/yorumlama ve problemi çözme üzerine olan yeteneğim ile tanınırım.

Genelde çalışma arkadaşlarım kadar çok iyi bir algoritma kurma becerim ya da üst düzey matematik bilgim yok ancak meraklı oluşum, bulmaca çözmeye olan hevesim ve kod refactor etmeyi sevme özelliklerim sayesinde bu işi hakkıyla yaptığımı düşünüyorum.

Başta karma karışık görünen bir koda bakarız ve aslında neler olduğunu anlamadan olayı çözmeye çalışırız. Neyin yanlış gittiğini anlamak için değişkenleri konsola yazdırırız, breakpoint koyarız ve buna benzer yaklaşımlar sergileriz. Kodlama ile azıcık bile uğraştıysanız, anlattığım durumu yaşamış olma ihtimaliniz yüksek.

Aslında işlerin çığrından çıktığı yer de tam burası. Belki de objenin birkaç propertysi eksik, belki değişkenin değeri null gelmemesi gerektiği bir durumda null olarak gelmiş belki de girmesini beklediğimiz if bloğuna neden girmediğini anlayamamışızdır. Hemen soruna neden olan yeri bulup aceleyle düzeltmeye çalışırız.

Ancak, asıl önemli noktayı kaçırırız. NEDEN ? Neden bu değişkenin propertysi eksik, neden bu değişkenin değeri gelmemesi gerekirken null gelmiş. Eğer nedenini anlayamadıysan o problemi çözmeye hazır değilsindir. Abartıyorum gibi gelebilir ama gerçek bu. Problemi anlamadan çözmeye hazır değilsindir. Anlamadan çözmemeliyiz.

Belki de çok sık karşılaştığın ve birçok kez yaşadığın bir hata bile olabilir. Ancak semptomu düzeltmek her zaman yeterli değildir. Problemin nedenini anladığın da zaten bunu yapacaktım da diyebiliriz. Ancak buna neden olan şeyi bulabiliyor olmamız lazım. Çünkü, buna neden olan şeyi başkasına açıklaman gerekebilir, çözme şeklinin neden doğru yol olduğunu anlatman gerekebilir. Yani en iyisini yaptığını anlatmak için gereklidir. Aslında bu bizim sorumluluğumuzdur.

Kolay yolu denemek için gerekli nedenlerimiz de olabilir. Belki de yönetim kısa sürede bizden bunu yapmamızı bekler ancak bizim bunu en iyi şekilde yapma sorumluğumuz vardır. Kısa bir çözümle olayı kapatmak aslında zaman kazanmak değildir. Çünkü belli bir süre sonra beklemediğimiz bir anda uyguladığımız “hızlı” çözümün yan etkilerini görebiliriz. Belki production ortamda veya çoklu kullanıcılı ortamlarda farklı bir davranış sergiliyordur veya olabilecek yüzlerce ihtimalden bir tanesidir. Problemi tamamen anlamadığımızı söylemek oldukça kabul edilebilir bir durumdur. Hatta bu takımımıza, hatta ve hatta yönetime olan bir sorumluluğumuzdur.

En nihayetinde, bizler birer problem çözücüyüz. Problemi anlamaya ve çözüm üretmeye olan derin bir arzumuz var ve kabul edelim biraz da üşengeçiz. Esasen doğru yaklaşım ve motivasyon ile debugging ve bug fix eğlenceli ve de faydalı olabilir. Tek yapmamız gereken problemi anlamak için biraz çabalamamızdır.


Paylaş :

Full Stack Developer · Yazılım Tutkunu · Fikir, kod ve teknoloji Daha fazlası için hakkımda sayfasını ziyaret edebilirsiniz.



Bu yazı hakkındaki görüşünü benimle paylaşmaya ne dersin ?


Email adresiniz yayınlanmayacaktır.

Yorum yap butonuna
  bastıktan sonra yorumunuz gönderilecektir. Yorumunuz incelenip onaylandıktan sonra diğer ziyaretçilerimiz tarafından da görünecektir. Lütfen, yorum yaparken saygı çerçevesinde ve hakaret etmeden yorum yapmaya özen gösteriniz.

Bu yorumu göndererek bu uyarıları okuduğumu ve kabul ettiğimi onaylıyorum.

This site uses Akismet to reduce spam. Learn how your comment data is processed.