26 Mayıs 2024 Pazar

Kod Yazmak mı Problem Çözmek mi?

    Selamün Aleyküm Arkadaşlar,

    Bugün biraz beyin fırtınası yapmak istiyorum. Sesli olarak düşünmek de diyebiliriz. Konu, bir geliştirici olarak kod yazmanın mı yoksa problem çözmenin mi daha çok bizleri geliştirdiği ile ilgili olacak. Konu geniş, nereye çeksen gidilecek cinsten. Sizlerin de bu konudaki düşüncelerinizi dinlemek isterim. Hazırsak başlayalım.

    Bu konu aslında geniş bir konu, ama nereden çıktı diye sorarsanız şöyle bir özetleyeyim. Ekip arkadaşım Ceyda ile bir projede çalışırken, bana kod yazmayı özlediğini iletti. Üzerinde çalıştığımız proje kapsamı gereği çok geniş, öncelikli olarak projedeki hataları çözmenin yeni özellik çıkmaktan daha önemli bir proje olduğu için vaktimizin büyük bir kısmı log okuma, debug etme, bazen de hataları tekrar etmeye (retro) çalışmakla geçiyordu ve bazen 3 günün sonunda işi 3 satırla kodla tamamlıyorduk. Konu tam da bu noktadan ortaya çıktı, kod yazmayı özlemekle :)


    Bu bahsettiğim olaydan kısa bir süre önceye kadar başka bir projeyi sıfırdan kodlamya başlamıştık ve tahmin edeceğiniz üzere çok yoğun kod yazıyorduk. Kabaca söyleyeyim günlük 20-30 dosyada yaptığımız değişikliklerden sonra böyle bir projeye geçişte bu olay yaşandı, bu bir yere kadar normal de olabilir, fakat bizim sorumuz aslında başka...


    Ben kendi adıma söyleyeyim, oturup bir projede sürekli geliştirme yapmaktansa (bir yerden sonra süre tekdüze oluyor çoğu zaman ya da bana öyle geliyor) bir projede 3 gün uğraşıp 3 satır kodu ile problemi çözmek genelde daha zevkli gelir (tabii çözebiliyorsam :). 


    Konunun doğru iletilmesi adına, yeni yazdığımız proje mikroservis mimarisiyle dotnet'in son sürümü ile kodlanıyor iken, yeni geçtiğimiz proje legacy olup dotnet framework ile kodlanmış bir projeydi. Kullandığımız bilgisayarlar da mac olunca bazı işleri yapması gerçekten çok daha stresli ve yorucu olduğu da bir gerçek idi... (Şimdilerde başka bir projede yine mikroservis yazıyoruz :)

  

    Eminim ki her iki projenin de her iki deneyimin de kendine göre birçok avantaj ve dezavantajı vardır. Mikroservis projesinde çalışmak her yazılımcı için çekicidir.  Yeni mimari, yeni bilgiler, yeni kazanımlar... Yaz yaz liste uzar. Diğer yandan legacy bir proje, herkesin belki de kaçtığı, yüzüne bakmak istemediği bir proje. Kağıt üzerinde bakıldığında her şey sanki ortada olsa bile, muhtemelen birçok kişi bana katılmayacak ama ben hala legacy projedeki problemleri çözmenin yazılımcıyı daha çok gelilştirebileceğine inanıyorum (kısa vadede - uzun vadede ise bu tarz projelerde çalışmak sakıncalı ve sizi sektörden uzak bırakabilir).


    Böyle düşünüyor olmamın bir sebebi sıfırdan yazılan bir projenin başlangıçta kod yazmanın kısmen kolay olmasıdır. Yani mimari kurulduktan sonra yapılan işlemler bazen sıradanlaşıp CRUD işlemleri yapmaya dönmeye başlıyor. Diğer bir sebebi ise legacy dediğimiz projeye adapte olup oradaki hatayı çözebilen kişinin bazı teknik yetkinliklerini daha fazla geliştirebilmesidir. Yani daha önce girmediği o okyanusta boğulmayıp gemisini kurtarabiliyorsa bundan sonraki işleri daha rahat çözebileceğini düşünmemdir.


    Buradan eski projelerde çalışmak daha iyidir gibi bir anlam çıkarmayalım, tabii ki mümkün mertebe en yeni teknolojilerle en iyi mimarileri kurgulayalım, ama bazen de tecrübe en kötü projelerde çözümü ayağa kaldırmaktan geçiyor olabilir. Naçizane ufak bir hatırlatma diyelim.


    Bu konudaki tecrübe ve düşüncelerinizi yazarsanız, farklı yaşanmışlıkları da okuyarak bakış açımızı bir nebze daha genişletebiliriz.


"Savaş size farz kılındı, gerçi o size hoş gelmez. Olabilir ki siz, bir şeyden hoşlanmazsınız; oysa ki o sizin için bir hayırdır. Yine olabilir ki, siz bir şeyi seversiniz, oysaki o sizin için bir kötülüktür. Allah bilir, siz bilmezsiniz." (Bakara, 216)



Hiç yorum yok:

Yorum Gönder