Comunicazione con i fornitori

2

Siamo un piccolo team di software (per quanto riguarda i programmatori) e abbiamo un team di venditori dall'altra parte del mondo che programma per noi. Possediamo il prodotto e semplicemente dettiamo loro alcune delle attività su cui lavorare. Sono uno dei programmatori principali e anche il project manager di questo particolare progetto, quindi sono un requisito di programmazione e di realizzazione, oltre a delinearli.

Ho difficoltà a comunicare con i venditori esattamente cosa ci si aspetta da loro. Lasciatemi dire che siamo abbastanza nuovi in questo e non ho molta esperienza nel guidare una squadra di venditori, specialmente quando è difficile comunicare verbalmente in inglese, e lavorano durante la mia notte e poi vengo codice che hanno spinto mentre stavo dormendo. Il problema è che finisco per passare un sacco della mia giornata a controllare cosa hanno fatto e a correggere bug e casi a cui non pensavano. Non sono pensatori, fanno esattamente quello che dico loro, e niente più o meno. Il più delle volte, mi sento come se fosse più facile farlo da solo.

La mia domanda è: come può comunicare la maggior parte dei team? In questo momento abbiamo riunioni telefoniche settimanali e le invio via e-mail ogni notte i progressi che ho fatto, così come quello che ci si aspetta da loro. Quando penso "come comunicare con altri programmatori" la risposta sembra essere UML. Questo è quello che è. Sicuramente ho molta familiarità con UML, l'ho imparato a scuola, ma non l'ho mai usato sul posto di lavoro. Non è qualcosa che facciamo, in realtà i requisiti per un compito sono in testa al mio manager. Posso inserirli in un foglio di calcolo o in un diagramma di flusso, ma mai in un diagramma ufficiale.

UML è in realtà utilizzato da team come questo? In tutta la realtà, mi sembra di aver imparato tanto a scuola che nessuno lo fa davvero. Se sì, quali diagrammi sono i più utili / usati? Dalla mia conoscenza, in questo progetto in cui stiamo rinnovando qualcosa che esiste già nel sistema da cima a fondo, sento che il seguente sarebbe un buon approccio:

  • Crea un diagramma ER veloce contenente le entità aggiunte / aggiornate / utilizzate nel progetto.
  • Crea un modello di caso d'uso dettagliato , definendo chiaramente e numerando ogni caso d'uso.
  • Crea un diagramma di sequenza per i casi d'uso complessi (così come i loro flussi alternativi) per mostrare esattamente cosa ci si aspetta da ogni passaggio.

Credo che questo sarebbe un buon inizio. Al giorno d'oggi non realizziamo un buon lavoro nel catturare i requisiti, iniziamo a iniziare la codifica basandoci su qualcosa che abbiamo redatto su una lavagna bianca. Ovviamente anche questo deve cambiare, per evitare di ottenere una settimana in un progetto e rendersi conto che abbiamo dimenticato qualcosa.

Quali sono i tuoi suggerimenti / esperienza? Sfortunatamente siamo un po 'ciechi e non abbiamo mai visto nessuno abbastanza esperto in queste situazioni. Voglio che il progetto sia un successo, ma non posso continuare a fare errori (comprensibilmente) ai fornitori perché presumo che conoscano X o Y. Come posso utilizzarli in modo più efficace?

    
posta user1767270 15.03.2014 - 20:27
fonte

1 risposta

4

Essendo stato nella tua situazione in alcune occasioni, ho trovato che i diagrammi UML e simili non sono un buon modo per andare. Tendono ad essere eccessivamente complessi e molto più difficili da comunicare - ora il tuo pubblico non deve solo capire quello che hai detto in inglese, devono anche avere familiarità con i diagrammi UML e sapere come applicarli al lavoro che stanno facendo. facendo.

L'obiettivo non è quello di trovare quelli che consideri più puliti / più concisi / i modi più accurati per scrivere le tue istruzioni, ma per assicurarti che le tue istruzioni siano più facili da capire / seguire per un non di lingua inglese pubblico, questo è il prodotto di un diverso sistema educativo. Con questo in mente, i diagrammi UML aiuteranno solo se il tuo pubblico di destinazione è in grado di capirli meglio di quello parlato / scritto in inglese.

