L'ultimo progetto sono stato il progettista del software. Tutto lo sviluppo era offshore. Abbiamo avuto successo. Quindi questo processo può funzionare.
Ho prodotto molta documentazione, ma non è stata affatto esaustiva e non è stata fornita istruzioni dettagliate o dettagliate fino ai nomi delle classi, ai nomi delle funzioni ecc. Ad esempio, ho prodotto diagrammi di sequenza, casi d'uso, flussi di lavoro, sistema e integrazione diragrammi, nonché una documentazione di progettazione più dettagliata in base alle esigenze.
Dipende davvero da quanto ti fidi dello sviluppo offshore. Confido che il mio team offshore sia sviluppatori competenti. Detto questo, ho fornito la direzione generale ma ho dato loro un margine di manovra per l'implementazione che il team offshore ha trovato piacevolmente soddisfacente. In passato erano più micro-gestiti. In alcune situazioni li guiderei usando gli schemi di progettazione secondo necessità. Ho anche eseguito periodicamente revisioni e analisi del codice sul codice che scrivevano e consiglierei il refactoring o ripulire gli sforzi. Inoltre, poiché alcuni membri del team hanno avuto incidenti con veicoli ricreativi, ho finito per scrivere alcune delle storie durante l'implementazione, dato che abbiamo finito per essere a corto di risorse.
Inoltre, penso che questo processo abbia davvero successo solo sulla base dei tuoi lead tecnici sul progetto e sulla comunicazione tra business, designer, lead e sviluppatori. Abbiamo passato molto tempo a esaminare ogni caratteristica e storia e ci siamo assicurati che i lead / risorse offshore fossero ben versati su quali fossero i requisiti. Se non stanno ponendo domande durante la revisione della funzione / storia, aspettatevi alcuni problemi. Inoltre, il lavoro non è stato considerato completo fino a quando non si è avuto un accordo commerciale. Ciò ha reso tutti responsabili in quanto tutto è stato monitorato in uno strumento che ha gestito lo sviluppo agile.
Come ha già accennato una delle altre risposte, il processo di sviluppo includeva standard di denominazione (regole del resharper integrate), copertura dei casi di test (ha usato TDD, Mocking, ecc.), Quindi se c'è un buon processo di codifica e procedure in atto aumenterà le tue possibilità per un progetto di successo.