Bu tartışmalı programlama görüşleri başlığında bu cevabı okuduğumdan beri düşündüğüm bir şey :
İşin, kendini işten çıkarmak.
İşvereniniz için bir yazılım yazarken, oluşturduğunuz herhangi bir yazılım, herhangi bir geliştirici tarafından alınabilecek ve minimum çaba ile anlaşılabilecek şekilde yazılmalıdır. İyi tasarlanmış, açık ve tutarlı bir şekilde yazılmış, temiz bir biçimde biçimlendirilmiş, olması gereken yerde belgelendirilmiş, beklendiği gibi günlük olarak inşa edilmiş, depoya kontrol edilmiş ve uygun şekilde sürümlendirilmiştir.
Eğer alırsanız bir otobüs çarptı , işten, ateş, ya da işi çekip, işverenin bir an fark sizi değiştirmek gerekir ve sonraki adam, rolünüz adım kodunuzu almak ve yukarı olmak ve olabilir bir hafta içinde koşuyorlar. O yapamazsa, o zaman sefil başarısız oldun.
İlginç bir şekilde, bu amacın benim işverenim için beni daha değerli kıldığını gördüm. Tek kullanımlık olma çabası arttıkça, onlar için daha değerli oluyorum.
Ve bu gibi diğer sorulara, içinde biraz tartışıldı bu bir , ama daha nokta taslaktan görüşmek üzere tekrar gündeme getirmek istediğini " bir kod koku !! " bakış açısı - gerçekten örtülü edilmemiştir hangi Henüz derinlemesine.
On yıldır profesyonel bir geliştiriciyim. Herhangi bir iyi yeni geliştirici tarafından kodun nispeten hızlı bir şekilde alınabilmesi için yeterince iyi yazılmış bir işim oldu, ancak çoğu sektörde, çok yüksek bir sahiplik düzeyi (hem bireysel hem de ekip sahipliği) olduğu anlaşılıyor. norm. Çoğu kod tabanının, yeni bir geliştiricinin bunları alıp hızlı bir şekilde çalışmasını sağlayacak belgelere, sürece ve “açıklığa” sahip olmadığı görülüyor. Her zaman sadece kod tabanını çok iyi bilen ("sahibi") birisinin bildiği, yazılı olmayan küçük numaralar ve kesitler vardır.
Elbette, bununla ilgili bariz sorun şudur: Ya kişi istifa ederse ya da "bir otobüse çarptıysa"? Ya da takım düzeyinde: peki ya tüm ekip ekip öğle yemeğinde dışarı çıktıklarında yiyecek zehirlenmesi geçirirse, ve hepsi ölürse? Ekibi nispeten acısız bir şekilde yeni bir rastgele geliştirici grubuyla değiştirebilecek misiniz? - Geçmiş işlerimin çoğunda, bunun olduğunu hayal bile edemiyorum. Sistemler o kadar çok hileyle ve hack ile doluydu ki, “ bilmek zorundasınız ”, işe aldığınız her yeni ekibin işleri tekrar yürütmek için karlı iş döngüsünden (örneğin, yeni kararlı sürümler) çok daha uzun sürdüğünü belirtti. Kısacası, ürün terk edilmek zorunda kalırsa şaşırmam.
Açıkçası, bir kerede bütün bir takımı kaybetmek çok nadir olurdu. Fakat bunda daha ince ve kötü bir şey olduğunu düşünüyorum - bu konuyu daha önce tartıştığımı görmediğim için bu konuyu başlatmayı düşünmemi sağlayan nokta budur. Temel olarak: Kod sahipliğine yüksek bir ihtiyaç duymanın teknik borcun bir göstergesi olduğunu düşünüyorum . Süreç eksikliği, iletişim, iyi tasarım, sistemde “bilmeniz gereken” birçok küçük hile ve saldırı varsa, bu genellikle sistemin giderek daha derin ve daha derin bir teknik borç alması anlamına gelir.
Ancak mesele şu ki - kod sahipliği genellikle bir projeye ve şirkete bir tür "sadakat", işiniz için "sorumluluk almanın" olumlu bir şekli olarak sunulur - bu nedenle doğrudan kınamaya alışmadık. Ancak aynı zamanda, denklemin teknik borç tarafı genellikle kod tabanının giderek daha az açık olması ve birlikte çalışmanın zorlaştığı anlamına gelir. Özellikle insanlar ilerledikçe ve yeni geliştiricilerin yerini alması gerektiğinde, teknik borç (bakım) maliyeti artmaya başlar.
Bu nedenle, bir anlamda, kod sahibi olma ihtiyacının yüksek düzeyde açıkça bir iş kokusu olarak görülmesi (popüler programcının imgeleminde), mesleğimiz için iyi bir şey olacağını düşünüyorum. Çalışmalarında “sorumluluk almak ve gurur duymak” olarak görülmek yerine, “kendini işe almak ve teknik borçlarla yapay iş güvenliği yaratmak” olarak görülmeli.
Testin (düşünce deneyi) temelde olması gerektiğini düşünüyorum: Ya kişi (ya da gerçekten de tüm takım) yarın Dünya'nın yüzünden kaybolursa. Bu projenin muazzam - muhtemelen ölümcül - bir sakıncası olur mu, yoksa yeni insanlar getirebilir miyiz, onları doccoları okumalarını ve dosyaları yardım etmelerini ve kodla birkaç gün boyunca oynamalarını sağlayabilir miyiz? birkaç hafta içinde iş (ve bir ay ya da öylesine bir tam verimlilik geri)?