Come convincere il cliente che il back-end della sua applicazione ha bisogno di una riscrittura?

4

Ho supportato un'applicazione winform LOB per un cliente negli ultimi 3 anni. L'applicazione è costruita con una semplice architettura monolitica e utilizza .NET 2.0.

L'applicazione è una parte fondamentale delle loro operazioni e la sua longevità è fondamentale. Ha bisogno di evolversi con i loro processi di business in evoluzione, oltre a implementare funzionalità migliorate, ecc .... questo mi porta a credere che questa applicazione abbia bisogno di una revisione di sorta sul back-end.

Il problema sta cambiando un back-end è "invisibile" ... cioè. l'utente non lo vede mai realmente. È una qualità del sistema che sta cambiando (stabilità, manutenibilità, affidabilità, longevità), non un requisito funzionale che sarà facilmente visibile ... vale a dire. il ROI non è ovvio.

C'è anche un sacco di nuove funzionalità da aggiungere al front-end (esperienza utente). Sto considerando una strategia per cambiare il back-end nel tempo ... cioè. quando apporti una modifica o aggiungi una funzionalità al front-end, cambia i componenti nel back-end interessati, alla fine ottieni tutto.

Come faccio a convincere il cliente che abbiamo bisogno di ricostruire il back-end?

    
posta richard 28.06.2012 - 10:57
fonte

4 risposte

14

Se lo discuti nel modo in cui viene posta la domanda, non puoi. Quello che il cliente sentirà è "bla bla bla, voglio giocare con un nuovo giocattolo brillante, bla bla bla, ti costerà un mucchio di soldi, bla bla bla"

Ciò che devi fare è inserirlo nel contesto di ciò che è importante per loro. "Il back-end sta arrivando alla fine della sua vita lavorativa, se si vuole continuare a fornire servizi di base ai propri utenti finali in modo economicamente conveniente e avere la capacità di supportare le nuove funzionalità che si aspettano e sfruttare il più veloce ed economico cicli di sviluppo forniti da strumenti moderni, è necessario pianificare un percorso di migrazione verso una piattaforma più moderna che si scalerà bene. Sono più che felice di mettere insieme una proposta "

Se hai bisogno di parlare di tecnologia in questa fase, dovrai (e dovresti) perdere. Un sacco di sistemi mission-critical sono stati scritti 20 o 40 anni fa, e nonostante il retorico, è più conveniente pagare i programmatori Cobol che ricostruirlo usando [Inserisci l'ultima parola buzz / pallottola d'argento qui]

Leggi Cose che non dovresti mai fare, parte I

    
risposta data 28.06.2012 - 11:11
fonte
8

when making a change or adding a feature to the front-end, change those components in the back-end that are affected, eventually you get to everything.

How do I convince the client that we need to rebuild the back-end?

Queste due dichiarazioni sembrano in contrasto con me. Una riscrittura è molto diversa dall'evoluzione di un'applicazione tale che è diversa tra un anno. Una riscrittura completa è quasi un fallimento garantito.

Non dirai loro che riscriverà il back-end. Fai esattamente quello che hai detto prima, correggi il codice in decomposizione mentre ti avvicini. Alla fine il back-end potrebbe evolvere in qualcos'altro, ma un riscrittura completo significa 1) Il loro "nuovo" back-end non funzionerà a lungo 2) Il loro back-end esistente non verrà risolto per molto tempo. È una situazione di sconfitta per fare una riscrittura completa.

    
risposta data 28.06.2012 - 11:14
fonte
5

Mostrando loro come risparmieranno o guadagneranno di più facendo questa riscrittura, e dal momento che dici che è fondamentale per le loro operazioni - che non saranno disturbati in alcun modo mentre la riscrittura sta succedendo.

    
risposta data 28.06.2012 - 11:04
fonte
0

Una riscrittura non è la stessa di un reengineer.

Ho postato questo in altre domande simili.

Questo grafico potrebbe aiutare a vendere l'idea di un rewrite / replace / reengineer, è una funzione della qualità del codice base e del valore commerciale dell'applicazione:

    
risposta data 26.12.2012 - 23:02
fonte

Leggi altre domande sui tag