Soluzione software del 2000, dovrei provare a correggere o rifare il tutto?

9

Sono stato inviato per discutere di un sistema che una determinata azienda attualmente utilizza e che cosa dovrebbe essere fatto con esso.

L'azienda produce vari espositori di cartone. Questo sistema è stato sviluppato per tenere traccia di clienti, ordini e prezzi. Molti sono successi da quando il sistema è stato creato e il sistema è ora, come il manager ha descritto, " bloccato " e " problematico ", che traduco come "non dinamico" "e" unstable ".

Alcune informazioni sul sistema

  • È stato sviluppato intorno all'anno 2000
  • Sistema abbastanza piccolo, 2-5 utenti, 6 moduli, ~ 8 tabelle con quantità medie di dati
  • Costruito su Visual Basic, forme create con il design drag and drop. L'interfaccia è fondamentalmente solo una finestra con un menu e alcune forme
  • Utilizza il database MSSQL (server SQL2005) per archiviare dati e driver ODBC per la query, i dati sono stati migrati da excel prima di questo sistema, e prima di Excel è stato gestito, calcolato e scritto a mano e su carta
  • Gli utenti lavorano in ambiente Microsoft XP (e versioni successive)

Il loro problema principale è che non possono aggiustare e calcolare i prezzi, non possono aggiungere nuovi tipi di cartone ecc. correttamente perché non possono (o meglio, non sanno come) toccare i dati sul server.

Ho suggerito 3 possibili soluzioni

  1. Tentativo di correggere il sistema corrente
  2. Crea una nuova nuova interfaccia (preferibilmente ambiente simile, VB.net o VB based)
  3. Riportalo a una soluzione di Excel, considerando che è un sistema così piccolo

Potrebbero esserci più opzioni, ma queste sono quelle che potrei pensare.

Le mie domande sono

  • Cosa dovrei consigliare e perché?
  • Quali sono o potrebbero essere i pro e i contro di queste alternative?
  • Ci sono altre alternative (forse migliori)?
posta ShadowScripter 20.03.2012 - 11:53
fonte

6 risposte

5

Qualcosa con solo 6 forme e tale dovrebbe essere facile da ricostruire su una struttura più moderna. Ho lavorato con la migrazione di progetti VB6 con circa 200 moduli insieme a dozzine di classi e tabelle di database. Non sembra che tu stia guardando qualcosa di disordinato, ma l'aspetto può essere ingannevole.

Dovrei analizzare il codice, il database e i requisiti aziendali per dire se la riscrittura o il refactoring della base di codice esistente sarebbe la cosa migliore. Dato quello che hai detto, mi piacerebbe una riscrittura. Ma potrebbero esserci difficoltà nascoste che non vedi in questo momento.

    
risposta data 20.03.2012 - 12:39
fonte
5

Ho un parere leggermente diverso dalla maggior parte delle risposte fino ad ora.

Attempt to patch the current system

Vorrei almeno imparare il sistema attuale abbastanza bene da spiegare al cliente come usarlo. Vorrei prendere questo tempo per spiegare i difetti del loro sistema attuale, evitare parole negative, solo dire loro cosa non può fare anche se tutti i bug conosciuti sono stati corretti.

Create a fresh new interface (preferably similar environment, VB.net or VB based)

Dopo aver imparato tutto ciò che è possibile con la loro attuale configurazione. Fornire loro opzioni, se è possibile affrontare le loro preoccupazioni con il loro sistema attuale, non c'è davvero nulla di sbagliato nel loro sistema attuale. L'unica preoccupazione, ovviamente, è che il supporto di Visual Basic 6 potrebbe non esistere tra 5 anni.

Un'altra preoccupazione è il modo in cui comunica con il database. Microsoft si sta lentamente sbarazzando di alcuni dei vecchi modi di comunicare con i suoi prodotti di database (Access, MSSQL) così il modo in cui interagisci con questi prodotti determinerà se la soluzione può essere utilizzata su Windows 9 e Windows 10 in futuro.

Questa risposta dipende interamente dal fatto che hanno la fonte per l'applicazione stessa. Se non hanno la fonte, sarà difficile rispondere alle loro preoccupazioni, correggere i principali bug attuali o persino renderli uno strumento che possono effettivamente utilizzare.

Non credo che ci sia qualcosa di "sbagliato" con un'applicazione di Visual Basic 6, oltre al fatto che il suo supporto per le versioni future è sconosciuto. Anche oggi con i sistemi operativi Windows 7 e 64-bit è sempre più difficile da supportare. Questa è una delle ragioni principali per cui riscrivere in un linguaggio moderno con il supporto a 64 bit appropriato potrebbe essere una buona idea.

Se non hanno la sorgente in quel momento, una riscrittura è davvero la loro unica soluzione.

    
risposta data 20.03.2012 - 12:59
fonte
1

Riscrivere l'interfaccia è un'opzione eccellente, dato che il sistema è relativamente piccolo. I vantaggi sono -

  1. Stabilità migliorata (supponendo che tu la faccia bene!)
  2. Manutenzione migliorata
  3. Moderna interfaccia

Il principale svantaggio è che probabilmente continuerà a costare un bel po 'di più rispetto all'hacking del codice esistente.

    
risposta data 20.03.2012 - 12:13
fonte
1

Tenderei anche a riscrivere, ma devi essere sicuro al 100% che tu comprenda pienamente la funzionalità corrente e qualsiasi funzionalità che sia rotta, mancante o inadeguata. Questi ultimi due sono importanti perché hai menzionato la regolazione e il calcolo dei prezzi. Comprendi appieno le conseguenze dell'aggiunta di questa funzione?

Una volta ho lavorato su quello che doveva essere un "sito web", ma in realtà stava prendendo in consegna uno strumento di stile CRM basato su Access personalizzato dalla fine degli anni '90 e lo portavo nel mondo moderno basato sul web. Lo sviluppatore originale era scomparso da tempo, il Database era stato modificato mille volte, la documentazione originale era quindi obsoleta e nessuno ha veramente capito come funzionava il sistema. Ma sapevano come usarlo, giusto. Probabilmente l'80% del budget di questo progetto è andato su tre cose:

  • requisiti di raccolta
  • comprensione del sistema attuale
  • presentando uno schema di database significativo per come intendevano utilizzare il software

Il progetto è stato, finanziariamente, non un successo!

    
risposta data 20.03.2012 - 14:46
fonte
0

Un'altra opzione potrebbe essere un compromesso tra la riscrittura dell'intera cosa e l'hacking dell'applicazione esistente.

Offri loro la nuova funzionalità in una nuova applicazione creata da zero.

Potrebbe essere potenzialmente più facile da fare e non costare tanto quanto una riscrittura completa.

Una volta che questo è stato fatto e sono felici possono aggiungere / aggiornare i dati, si apre la fase 2 di una fase potrebbe sostituire la funzionalità esistente nella nuova app.

Questo potrebbe essere un approccio più gradevole.

    
risposta data 20.03.2012 - 12:21
fonte
0

I riscrivi spesso tendono a esaurire il budget ... male.

Ma avere uno scheletro moderno per l'applicazione potrebbe essere un buon investimento, soprattutto se nessuno sa come funziona il vecchio sistema e se le cose si rompono non appena inizi a toccarle.

Inoltre, VB6 è dannoso per il supporto. Quando avrai bisogno di trovare specialisti in 10 anni, sarà piuttosto problematico.

    
risposta data 20.03.2012 - 18:12
fonte

Leggi altre domande sui tag