Sviluppo di un grande sistema in una piccola azienda [duplicato]

1

Lo sto facendo in modo anonimo.

La nostra azienda produce alcuni tipi di macchine e ha anche un reparto software, di cui faccio parte. La nostra filosofia è principalmente quella di avere software e componenti interni della macchina anziché di terze parti laddove ragionevoli, in modo da poter implementare rapidamente i requisiti dei clienti.

Di recente, è stata presa la decisione di implementare un piccolo sistema di pianificazione delle risorse di produzione (con Bill of material, Material pianificazione dei requisiti, pianificazione della capacità, ecc., tutti integrati con le nostre macchine.

In breve, il cliente inserirà tutti i suoi orari di lavoro, le diverse operazioni di produzione e le loro capacità, le capacità di trasporto tra di loro, le operazioni nell'ordine e il tempo necessario per la produzione di un determinato articolo o assemblaggio, le scadenze per gli ordini interni, ecc. e poi il sistema dirà al cliente un piano di produzione - quali sono gli operatori in ogni mfg. post devono fare, con rapporti su sovra e sotto capacità, stime di tempo e così via.

Suppongo che ci sia anche una visione che renderemo questo software universale in grado di adattarsi alle diverse esigenze dei clienti, quindi ne venderemo molti.

Stiamo cercando di aggiungere valore alla macchina, quindi i clienti avranno solo bisogno di acquistare questa roba da noi e non dovranno pagare alcune decine di software / decine di migliaia per un vero ERP. Lo venderemo principalmente a società più piccole (decine di dipendenti), che non possono permettersi un ERP reale e avranno tutti i vantaggi della pianificazione della produzione automatizzata per una frazione del costo.

Tuttavia, ho la sensazione che sia sottotono il motivo per cui questo tipo di software costa così tanto al posto della comune avidità dei fornitori - è complesso, richiede tempo per svilupparsi. Sono anche preoccupato per il fattore "spazzatura dentro, spazzatura" - che il sistema non sarà in grado di produrre alcun risultato ragionevole a meno che gli input siano quasi perfettamente corretti, e non sono sicuro che sia possibile applicare questo livello di burocrazia e spese generali in società più piccole.

I poteri che si pensa che tutte le parti di questo sistema siano gestibili (e hanno già disegnato i modelli di interfaccia utente per gli schermi) e non ci saranno problemi. Forse sono io quello che sopravvaluta, ma non lo so ... Abbiamo già implementato una piccola parte di questo e ci sono voluti circa 2 anni per portarlo a un livello accettabile.

La mia più grande preoccupazione è la sottovalutazione dei tempi di sviluppo per questo tipo di sistema. In realtà, abbiamo circa 3 sviluppatori, uno con un contratto part-time, e forse assumeremo un altro sviluppatore a tempo pieno, quindi circa 3 ragazzi e mezzo in totale. Nessuno ha precedenti esperienze con qualcosa di questa scala, avremo molti più dati, avremo bisogno di più opzioni di personalizzazione, database più grandi e algoritmi migliori quindi ci saranno trappole in attesa ovunque.

Tutto questo è irragionevole? Come dovrei esprimere la mia preoccupazione ai miei superiori? L'opposizione a questo tipo di progetto sembrerà pessima e mi farà sembrare poco disposto o impaurito?

    
posta user125650 03.04.2014 - 07:45
fonte

2 risposte

3

Non è possibile dare una risposta perfetta senza dettagli specifici. Tuttavia, potrei fare alcune osservazioni generali.

Sì, un software di questo tipo è complesso da implementare. Richiede molto tempo per i programmatori, ma ancora di più richiede un tipo di ruolo analista dei processi di business in grado di mappare i processi al software. Questo è spesso la carne del lavoro e dove la maggior parte della complessità si nasconde. Al giorno d'oggi la decisione viene generalmente presa per ridurre al minimo le modifiche al software per adattarsi ai processi, in favore della modifica dei processi per adattarsi al software. Il ragionamento è che ciò semplificherà enormemente gli aggiornamenti futuri del software. Quindi preparati a cambiare il modo di fare le cose.

Sulla base del fatto che ci sono voluti 2 anni per stabilizzare una piccola parte di questo sistema è (probabilmente) ragionevole estrapolare che implementare una parte molto più grande di questo sistema richiederà molto più tempo.

A volte è meglio vivere con un sistema imperfetto che funzioni.

    
risposta data 03.04.2014 - 09:40
fonte
1

All'inizio potresti provare a raccogliere i diversi requisiti di tutti gli stakeholder in un workshop di brainstorming. Normalmente questo è un buon punto di partenza per avere una prima panoramica su tutte le diverse aspettative e casi d'uso. Con questo puoi iniziare a sviluppare una prima immagine globale del sistema. È molto più facile discutere delle tue preoccupazioni quando conosci qualche altro aspetto del sistema che dovresti costruire.

E cerca di evitare un modello a cascata. Cerca di imparare il più possibile sullo sviluppo Agile, sullo sviluppo basato sui test e sull'integrazione continua. Perché?

  1. L'utilizzo di un approccio agile come Scrum ti costringerà a eseguire iterazioni con una timeline fissa (ad esempio, usiamo 3 settimane).
  2. Dopo tre settimane devi mostrare i risultati ai tuoi clienti e si spera che siano felici dei risultati
  3. È molto più facile reagire ai nuovi requisiti in entrata del tuo stakeholder perché li incontrerai dopo ogni sprint (è più facile cambiare la tua focalizzazione dopo 3 settimane che dopo mezzo anno).
  4. Puoi ricevere rapidamente un feedback dai tuoi stakeholder quando cambiano opinione (e normalmente lo faranno).
  5. In questo modo i test ti forniranno una risposta su quale parte del tuo sistema è stata interrotta dopo l'implementazione dei nuovi requisiti / user story.
  6. L'approccio all'integrazione continua può aiutarti a vedere se la tua build è rotta, le unittests sono rosse o altre cose sono andate storte dopo ogni commit / baseline.
  7. Questo rende il tuo sistema molto più stabile e non avrai paura di cambiare le cose.
  8. Tutti questi punti ti aiutano ad avere un sistema funzionante tutto il tempo. Anche se devi distribuire qualcosa, sai che il tuo sistema ha già un valore.
risposta data 03.04.2014 - 09:43
fonte