Quali consigli puoi dare nella gestione di un team di tecnici di software remoti? [duplicare]

15

Sono uno sviluppatore di applicazioni Web che è anche responsabile della gestione di alcuni progetti, a volte devo gestire sviluppatori remoti, che lavorano per me in base al contratto. Sento che a volte è davvero difficile da gestire. Sto affrontando alcune strane situazioni. Ad esempio:

  • Una volta che uno sviluppatore non ha risposto per due giorni mentre dovevamo consegnare un progetto. (non ha partecipato alle chiamate o ha risposto alle e-mail)
  • Una volta che uno sviluppatore ha tentato un CMS con una soluzione statica (questo ha meno esperienza credo).
  • Una volta ho chiesto a uno sviluppatore di completare la funzionalità di ricerca, il giorno dopo ha detto di averlo fatto, ma quando ho guardato, non è stato fatto. Dopo aver chiesto di essere venuto a sapere che, aveva fatto la ricerca ma non la lista dei risultati di ricerca con la formattazione:) . (Immagino che non sia in grado di gestire il suo tempo mentre lavora da casa)

Quindi questo significa che non ho le persone giuste? O c'è un problema nella gestione dei progetti che devo coprire? Capisco che a volte possono accadere incomprensioni e quindi dobbiamo comunicare per iscritto usando uno strumento come unfuddle o basecamp, ma cosa possiamo fare ad esempio nelle situazioni sopra descritte? La persona che ha avuto almeno 2 anni di esperienza come sviluppatore.

Quindi in realtà voglio sapere: dov'è il problema? Sono un programmatore e so che i programmatori comprendono queste cose, quindi cosa dovrei fare in questi casi?

    
posta Hafiz 01.08.2011 - 18:33
fonte

8 risposte

22

Non conosco la tua situazione precisa, quindi è molto difficile dire cosa sta succedendo. Tuttavia, qui alcuni elementi che possono o non possono applicarsi a voi:

1. Comunicazione

comunichi chiaramente le tue idee? Voglio dire, sei sicuro che questi sviluppatori capiscano correttamente qual è il lavoro da fare?

2. Gestione

Chiedere di fare qualcosa potrebbe non essere sufficiente. Su progetti di grandi dimensioni, hai requisiti funzionali / non funzionali, test di accettazione, ecc. Tutto questo non è solo per perdere tempo; è utile essere chiari sulle aspettative e assicurarsi che tali aspettative siano soddisfatte. Forse dovresti usare di più le tecniche utilizzate nella gestione del progetto reale.

3. Rimanere in contatto con gli sviluppatori

Se lasci uno sviluppatore in libertà, è probabile che non sarà sotto pressione per terminare il lavoro. È come quelle storie sugli stagisti del Daily WTF: chiedi allo stagista di fare qualcosa, ti dimentichi di questo stagista, e qualche settimana dopo, scopri che il lavoro non è fatto e la persona sta facendo qualcosa di stranamente diverso perché lui aveva paura di chiedere spiegazioni.

4. Monitoraggio

È una buona idea non solo rimanere connessi, ma anche tenere d'occhio regolarmente ciò che è stato fatto. Chiedere agli sviluppatori di impegnarsi sul tuo server di controllo delle versioni è una buona idea: non solo ricevi gli aggiornamenti ogni giorno e puoi prendere rapidamente le misure necessarie se vedi che qualcosa va storto, ma costringe anche gli sviluppatori a lavorare fin dall'inizio, e non mantenere il lavoro per l'ultimo giorno.

Un'altra tecnica è chiedere allo sviluppatore di riferirti ogni giorno sul lavoro svolto telefonicamente o tramite una videoconferenza. Odio questo e non funzionerebbe mai per qualcuno che mi chiede di farlo, ma potrebbe funzionare molto bene con altri sviluppatori.

    
risposta data 01.08.2011 - 18:53
fonte
3

Penso che questo faccia parte dell'assunzione di un libero professionista. Ed ecco perché, ottenendo le risposte e il lavoro che desideri da un individuo, dando loro un po 'di tempo per capire come ti aspetti che le cose siano fatte, e ciò che vuoi, richiede tempo. Assumere freelance non sempre offre quel tempo.

Di solito mi piace stare con persone brave ad ascoltare e abbastanza abili. È un pane raro, ma cerco di trattarli bene. E apprezzo le abilità di là. Le persone che seguono la lettera tendono ad avere bisogno di una direzione più esplicita. Ci vuole un po 'più di tempo, ma preferisco questo. Allora so esattamente cosa viene fatto. Inoltre, non è possibile aggiungere le cose in un contratto dopo che è stato negoziato. Non puoi dire che hai dato per scontato che sapessero questo o quello. Assicurati che i dettagli siano coperti nel contratto.

