Devo ri-progettare l'app Web del cliente?

0

Ho ereditato un progetto che è accumulato, strato su strato, come una perla negli ultimi sei anni. È iniziato come una pagina Web per consentire al cliente di verificare lo stato del proprio lavoro in produzione, ed è diventato un vero e proprio sistema di carrello degli acquisti con una varietà di funzionalità specifiche del dominio, che implicano la visualizzazione di grafica personalizzata. Niente di estremamente impegnativo, anche se con molti elementi piuttosto particolari per questo client.

Il problema è che il codice è super crufty, il che non è sorprendente considerando il suo patrimonio: è come una gigantesca palla di nastro adesivo a questo punto, incluso lo schema del database; ed è davvero difficile avvolgere la testa per questo motivo, e anche perché gli sviluppatori che ne erano stati incaricati negli ultimi sei anni non erano sviluppatori web e in qualche modo hanno inventato tutto mentre andavano.

Comunque, il sistema ha successo e è utile, e al cliente piace, al punto che regolarmente vogliono aggiungere nuove cose ad esso. Ma è davvero difficile aggiungere nuove cose perché è fragile, e sono sempre più incline a eliminare tutti i nuovi sviluppi sulla vecchia base di codice e riscrivere la cosa in Rails (è tutto PHP personalizzato al momento). La domanda è, dovrebbe I?

Ragioni contrarie:

  • È sempre più lavoro ridisegnare un'applicazione di quanto pensi possa essere
  • Soprattutto quando lo stai rifacendo in una lingua diversa e in un framework diverso
  • Il mantenimento di due basi di codice (per un po ') sarà un lavoro extra
  • Potrebbe essere meglio riscrivere in modo incrementale, tenerlo in PHP e riprogettarlo mentre andiamo

Motivi per:

  • A questo punto l'aggiunta di nuove funzionalità richiede di dividere la cosa e cercare di capire cosa ho rotto. Una riprogettazione si ripagherebbe in breve tempo, quando questo processo divenne più regolare e meno caotico

  • Le esigenze del cliente sono cambiate sostanzialmente negli ultimi sei anni, e sarebbe bello vederle riflesse dall'inizio nell'architettura

  • Entrare in un framework popolare e ampiamente supportato e ben compreso ci darà il lusso di non reinventare la ruota per ogni parte del sistema e consentirci di utilizzare componenti di alta qualità che altre persone hanno fatto

Ad ogni modo, ottieni il punto. Mi alternano tra ciò che penso sia la cosa giusta da fare. Ho sviluppato un buon rapporto con il cliente e hanno fiducia in me, quindi probabilmente faranno ciò che raccomando. Qualcuno che è stato qui prima ha qualche consiglio?

    
posta shanusmagnus 16.04.2011 - 07:40
fonte

2 risposte

1

Ero nella stessa identica situazione in cui ti trovavi adesso. Mi è stato chiaro che i tipi di cambiamenti che volevano non si adattavano al sistema esistente, quindi ho esaminato le possibilità e alla fine ho proposto che valesse la pena di farmi ricostruire o ridefinire l'intero sistema per consentire questo tipo di i cambiamenti. Il CoO lo ha assunto con il Presidente. Circa otto mesi dopo hanno acquistato una soluzione commerciale senza consulenze tecniche che facevano meno del sistema esistente e richiedevano più sforzi per supportare e ancora non potevano fare ciò che volevano.

Quindi, fai attenzione a ciò che dici sulla necessità di sostituire il sistema esistente. Usa parole come "refactor" invece di "replace".

    
risposta data 16.04.2011 - 08:06
fonte
0

Se hai la visione e il coraggio di riscrivere il progetto, allora vai avanti e fallo, tuttavia ...

Hofstadter's Law: It always takes longer than you expect, even when you take into account Hofstadter's Law.

    
risposta data 16.04.2011 - 07:48
fonte

Leggi altre domande sui tag