I sistemi integrati aumentano i tempi di sviluppo e causano inflessibilità?

0

Lavoro per una grande società finanziaria che gestisce denaro per migliaia di clienti. Questa azienda ha processi aziendali molto complessi e operano in un ambiente molto dinamico.

Si tratta di un'azienda piuttosto vecchia e nel corso degli anni hanno implementato molti sistemi eterogenei per automatizzare i processi all'interno dell'azienda.

Ci sono voci nell'azienda che potrebbe esserci uno sforzo per passare a "un sistema" (riscritto da zero) che consolida i molti disparati sistemi esistenti ora.

È sorto un dibattito che mette in discussione il valore di una tale mossa:
Un lato afferma che un singolo sistema è più semplice ed economico da mantenere grazie alla ridondanza notevolmente ridotta, ovvero logica aziendale fattorizzata correttamente, modello dati unificato, componenti UI riutilizzabili, ecc.

Altre parti affermano che l'azienda, i clienti e i prodotti (strumenti finanziari) sono troppo complessi e troppo dinamici per essere incasellati da un unico sistema. Un singolo sistema rischierà rotture in un componente quando ne viene modificato un altro. Non c'è alcun modo e motivo per consolidare la logica di business perché è troppo specifica per client e prodotto. Il tempo di implementare le modifiche aumenterà perché più componenti di livello superiore saranno interessati dalle modifiche apportate ai componenti di livello inferiore.

Domanda: La società dovrebbe cercare di investire tempo e risorse nella creazione di un modello di dati unificato, tenendo conto della logica aziendale e creando codice riutilizzabile a tutti i livelli? O dovrebbero "copiare e modificare" al fine di accelerare i tempi di sviluppo, ridurre le possibilità di regressione e ridurre la complessità? C'è un falso dilemma qui presentato (cioè ci sarà un cambiamento netto in un modo o nell'altro e una risposta necessariamente preclude un altro)? Per essere chiari, si tratta veramente di obiettivi e priorità a lungo termine , non di uno specifico design di prodotto. L'azienda non eliminerà mai una certa quantità di ridondanza e non sarebbe auspicabile che lo facessero.

    
posta Sam 27.03.2013 - 17:19
fonte

1 risposta

2

La tua comparazione sembra essere sbagliata. Stai parlando di:

1 grande sistema che gestisce tutto nel business

più sistemi che gestiscono tutte le parti separate dell'azienda

Ora il problema con questo è molto semplice: quel grande sistema non sarà UNO. Molto probabilmente sarà un gruppo di librerie, modelli, ecc. Che combinano lo spettacolo come una singola applicazione. Ma gli interni non saranno UNA COSE GRANDE.

Ora per rispondere:

Single system will risk breakages in one component when another is modified

Se hai due sistemi di comunicazione insieme hai lo stesso. In un'applicazione è ancora più semplice (interfacce e test di integrazione) per assicurarti che ciò non accada.

Should the company seek to invest time and resources in creating a unified data model, factoring business logic and creating reusable code at all layers?

Sembra impossibile. Forse quando il mondo si è fermato, potrebbe essere possibile avvolgere tutto in codice. In realtà: ciò non avrà successo. Avrai alcune parti più belle di altre. Che va alla tua prossima domanda:

Or should they "copy and modify" in order to speed development time, reduce the chance of regression, and reduce complexity?

Questo è un caso aziendale che dovresti definire per caso. Se riesci a fare un milione con una soluzione di copia-incolla la prossima settimana, potrebbe valerne la pena. Puoi sempre ridefinirlo ulteriormente in futuro.

Generalmente: chiedi una scelta che non è la vera scelta. Quello che mi aspetterei se legga la storia è: iniziare con questo progetto dall'inizio. Quindi con gli obiettivi aziendali in mente. Sulla base di ciò vedi quale risultato danno gli strumenti attuali. Quali dati condividono. Quindi confronta le opzioni per integrarle o sostituirle. È probabile che la sostituzione di tutto sia molto costosa quindi forse una soluzione ibrida è migliore. Mantenere il complesso ma buoni strumenti, integrare il resto. E quindi collegare gli strumenti complessi esistenti alla piattaforma generale.

Non sto menzionando nulla sulla scrittura da zero, abbastanza ricerche su quello disponibile.

    
risposta data 27.03.2013 - 21:25
fonte

Leggi altre domande sui tag