L'altro aspetto delle cose è il contratto di "squadra". Questi ragazzi sono più propensi a fare le cose, ma spesso sono meno che professionali in termini di comunicazione. Sembrano come se dovessero vendere auto usate, senza occuparsi di un demografico ovviamente intelligente. La mia opinione qui non è una squadra, non importa quanto sia buona, e quanto sia facile il cartellino del prezzo, vale la pena affrontare un comportamento che è meno professionale.

Per quanto riguarda la mancata risposta, a meno che non siano a contratto non puoi dire molto a riguardo. Se lo sono, fa sapere loro che valuteranno la loro professionalità o comunicazione nella revisione del contratto. L'ambivalenza può essere avviata abbastanza velocemente con un sottile promemoria delle conseguenze.

Non essere troppo morbido, mantieni il talento, rifiuta l'arroganza. Questo lo riassume.

Paul V.

    
risposta data 02.08.2011 - 18:52
fonte
2

Una cosa pratica che faccio è pagare metà davanti, poi pago l'altra metà al completamento delle specifiche. Se non soddisfa le specifiche, non ottengono l'altra metà. Non faccio pagamenti orari illimitati in quanto ciò richiede problemi. Chiedo una stima oraria in anticipo e pago in base a quel numero. Se non lo fai, allora non hanno motivo di finire in tempo. L'unica chiave è che devi definire molto bene le tue aspettative e comunicarle agli sviluppatori. Inoltre, se assumo qualcuno per un progetto, e lui mi incula, non lo assumo mai più. Alla fine, ottieni alcuni freelance piuttosto bravi. Se li paghi bene e riesci a sopprimere i cattivi straordinari, scoprirai di avere clienti abituali che sono bravi e che cancelleranno il loro programma per i tuoi progetti.

Tutto questo è in aggiunta ai suggerimenti di @ MainMa.

    
risposta data 01.08.2011 - 19:02
fonte
2

Aiuto a gestire i team remoti per i nostri clienti e queste sono le migliori pratiche che seguiamo (basate su agile e scrum):

  1. Standup Skype giornalieri : ogni giorno il team completo sale su skype per 15 minuti per coordinare e collaborare. Discutiamo di ciò che abbiamo fatto ieri, cosa intendiamo fare oggi e se abbiamo ostacoli.
  2. Mantieni team coerenti : manteniamo le stesse persone coinvolte nel progetto in modo che possano sviluppare una relazione con il cliente e comprenderne veramente le esigenze. Non subappaltiamo parti diverse a persone diverse e quindi proviamo a gestirle separatamente. Devono operare come una singola squadra.
  3. Demo settimanali : seguiamo Sprum di Scrum di una settimana. È più breve di quanto piaccia a molti team Scrum, ma per noi è importante fare demo settimanali con i clienti. Demo che spesso è davvero fondamentale per i progetti remoti perché ci assicura che non andiamo troppo a lungo senza il feedback dei clienti. L'esempio che hai fornito dove hanno implementato la ricerca ma non lo stile di ricerca è qualcosa che sarebbe stato catturato in una di quelle demo regolari.
  4. Sessioni di pianificazione settimanali leggere su contratti dettagliati. Qualcun altro ha menzionato i contratti, ma nella mia esperienza non aiutano a definire chiaramente cosa deve fare il libero professionista. Probabilmente non puoi prevedere con certezza cosa devono fare settimane o mesi prima, quindi hai un contratto che ti rende molto chiaro quanto sei disposto a pagare all'ora e il tempo massimo che sei disposto a fatturare . Quindi aggiusta l'ambito ogni settimana e fornisci loro istruzioni chiare su quali sono le priorità più importanti per la prossima settimana e sulla tua definizione di "fatto" per quelle priorità. Ciò ti consente di gestire l'ambito mentre procedi, dare indicazioni chiare al team e rispettare il budget.

So che questa risposta va bene dopo il tuo post originale, quindi spero che tu abbia da tempo risolto le sfide del tuo particolare progetto. Ma volevo comunque rispondere nel caso fosse utile per gli altri che potrebbero imbattersi in questo articolo. Buona fortuna!

    
risposta data 15.07.2012 - 03:48
fonte
1

Devi chiedere alla persona che paga i salari quali saranno le tue aspettative sul tempo del consulente e cosa fare se non sei soddisfatto della qualità del lavoro. Una volta stabilito, tutti possono decidere se vogliono far parte di questo progetto. Non puoi stabilire regole specifiche per ogni singola piccola situazione, altrimenti ti controllerai continuamente e non otterrai nulla. Idealmente ognuno ha l'atteggiamento giusto e si comporta professionalmente. Personalmente, mi piacciono gli appaltatori che hanno abbastanza esperienza per essere in anticipo sui loro limiti di tempo e chiedere cosa mi aspetto. La mia dog sitter ha fatto in modo di avere una chiave in più del mio vicino, ho sempre lasciato i numeri di contatto quando sono in viaggio e ha una rete di altri professionisti disponibili in caso di emergenza. Quando si qualificano i clienti e si gestisce la logistica, questo mostra di sapere cosa si sta facendo e di cui ci si può fidare.

