Ben gerçekten kör olacağım ...
- Bu işteki geliştiricilerin sorumlusu siz misiniz?
- Proje lideri siz misiniz?
- Geliştiriciler projede ne kadar "risk" barındırıyor?
- Bir yeniden yazma için işinizin gerekçesi nedir?
- Tamamen işe yaramaz ve kurtarılamaz kılan kod tabanı ile ilgili nedir?
Bir işe yeni başladığınızı söylediniz ve henüz orada durumun ustası gibi göründünüz. Belki de sorunuzun amacını yanlış anladım, ancak bir takım problemler gördüğünüz bir işe girdiğiniz izlenimini edindim ve kodun kırıldığı en kolay sonuca atladınız ve ileriye dönük tek yol Bir yeniden yazma, ama gerçekten bunu işvereninize yapmanın maliyetini düşündünüz mü?
Var olan herhangi bir kod temeliyle - içinde bulunduğu durum ne kadar zayıf olursa olsun - mal sahibi genellikle kodun temsil ettiği ürün (ler) e büyük miktarda yatırım yapacak. Kod tabanına ilişkin hem doğrudan hem de dolaylı maliyetler vardır ve yeniden yazma, kod varlıklarınızı değer kaybetme riskiyle karşı karşıya kaldığınızda ve böylece önceki durumunuzun tümünden daha düşük getiri elde ettiğiniz için, bir yazılım geliştiricisi olarak yapmak istediğiniz en son şeydir. çabalar.
Pencerenin işletim sistemini örnek olarak alın. Oluşturulan her yeni sürümde, önceki sürümden ileri sürülen büyük bir kod bölümü vardı. Bazen, tüm kütüphaneler ve API'ler birçok OS neslinde ileri sürüklenir. Niye ya? Geliştiriciler bu öğelerin çalıştığını, güvenlik ve bellek sorunlarının önlenmesi için test edildiğini, yamalandığını ve sabitlendiklerini ve bu duruma girmeleri için çok fazla paraya sahip olduklarını bildiklerinden. Kimse para kazanırken çalışma kodunu atmak istemez, bakım maliyetleri nispeten yüksek olsa bile, sıfırdan başlama maliyeti her zaman daha yüksek olur ve Microsoft'un örneğinde olduğu gibi bankada milyarlarca dolar bulunur. isterlerse baştan başlamalarına izin ver, ama yapmazlar Çünkü yatırımlarından elde ettikleri getirileri en üst düzeye çıkarmak istiyorlar. İşvereniniz Microsoft'tan farklı değildir, bir projeye milyarlarca nakit para yatırmak dışında.
Kod bir karışıklık ve şirketin çeşitli alanları arasında iletişim ve sınır sorunları var gibi görünüyor. Siz veya meslektaşlarınız bu konuda ne yapabilir?
Seçeneklerden biri takım olduğu gibi devam etmek ve gelecekte bir mucize olmasını ummaktır. Muhtemelen iyi bir fikir değil ve sadece hayal kırıklığınızı ve stresinizi artıracak gibi görünüyor.
Daha iyi bir seçenek basitçe yorulmak ve işlerinizi yapmaktır, ancak bunun bir parçası olarak en kırılgan görünen kod alanlarını desteklemek için testler ekleme fırsatlarını araştırın, daha kararlı hale gelinceye kadar bunları yeniden düzenleyin. Her şeyi bir kenara atmak yerine, şirketin yatırımını geliştirmek için zorlayıcı bir tartışma yaparak daha kolay bir zamana sahip olacaksınız.
Daha iyi bir seçenek ekip olarak organize olmak ve takımın kod tabanını geliştirmek için zaman planlaması konusunda daha fazla esneklik sağlamak için iyi bir dava açabilecek kadar yeterli kıdemle birini yakalamanızı sağlamaktır. Bir şirketin ne kadar meşgul olduğu ya da programın ne kadar sert olduğu umurumda değil, bir ya da iki kez bir iyileşme sıkmak için kullanılabilecek faaliyetlerde ara sıra "boşluklar" vardır. Ancak, diğer görevleri tamamlarken iyileştirmeler yapılabilirse daha da iyidir. Ben olsaydım, bir yöneticiye gider ve yazılım geliştiricilerin okudukları kanonik kitapların bazılarındaki kavramları tanıtırdım. Kodu temizleMuhtemelen takımınızın en çok ihtiyaç duyduğu şey. Kodun nasıl geliştirileceğine dair birkaç tohum ekin ve ne demek istediğinizi birkaç örnekle verin. İyi bir yönetici, özellikle Teknik Borç kavramını tanımlayabiliyorsanız, koda artan iyileştirmeler eklemenin değerini görecektir . Ekip liderinize veya yöneticinize, kodu iyileştirmek için iyi bir iş davası oluşturması için yardım edin; bu konuda daha iyi bir motivasyonları olacaktır.
"Kod düzensiz" demek de yeterli değil. Meslektaşlarınızı her zaman temiz kodlama uygulaması için teşvik etmelisiniz ve ilerledikçe biraz toparlanmayı teşvik etmek için temiz kodlama tekniğini kullanmalısınız. Her yeni işimde her defasında yazdırdığım ve ofis duvarımdan asdığım küçük bir posterim var. "Her zaman kodu, bulduğundan biraz daha güzel bırakmak için gayret göster" diyor. Hemen yanında "Lilyumların yaldızlı olmasına gerek yok" yazan bir tane daha ekliyorum. İkisi de bana her zaman bulduğum şeyi geliştirmeye çalışmam gerektiğini hatırlatmaya hizmet ediyor, ancak bir problemi diğeriyle bulmaktan kaçınıyorlar. Büyük yeniden yazmalar genellikle en kötü "altın kaplama" türlerindendir, çünkü sıklıkla yanlış nedenlerle yapılırlar. Tamamen yeni bir ürün sürümünün bir noktada haklı olabileceğinden emin olun,