Come spiegare al tuo capo non programmatore che hai bisogno di rifattorizzare un intero sito? [duplicare]

7

Prima di tutto, non è un problema di programmazione, è un programmatore.

Sono il nuovo programmatore web della mia azienda.
Sono qui solo per 2 settimane. E vogliono che insegni a Wordpress, configura e ampli; installalo e cose del genere.

Ma hanno anche una Intranet per fare tutte le cose sulla compatibilità, il monitoraggio dei clienti, l'ordine degli eventi, l'invio automatico di email.

Bene, la rete intranet è molto carina e hanno trascorso 1 o 2 anni con un programmatore per farlo.

Ma il problema è:

La intranet è ottima per l'utente (una brutta esperienza di interfaccia utente ma funziona bene).
Ce l'hanno da 4 o 5 anni.

Ma se vai al codice, è fastidioso.

Seriamente, è davvero molto pesante, codice duplicato, insicuro. Tutto funziona bene, ma tutto è sbagliato nella vista codice.

Alcuni punti:

  • Il sito conserva 4 GB di spazio su disco (senza DB!)
  • Lì dove migliaia di file, cartelle, senza ordine
  • Molti file sono duplicati
  • C'erano, almeno, 20-40 file che devi configurare per cambiare l'origine del database
  • Alcuni file di configurazione sono in .ini, quindi posso scaricare da qualsiasi luogo
  • I siti sono stati codificati per 4.0 o 3.x, miracolosamente funziona su 5.x con alcuni avvisi.
  • Il sito è stato codificato senza alcun tipo di scalabilità, si limita a copiare e incollare file e continua a funzionare, niente include, niente.

Ad esempio: vedo almeno 40 file chiamati check_in.php in diverse cartelle.

Funzioni chiamate: paste () paste_2 () ...

Quali punti utilizzerai per convincere il tuo capo a occuparsi di ciò e a rifattorizzare tutto il sito?

È un rompicoglioni. So che il refattore sarà difficile, ma penso che sia il modo migliore per continuare il mio lavoro.
Perché vogliono che apporti delle modifiche e devo dedicare 3 ore solo per capire da dove viene quella funzione **** chiamata paste () e cosa esattamente fare.

Ah, un altro buon punto.

Non c'è alcuna documentazione.

    
posta nax 20.02.2012 - 10:59
fonte

3 risposte

16

La quantità di modifiche che un effetto dovrebbe è controverso. Cosa succede se si decide un approccio 'big bang', si stima che dovrebbero essere necessari due mesi per il refactator e finire per prendere sei? Non sto mettendo in discussione le tue competenze: è solo che progetti come questi possono facilmente sfuggire a un controllo incontrollabile.

Potresti creare un caso per un refactoring delicato e iterativo. Quindi forse prendi un giorno per centralizzare i file di configurazione e poi spostati su altri progetti. Quindi, due settimane dopo, aggiungi l'autoloading. Ottieni piccole modifiche dal vivo ogni volta, quindi attendi un po 'di tempo per farle entrare. In questo modo, rimani produttivo su nuovi progetti, migliorando lentamente la base di codice.

Dovresti fare queste cose su una branca separata, e se ci sono altre persone tecnologiche che le tue modifiche toccheranno (programmatori, dbas, ecc.), farle acquistare nelle tue modifiche prima di eseguirle.

    
risposta data 20.02.2012 - 11:08
fonte
10

Spiega il vantaggio in termini di costi: ogni volta che vogliono apportare una modifica, trascorri 3 ore a capire il codice e solo allora sarai in grado di apportare la modifica, che richiederà probabilmente meno di 3 ore. In un sito pulito e ben strutturato con una buona documentazione, la maggior parte delle modifiche e delle aggiunte può iniziare immediatamente senza ritardi. Nel tuo caso hai una sessione di preparazione di 3 ore prima che tutto possa accadere (in base a ciò che hai descritto)

Inoltre, prova a trovare un'analogia del mondo reale che il tuo capo possa capire. Spiega come lavorare su codice non documentato è come cercare di trovare qualcosa in una credenza piena di barattoli non di vetro che non hanno etichette.

Generalmente una revisione completa di un sito non è mai (finanziariamente) praticabile. Ho quasi sempre dovuto scendere a compromessi per apportare modifiche a soluzioni inadeguate man mano che si toccava il codice base per evitare di perdere troppo tempo di produttività per il ri-factoring. La pulizia del codice non è quasi mai consentita da un punto di vista dei costi, generalmente si verifica come un effetto collaterale passivo del contatto con qualcos'altro che deve essere migliorato.

    
risposta data 20.02.2012 - 11:10
fonte
3

Aiuterà il tuo caso quando mostrerai una sorta di percorso di transizione. Evoluzione non rivoluzione.

In questo modo la decisione diventa meno rischiosa.

    
risposta data 20.02.2012 - 13:45
fonte

Leggi altre domande sui tag