MIA per due giorni? Era il fine settimana?

    
risposta data 01.08.2011 - 19:49
fonte
1

A prima vista, i problemi che chiami hanno poco a che fare con il lavoro da remoto, e molto con il processo di intervista.

Interrogare risorse contrattuali e venditori è brutalmente difficile. Così difficile, infatti, che per i piccoli progetti che devono essere appaltati può essere più efficiente solo pensare ai primi due progetti come parte del processo di intervista, e considerare solo un fornitore affidabile dopo alcuni impegni di successo che riflettono le competenze chiave .

Ecco le principali attività di intervista che il mio team utilizza per i nuovi fornitori:

  1. Competenze tecniche: passiamo un'ora a guardare le nuove risorse per scrivere un codice per un problema che diamo loro all'inizio dell'ora (con software di condivisione dello schermo). Ci aspettiamo che gli sviluppatori siano in grado di scrivere codice e porre domande di chiarimento di alta qualità per assicurarsi che comprendano il compito loro assegnato. Ci aspettiamo anche eccezionali capacità di comunicazione: se non puoi scrivere codice e parlare del codice che stai scrivendo, non sarai in grado di collaborare in modo efficace.

  2. Abilità comunicative e amp; esperienza lavorativa: una volta che sappiamo che un candidato può scrivere il codice e parlare di quello che sta facendo, noi camminiamo attraverso il loro curriculum con loro e parliamo della loro precedente esperienza: hanno una vera esperienza di collaborazione? Cosa ha guidato finora le loro scelte professionali: il lavoro che dobbiamo fare è compatibile con i loro obiettivi professionali?

Alla fine del processo di intervista, stiamo cercando una risorsa che le persone stanno per litigare, qualcuno che vuoi ottenere sul tuo progetto. Se nessuno degli intervistatori è ansioso di ottenere il candidato nella propria squadra, non c'è una buona idea. Questo processo è strongmente ispirato dalla stesura di Joel Spolsky su come trovare persone intelligenti e che portino a termine le cose e sul libro di Brad Smart sul potenziamento.

Ora come i problemi che chiami:

  • Sviluppatore MIA: questo può accadere con sviluppatori virtuali o di persona, e di solito solo se non lo si è verificato attentamente. Se un venditore non si presenta quando si è impegnato a essere disponibile, il suo game over, se virtuale o IRL.
  • CMS con soluzione statica: quando offri un progetto a qualcuno che non ha l'esperienza richiesta, fallirà in ufficio o meno.
  • Lavoro non finito: ancora una volta, ho avuto un sacco di esperienza con gli sviluppatori che non finiscono il lavoro, sia in ufficio che virtualmente. Quasi sempre, questo è il risultato di uno screening tecnico insufficiente prima di dare a qualcuno un progetto.

In base alla mia esperienza, che comprende oltre 15 anni di lavoro sia in ufficio che in team virtuali, gli sviluppatori efficaci di solito sono produttivi e gli sviluppatori sprecati di tempo sono solitamente una perdita di tempo. Farò tutto ciò che è in mio potere per lavorare con sviluppatori efficaci e per supportarli con qualsiasi combinazione di lavoro virtuale e in ufficio che preferiscono. E se devo lavorare con sviluppatori sprecati, presumo che possano distruggere il valore e cercare di minimizzare il loro impatto fino a quando non posso eliminarli dal team, indipendentemente dal fatto che siano in ufficio o no.

    
risposta data 15.07.2012 - 23:11
fonte
1

Concentrati sulla creazione di opzioni per te stesso.

Se il progetto e il budget lo consentono, assumere più di un programmatore. Questo dovrebbe creare un sano livello di competizione, che è sempre buono. Ciò dovrebbe anche garantire che la conoscenza sia condivisa tra il team e aumenti la ridondanza.

    
risposta data 16.07.2012 - 09:34
fonte
0

So che oDesk ha una funzione che consente a PM di ottenere gli screengrabs mentre gli sviluppatori stanno codificando un progetto, tuttavia dalla mia esperienza diretta mi attengo ai programmatori indirizzati attraverso i miei contatti e evito l'outsourcing a tutti i costi a causa dei problemi logistici.

    
risposta data 01.08.2011 - 18:45
fonte

Leggi altre domande sui tag