20 Haziran 2024 Perşembe

Daha Çok Özellik, Daha Çok Teknik Borç

     Selamün Aleyküm Arkadaşlar,

    Bugünkü yazımız sürekli gelen yeni özellik(feature) istekleriyle artan teknik borçların günün sonunda baş edilemez hale gelmesini konuşacağız. Hangi özellikler gerçekten elzem hangileri değil, bunların kararı nasıl verilmeli, öncesinde hangi çalışmalar yapılmalı ve var olan sisteme en iyi şekilde nasıl entegre edilmeli sorularının kendimizce cevaplarını arıyor olacağız. Hazırsak başlayalım.

    Her birimiz farklı ürünlerde farklı özellikler geliştiriyoruz. Geliştirdiğimiz birçok özelliğin de muhtemelen aciliyeti vardır, ne zamana biter baskısı, yönetimden/müşteriden geldi, acil yapılması gerekiyor vs gibi konular konuşulur durur.

    Bazen bunlara set çekmek isteseniz de baş etmek çok da kolay olmuyor, bir bakıma parayı veren düdüğü çalar muhabbetine geliyor, bazen size hak verilse de ürünü satmak için rakiplerinizdeki özellikleri eklemeniz gerekiyordur, bazen de gerçekten o özelliği eklmeniz gerekiyordur.

    Ürüne bir özellik eklenecek, bu artık kaçınılmaz oldu, fakat öncesinde bu uygulamada gerçekten buna ihtiyaç var mı, rakiplerde bu özellik var diye kesinlikle eklenmeli mi gibi sorular akla geliyor. Kullanılacak bu özelliğin potansiyel kullanıcı tahminlemesi yapıldı mı, sahadaki nabzı gerçek manada tutabildik mi, günün sonunda ne hedefleniyor ve ne ile karşılaşmayı umuyoruz. Tüm bu parametreleri görmezden gelip bu özellik yapılacak mı diyoruz yoksa ...

    Varsayalım ki tüm bunları göz önüne aldık, gelir götürüsü irdelendi ve özellik yapılmaya başlandı. Diğer güzel bir soru ise bu özelliği tüm noktalarıyla ele alıp son halini mi çıkmalı yoksa MVP kapsamında bir yapı ortaya koyup buradan kullanıcı deneyimi mi beklenmeli? 

    Bu soruların cevaplarının birçok parametresi elbette var. Ekibin kapistesi, ürünün olgunluğu, sahadaki kullanıcı sayısı, sektörün beklentileri gibi konulara göre cevaplar tabii ki değişebilir. Bizim de amacımız zaten şu doğru bu yanlış ukalalığına girmekten ziyade doğru soruları sormaya çalışmak ve herkesin kendisince doğru olan cevabı bulmasına bir nebze katkıda bulunabilmek...

    Beklenen özelliği hedeflediğiniz tarihte biraz da fazla çalışmalarla tamamlamdınız, ekip oldukça yorulmuş ama yaptığı özelliği görünce de mutlu. Gerekli işlemler yapıldı ve canlıya da sürüldü, öncesinde çıkan ufak tefek hatalar da giderilmişti, sahada tam da beklendiği şekilde çalışıyor. Gerekli bildirimler, reklamlar yapılmaya çalışıldı. Ürünün üzerinden de bir süre geçti ve bu özelliği kullanan kullanıcılara dönüp bakıyoruz. Sonuç kullanım açısından tam bir hüsran olduğunu gördüğünüzde nasıl hissedersiniz? Her şeyi kenara bakıp insanca bir düşünmenizi istiyorum. Profesyonel olarak baktığınızda birçok şey söylenebilir belki de söylenmeli ama insani olarak sanki çok mutlu olacağımızı söyleyemem...

    Her özellik bir anda mükemmel bir kitleyle kullanıma sunulacak diye bir şey tabii ki yok, ama ürününüz gerçekten olgun mu? Cevabınız evet ise buna belki diyecek şey daha azdır, fakat cevabınız hayır ise sanırım durumu çok daha nahoş karşılarsınız diye düşünüyorum. Çünkü ürünün çok farklı öncelikleri var iken sizin dönüp de çok az kullanıcının kullanacağı bir özelliğe yoğun bir şekilde birkaç hafta ayırmanız sizi mutlu etmeyecektir diye düşünüyorum.

    Bahsettiğimiz gibi yoğun ve telaşlı bir geliştirme anında bazı olması gerekenleri de ihmal edip kodun/ürünün teknik borcunu daha da artırıyorsunuz. Bu borcu satın alıyorsunuz, bilinçli olarak bu şekilde yapmak zorunda kalıyorsunuz. Özellik beklenen vakitte yetişti, fakat daha önceden gelen borçlarla birlikte bunun da borcu eklenmiş olmadı mı? Çığ gibi büyüyüp gözünüzün önünde büyümüyor mu bu kartopu?

    Bu konuya kafa yoran, böyle olmaması gerektiğini söyleyen bir ekibe sahip iseniz hem şanslısınız hem değilsiniz. Şanslı olunması bunun bilincinde olmak, şansız olunması ise bunun bazen göz göre göre yapılıyor olması. Bayrak kaldırıyorsunuz, kaldırdığınız bayrak ne kadar ciddiye alınıyor ve ne kadar acil işlerden fırsat veriliyor? Şahsi sorumluluklar alıp bunu bir yere kadar düşürmeye de çalışıyorsunuz belki, ama günün sonunda yorucu ve bazen de yıpranmışlık kalıyor geriye. Devam etmek mi pes edip ceketi alıp gitmek mi, bu da bir sonraki yazımızın konusu olsun diyelim öyleyse :)

    Çalıştığım ürün tarafında hem sahayı hem ürünü hem de yazılım ekibine yakın çalışan biri olarak bazı sorular sormaya çalıştım, insanın tecrübesi ölçüsünde bu soruların cevapları değişiyor. Sizlerin de yaşadığı tecrübeleri ve bu konudaki fikirlerinizi paylaşmanızı rica ederim.

    Yazıyı aşağıdaki hadis-i şerifle bitirelim.

"Şüphesiz insanların en hayırlısı borcunu en iyi ödeyendir." buyurdu. (Müslim, Musâkât, 118, 128; Tirmizî, Buyû', 73; Nesâi, Buyû', 64; İbn Mâce, Ticaret, 62; Dârimî, Buyû', 31; Mâlik, Buyû', 89; Ahmed b. Hanbel, VI, 375, 390)






Hiç yorum yok:

Yorum Gönder