Come vorresti riscriverlo / refactarlo? [duplicare]

3

Vecchia applicazione utilizzata da 50-60.000 clienti paganti. La compagnia conta diverse centinaia di persone. L'applicazione ha un sacco di codice business critical (30% di tutto il codice) scritto in asp classico. L'applicazione ha molto più codice .net. L'applicazione ha un ponte COM + per abilitare asp a "parlare" con .net Mancano alcune / molte informazioni sull'organizzazione che causa il reset del server del 10-20% al giorno (potrebbe essere dovuto a COM +?) Non c'è una linea rossa attraverso l'applicazione; nessuna architettura, nessun modello reale ecc. L'applicazione è stata così per almeno 5 anni. La base del codice asp sta aumentando, lentamente ma certamente.

Ho letto le storie di refactoring e ho delle conoscenze sul perché alcune volte non dovresti riscrivere un sistema.

Mi piacerebbe che il vecchio codice ASP svanisse così come il componente COM +. Ma il dolore è che nessuno sa veramente cosa sta succedendo all'interno del codice asp classic e l'atteggiamento all'interno di tutte le squadre è "questo è proprio come è".

A valle, questo causa molti altri problemi come il reclutamento, l'efficienza di sviluppo, le esigenze aziendali che non possono essere soddisfatte, la scala ecc.

Con questi piccoli fatti, ciò giustifica una riscrittura del codice asp e la rimozione del componente COM +?

Come faresti a riguardo?

    
posta frostings 25.08.2014 - 12:48
fonte

3 risposte

2

Con questi piccoli fatti che hai fornito, è impossibile dirlo.

Alla fine, questa è un'analisi costi / benefici.

  • Quanto costa la riscrittura?
  • Quanto costa l'amministrazione del sistema crea in questo momento e quanto costerà dopo la riscrittura?
  • Qual è il costo attuale di eseguire una modifica tipica al sistema e quale sarà il costo dopo la riscrittura?

Tieni presente che anche quando aumenti il personale a breve termine durante la riscrittura (come assumere una società di consulenza esterna per farlo), la riscrittura ti costerà delle risorse. Ciò significa che la situazione di supporto sarà peggiore mentre esegui la riscrittura. Inoltre, dimentica il pio desiderio che la nuova applicazione sia perfetta sin dal primo giorno. All'inizio ci saranno errori di progettazione e bug, che probabilmente richiederanno diversi anni per essere risolti. Ci vorrà un po 'finché non sarà produttivo come quello vecchio.

Tenendo presente tutto questo e quantificandolo in denaro, dovresti essere in grado di creare un'analisi costi / benefici che indichi quanto tempo ci vorrà prima che l'investimento si ammortizzi. Fornisci questo alla direzione e chiedi loro se ne vale la pena o meno.

Devi anche considerare un approccio alternativo : fai il meglio da ciò che hai. Hai detto "nessuno sa veramente cosa sta succedendo all'interno del codice asp classic". Sembra una mancanza di documentazione . Avviare un progetto ora per scrivere una documentazione adeguata per il sistema potrebbe aiutarti in futuro a fare modifiche e risolvere i problemi. Mentre lo fai, potresti anche essere in grado di identificare i problemi principali del sistema e trovare una soluzione per loro senza dover riscrivere il codice che funziona correttamente.

    
risposta data 25.08.2014 - 13:00
fonte
3

Alcuni opinioni di esperti sul software di riscrittura . Mi piace soprattutto R.C. Martins "Big Redesign in the Sky".

Imho, anche i software scadenti possono migliorare nel tempo. Ci vorrà del tempo, sarà molto impegnativo, e funzionerà sicuramente solo se tutti i membri del team lo vorranno, perché richiede che non venga scritto nessun nuovo brutto codice e che ogni componente che viene toccato venga migliorato in modo incrementale.

Potresti anche dare un'occhiata al metodo Mikado per il refactoring di un grande software legacy . Mi aiuta molto a ricordare questo principio.

Spero che questo aiuti un po '!

    
risposta data 25.08.2014 - 16:56
fonte
2

Non vuoi fare una riscrittura, perché fai notare che ci sono dei problemi.

Quello che dovresti fare è refactoring mentre ci stai lavorando - ogni volta che fai qualcosa con una delle pagine ASP classiche, trasformala in .Net. Fondamentalmente fai la pulizia mentre stai lavorando a un problema. Questo naturalmente aggiunge lavoro aggiuntivo alle singole attività, ma non è un completo "cambia tutto ora" e quando si fa l'aggiornamento, fare il meno possibile per ottenerlo. Net, non riscrivere l'intera pagina se non devi.

Alla fine avrai tutto come .Net e poi potrai iniziare qualunque sia la prossima operazione di pulizia.

    
risposta data 25.08.2014 - 20:20
fonte

Leggi altre domande sui tag