Benimki bir "başarı" hikayesidir. Projem bağımsız olarak yönetilen / yazılan 4 uydu siteli (üzerinde farklı uygulamalar bulunan alt alanlar) olan bir birincil siteyi içeriyordu. 4 ayrı kullanıcı tabanımız vardı (hepsi ayrı ayrı aktif dizinlerde) ve hiçbirinde ortak bir doğrulama sistemi yoktu. Üçü tanınmış ve silo'd uygulamalardı ve dördüncü uydu yepyeni idi ve kod üssünün çoğunu en köklü sitemizden kopyaladı.
Hedef: 4 etki alanındaki hesapların kimliğini doğrulayabilecek ve etki alanlarının 1'indeki hesapları (self-servis ile) tam olarak yönetebilecek kurumsal bir kimlik sistemi uygulamak. Net, uydulara zaten uygulandığı için, "giriş" olarak hizmet veren klasik asp sitesinin yeniden yazılması, kimlik yönetiminin eklenmesi ve tüm sitelerin hiçbir hizmetin etkilenmemesini sağlamak için regresyon testine ihtiyaç duyulması gerekirdi.
Kaynaklar: 3 ana mimar - programcı, kimlik yönetimi, proje yöneticisi. Yaklaşık 20 geliştirici, 10 analist, 10 testçi.
Tamamlanma süresi (bitmeye başlama): 1.5 yıl
Başlatma Başarısı: Yakın Arıza
Uzun Ömür Başarı: Müthiş
Kimlik yönetimi mimarıydım, bu yüzden tüm uyduların etkileşime gireceği veritabanları, alt sistemleri ve mantıksal arayüzleri tasarladım. “Programcı” mimarı, tüm uydular hakkında geniş bir iş bilgisine ve uygulamalarla ve bu noktadaki gelişmelerle ilgili deneyimine sahip lider bir geliştiriciydi.
Şirketimizdeki çeşitli bölümlerden 50 ya da daha fazla farklı kişiyle toplanan birkaç ay süren gereksinimden sonra, mantıksal mimariyi ütülenip kodlamaya başladık. Değişimin doğası gereği, kendi web sitemizi ve içerdiği tüm işlevselliği yeniden yazmak zorunda kaldık. Bazı durumlarda bu sadece yeniden yapılanma meselesiydi. Çoğu durumda, onu çevreleyen işlemlerin tam bir tekrarı ile ilgiliydi. 2 vakada orjinal özelliği sadece önemsiz olarak bıraktık. Bu süreçte 2 son tarihi kaçırdık (ancak önerdiğim orijinal son tarihi - ancak zorlukla). Fırlatma gününde hiçbir şey işe yaramadı. Bir Cumartesi günü başlattık, böylece etki oldukça azdı, ancak bütün günümü günlükleri taramak, parçaları yeniden yazmak ve sunucu yüklerini değerlendirmek için harcadım. Daha fazla test yardımcı olabilir.
İlk günün sonunda, tüm siteler çalışıyor ve çalışıyordu ve her şey çalışıyordu (nominal bir başarı olduğunu söyleyebilirim). Son 2,5 yıl boyunca her şey müthiş bir başarı oldu. Tüm sitelerimizi ortak bir yapı tabanı ile ortak bir mimaride kullanmak geliştirme ve çapraz-geliştirici işlerini çok daha kolaylaştırdı. Sitemize 2.5 yıl önce yazdığım (yeniden yazmamız sırasında) o zamandan beri birkaç uydu siloları tarafından görülmüş / kabul edilmiştir.
Günlük kaydı, kullanıcı takibi, çalışma süresinin artması, kimlik doğrulama / yetkilendirme / tanımlamadan sorumlu tekil bir uygulama geliştirdik. Uydu siloları tamamen uygulamalarına odaklanabilir ve kimlik yönetimi uygulamasında herhangi bir kimlik doğrulama / yetkilendirme sorununun mevcut olduğuna güvenebilir.
Projemiz bir sürü hayal kırıklığı, gönül yarası ve felaketti. Sonunda ödedi ve sonra bazı. Joel Spolsky'nin yeniden yazma değerlendirmesini genel bir kural olarak değerlendirmesine% 100 katılıyorum, ancak her zaman istisnalar da var. Yeniden yazmak istiyorsan, ihtiyacın olan şeyin kesinlikle olduğundan emin olman gerekir. Eğer öyleyse, o zaman onunla birlikte gelen tüm ağrılar için hazır olun.