Sono appena assunto da un'azienda. Dopo un paio di settimane, ho sentito molto tempo che c'è un grande progetto che la maggior parte dei programmatori sta lavorando su di esso. Lo chiamano qualcosa come Managing Everything Software. Poi, in qualche modo ho ottenuto il documento che definiscono ciò che farà il MES. Il documento stesso era di 60 pagine ma contiene solo su ciò che fa, non come fa .
Il documento descrive semplicemente le proprietà di questi software:
- Enterprise Resource Planning (ERP),
- Sistema di gestione delle risorse umane (HRMS),
- Content Management System (CMS),
- Learning Content Management System (LCMS),
- Piattaforma social aziendale,
- Sistema di gestione del flusso di lavoro e dei documenti,
- Sistema di gestione file che può cercare su qualsiasi tipo di file come PDF, Word, ecc. (come la ricerca elastica)
- Autenticazione e autorizzazione basate su LDAP
Non solo, tutti questi saranno collegati tra loro.
Potrebbe sembrare che si tratti di progetti software diversi, ma non lo sono. Il progetto è, per fare tutto questo con un unico grande software:
Molti di voi già conoscono il metodo divide and conquer da applicare allo sviluppo del software. Se fosse io, dividerei questi compiti in piccoli pezzi. Quindi definire le tabelle del database per ogni pezzo. Ogni pezzo sarebbe responsabile per i propri dati. Nessun'altra parte avrebbe accesso diretto a quei tavoli che appartengono a un altro pezzo di programma. Se hanno bisogno di accedervi, chiedono al programma responsabile di farlo. Questa è praticamente un'architettura della SOA. Ma il modo in cui questo grande progetto è scritto, non menziona mai quei pezzi né come saranno i collegamenti tra loro. Secondo la documentazione, ogni parte può vedere o modificare qualsiasi tabella (se autorizzata).
Dato che le persone sono così coinvolte in ciò che il software raggiungerà, sembrano praticamente in una posizione che hanno ridotto la visione. Il progetto si riflette come una pallottola d'argento per tutti i problemi. Devo dire loro che dovremmo suddividere il progetto in piccoli e collegarli come in SOA e questo renderà tutto molto più facile. Ma il problema è che non so come convincerli che il loro approccio non è il modo migliore per farlo. Devo fornire prove solide, fonti, libri, link e forse video per convincerli che questo non funzionerà.
Non sono riuscito a trovare alcun documento per supportarmi (dal momento che il mio inglese non è così bello per cercare su Internet cose non tecniche). Puoi fornire qualsiasi informazione sul perché fare tutto con un progetto software è sbagliato?