- Büyük ölçekli teknik borcu olan şirketlerde, kopyalanmış kod ve eski framework’ler nedeniyle verimsizlik ortaya çıkar
- Proje ilerlerken yönetimin güvenini kaybetmek ve organizasyon içindeki değişim direnci başlıca engeller olarak öne çıkar
- Teknik borcun temel nedenleri belirsiz gereksinimler, gerçekçi olmayan takvimler, eski teknolojilere bağlılık, yönetimin kısa vadeli tepkileri, kişisel ego gibi insan kaynaklı etkenlerdir
- Proje başarısı için yalnızca teknik çıktı değil, algı yönetimi ve iletişim de kritik önemdedir
- Mühendislerin teknik yetkinliklerinin yanında organizasyon içinde iş birliği yapma ve insan ilişkilerini dengeleme becerilerine de sahip olması gerekir
Teknik borç ve kopya kod sorunu
- Yazarın daha önce çalıştığı bir şirkette, milyonlarca satır kod, birim testlerinin yokluğu ve 10 yıldan eski framework’lerin kullanımı nedeniyle ciddi teknik borç vardı
- Windows’a özel modülleri Linux’ta çalıştırmak için yüz binlerce satır kod kopyala-yapıştır ile taşınmıştı
- Bunun sonucunda iki ayrı kod tabanı oluştu ve özellik ekleme ile hata düzeltme işlemlerinin her biri ayrı ayrı yapılmak zorunda kaldı
- Bu tür bir durum bakımı imkânsız bir yapı doğurur ve zamanla kod tabanları arasındaki fark giderek büyür
İnsan sorunlarının yarattığı teknik borç
- Teknik borç projelerinde yönetimi ikna etmek zordur; sonuçta işlevsel değişim çok az olduğu için görünür çıktı da sınırlıdır
- Proje geciktikçe yönetimin güveni kaybolur
- Sorunun özü teknoloji değil, insanların tutumu ve organizasyon kültürüdür
- Pek çok geliştirici değişime direnç gösterir ve geçmişteki yöntemlere tutunur
- Kod yapısı, onu yazanın karakterini ve değişimi kabul etme düzeyini yansıtır
- Teknik borç; net olmayan gereksinimler, gerçekçi olmayan sözler, eski teknoloji seçimleri, yönetimin projeyi durdurma kararları, kişisel ego gibi nedenlerden doğar
- Değişimden özellikle kaçınan ekiplerin kodunda da bu direnç açıkça görülür
- Birçok geliştirici yıllardır aynı şekilde çalışıyordu; hatta “yeni bir şey öğrenmek istemiyorum” diyenler bile vardı
- Böyle bir ortamda borcun birikme hızı, temizleme hızından yüksek olduğu için, borcu azaltmadan önce yeni borç oluşmasını engellemek öncelik olmalıdır
- Acil servisteki triage (önceliklendirme) benzetmesinde olduğu gibi, önce “kanamayı durdurmak” gerekir
İdeal dünya ile gerçeklik arasındaki fark
- Mühendislik sorunlarını politikadan ya da organizasyon bağlamından bağımsız çözecek ideal ortam neredeyse hiç yoktur
- Çoğu projede teknik olmayan paydaşlar bulunur
- “Biz hallediyoruz, bize güvenin” yaklaşımı işe yaramaz
- Başarı algısını yönetmek, gerçek başarı kadar önemlidir
- Teknik olmayan kişiler, teknik borç temizliğinin gerekliliğini sezgisel olarak anlamadığından, bunu sayısal ve iş değeri üzerinden açıklamak gerekir
- Liderliğin mühendislik geçmişi yoksa, görünür metrikler ve etkiler sunmak gerekir
- Sonuç olarak ekibin üretken görünüyor olması da gerçek üretkenlik kadar önemlidir
Kıdemli mühendisler için gerekli yetkinlikler
- Kıdemli ve üstü roller için departmanlar arası iş birliği ve insan ilişkilerini dengeleme becerisi zorunludur
- Bilgisayar mühendisliği eğitimi, karakter, ego, ilişki yönetimi gibi “insanla çalışma” tarafını öğretmez
- Çok güçlü teknik becerilere sahip mühendisler bile büyük ölçekli ve organizasyonel değişim gerektiren sorunlarda zorlanabilir
- Bireysel üretkenlikleri yüksek olabilir ama organizasyonel etkileri sınırlı kalabilir
Heads up coder rolü önemlidir
- Derin teknik yetkinliği korurken aynı zamanda proje risklerini erken fark edip ekibi yönlendirebilen kişidir
- Tek çekirdek gibi tek başına hızlı çalışmak yerine, tüm ekibi verimli biçimde yönlendiren bir rol üstlenir
- Saf teknik odaklı mühendislerden farklı olarak, organizasyonun bağlamını ve risklerini birlikte okuyup buna göre hareket edebilir
Özet
- Teknik sorunların kökeninde her zaman insanlar vardır
- Teknik sorunların çoğu eninde sonunda insan, kültür ve iletişim sorunlarına dayanır
- Teknik borç, kodun değil organizasyonun davranış kalıplarının ve kültürünün ürettiği bir sonuçtur
- Teknik borcu çözmek için önce organizasyonun değişimi kabul etmesi ve liderliğin bunu anlaması gerekir
- Ayrıca, kariyerin ilerleyen aşamalarında yalnızca teknik mükemmeliyetle çözülemeyen daha büyük sorunlar sizi bekler
- Gerçek kıdemli mühendis, teknik yetkinlik ile insanı anlama becerisini birlikte taşıyan dengeli bir liderdir
Henüz yorum yok.