I seguenti approcci / idee hanno funzionato per me:

  • Sei bloccato a essere un project manager. Potrebbe essere necessario accettare questo significa un insieme completamente diverso di abilità, lavoro, ecc. Che ti troverai ad usare: una descrizione del lavoro diversa da quella di uno sviluppatore di software. Potrebbe anche essere necessario accettare (e spiegare a eventuali supervisori a cui si sta riferendo) che si tratta di un lavoro che richiede molto tempo: è possibile evitare di dover riscrivere il proprio codice, ma c'è altro lavoro che si dovrà fare, che avrà un impatto il tuo lavoro come sviluppatore di software

  • Assicurati di parlare regolarmente con le persone che stanno effettivamente scrivendo il tuo codice - prova ad eliminare il / i livello / i intermedio / i di gestione.

Ciò potrebbe significare optare per un approccio di micro-gestione più coinvolgente (ad esempio, stand up in stile agile quotidiano, in cui si fanno chat video con i team di sviluppo in gruppi di meno di 7 e si fanno report su ciò che hanno fatto oggi, su cosa sono bloccati, cosa faranno domani). Oppure potrebbe significare cercare di convincere gli sviluppatori principali a presentarsi alle riunioni settimanali e coinvolgerli nella discussione sul codice che hanno scritto / stanno per scrivere. Forse puoi metterli nella tua lista dei contatti della chat e, quando rileggi il codice del loro lavoro, chiedi loro direttamente sul codice che hanno scritto; coltivare una relazione amichevole

L'obiettivo è di aprire più canali di comunicazione - in modo che le persone che stanno effettivamente scrivendo il codice capiscano che (a) li stai tenendo ad uno standard più elevato, (b) ti preoccupi veramente di loro, e il lavoro che stanno facendo e (c) rendersi disponibili più facilmente / rapidamente per qualsiasi domanda abbiano quando interpretano le tue istruzioni.

  • Impara a parlare della "loro" versione inglese. Una comunicazione più frequente dovrebbe aiutare con questo: esporsi a tante persone diverse sull'altro, parlare di cose con cui sei intimamente familiare, e cercare di prestare attenzione a / prendere idiomi, espressioni, ecc ... che loro stanno usando - e quindi li usano per descrivere i tuoi requisiti.

  • Aggiungi test unitari al tuo elenco di requisiti. Invitali a scrivere un quadro di test unitario e a scrivere test unitari per ciascuna storia: è spesso più facile inviare un test unitario extra e chiedere che sia verde, piuttosto che spiegare quello che vuoi; forse non tutti quelli che parlano parlano inglese, ma tutti i soggetti coinvolti dovrebbero, teoricamente, parlare di codice.

  • Assicurati di includere UAT con ogni descrizione della storia, non solo i requisiti. Utilizza un modello standard - "Come {descrizione utente} voglio fare {qualche azione} che si traduce in {specifica descrizione del risultato}". Chiedi loro di fornirti test che dimostrino che il codice fa effettivamente ciò che gli hai chiesto di fare - anche in questo caso, potrebbe essere più veloce / più facile modificare i test e inviarli di nuovo, piuttosto che ripeterti te stesso

  • La maggior parte dei capi di outsourcing sono estrinsecamente motivati; ci sono dentro per i soldi. Per il lavoro di sviluppo, specialmente se richiede creatività, questa è una grande rovina. O dividi il lavoro in modo che tutto ciò che mandi loro sia un tipo di lavoro facile per le persone che ci lavorano solo per fare soldi (un lavoro che non considera il pensiero creativo l'ideale) o per far sì che siano più intrinsecamente motivato.

Per l'ultimo bit - la frutta bassa sospesa include il passaggio alla chat video per tutte le comunicazioni; imparare cose come vacanze, compleanni, ecc ... e menzionarle per le chiamate; rendendola un punto per evidenziare il lavoro particolarmente ben fatto individualmente, e con un po 'di ritardo - e mettendo in evidenza bug / problemi non appena vengono scoperti, e con un tono di voce di approccio al gioco di squadra ("ecco un bug - possiamo aggiustarlo? "contro" chi ha scritto questo? sam? dude, il tuo codice qui è stato fantastico! "), ecc ... Se riesci a conoscere gli sviluppatori, dovrebbe essere d'aiuto - scopri cosa a ciascuno piace del lavoro che stai inviando e vedere se puoi aiutarli a fare i bit che preferiscono.

    
risposta data 15.03.2014 - 22:27
fonte