Domanda:
Come misurare oggettivamente la cooperazione tra colleghi
hardmooth
2017-03-27 13:56:09 UTC
view on stackexchange narkive permalink

Lavoro nella garanzia della qualità di un'impresa di sviluppo software di medie dimensioni e il successo del mio team si basa principalmente sulla collaborazione di qualsiasi collega, sia all'interno che all'esterno del nostro team.
Molti colleghi sono molto collaborativi, ma abbastanza spesso è il caso che i colleghi

  • ignorino la nostra indicazione di risultati dei test non riusciti e assegnati personalmente,
  • ignorino le nostre richieste di bug nei loro progetti o moduli di loro responsabilità o
  • in primo luogo rispondi "lo esaminerò". e che mai fare rapporto

Siamo a un punto in cui questa mancanza di cooperazione è il principale ostacolo allo sviluppo dello sviluppo. La direzione ha già ascoltato le nostre lamentele e vorrebbe essere inclusa nella risoluzione della cooperativa problemi in futuro.

Tuttavia non voglio segnalare nulla di minore e sottrarre le (mie) valutazioni soggettive.
Inoltre, voglio mantenere una valutazione di un singolo incidente breve e con poco sforzo.
MODIFICA : Abbiamo un vero e proprio sistema di tracciamento dei problemi (redmine), ma cerca di non attutirlo creando un ticket per tutto (ad es. un test formale di codice fallito). In un numero sufficiente di casi, ci impegneremmo di più a monitorare il lavoro tramite i ticket che a essere effettivamente produttivi. È difficile trovare un equilibrio per mantenere un'elevata accettazione del bug tracker.


La mia domanda è:
Come possiamo, come squadra, misurare oggettivamente (mancanza di) cooperazione

  • come un team: qualsiasi membro del QA (siamo ~ 5) può contribuire alla valutazione di qualsiasi collega
  • misurare oggettivamente: le valutazioni si basano su incidenti tracciabili (raccolti)
  • (mancanza di) cooperazione: dovrebbe essere possibile aggiungere esempi positivi e negativi di cooperazione

In termini di riservatezza dei dati, desidero per mantenere tutte le informazioni sui colleghi internamente e non utilizzare alcuno strumento per la trasmissione dei dati nel WWW.


Vorrei creare un'istanza di un sistema,

  • in cui io e i membri del mio team possiamo eseguire il dump di singoli incidenti
    (ad esempio come Chi | Quando | Cosa | bello / problema?)
  • che può gestire sia la cooperazione come la sua mancanza
  • che unirà gli incidenti nel tempo passato (diciamo 6 mesi ) per collega
Crea un sistema di ticketing per i bug.Quando il bug è stato risolto, risolvi il ticket.Dare ai manager l'accesso a questo in modo che possano dare seguito a bug di vecchia data.
"Quando una misura diventa un obiettivo, cessa di essere una buona misura."- Legge di Goodhart.Stai molto attento a misurare qualcosa come la cooperazione.
Quindi identifichi i bug, li segnali agli sviluppatori, gli sviluppatori ti ignorano.Hai un sistema di tracciamento dei bug formale, ma non lo stai usando.La tua domanda è: come puoi tenere traccia delle tue segnalazioni di bug in modo da poter tenere conto degli sviluppatori e identificare quali sviluppatori non stanno risolvendo le tue richieste di bug?Cosa mi sto perdendo?Cosa significa "attutire" il sistema di tracciamento dei bug utilizzandolo per tracciare i bug?
@TessellatingHeckler usiamo il bug tracker, ma piuttosto per problemi di presunto impegno maggiore.Se passo più tempo a monitorare il mio lavoro che a farlo, la mia motivazione può andare in malora.
Quando ho usato un bug tracker, ci metto ogni piccola dannata cosa.Ecco a cosa serve.Quindi dai la priorità all'interno di questo.Quindi diventa uno strumento ricercabile e uno strumento per ritenere le persone responsabili.Stai parlando di monitorare la cooperazione quando potresti monitorare i bug, chi è responsabile, date e orari, progressi, ecc.e imparare / capire cosa sta succedendo con loro.In particolare come la definizione delle priorità sta causando il ritardo di alcuni elementi
Almeno una parte della mancanza di cooperazione sembra essere dovuta al fatto che non sono stati documentati i problemi nel sistema di monitoraggio.Tutti i dipartimenti sono d'accordo sul fatto che un sottoinsieme di problemi venga passato con il passaparola o il gruppo QA ha elaborato quel flusso di lavoro da solo e si aspettava semplicemente che gli altri dipartimenti lo accettassero?Anche se concordato, suggerisco * fortemente * poiché gli altri devono utilizzare il sistema di tracciamento dei problemi per tutto, poiché le questioni verbali tendono a cadere tra le fessure per una miriade di ragioni per lo più benigne.
Sette risposte:
user45590
2017-03-27 14:31:47 UTC
view on stackexchange narkive permalink

Sembra che il problema non sia "mancanza di cooperazione" ma mancanza di responsabilità.

Hai menzionato un paio di scenari in cui, apparentemente, qualcuno in un'altra squadra ha responsabilità chiara e inequivocabile per un problema. Non hanno gestito questo problema, eppure non sono stati ritenuti responsabili per questo. Il loro mancato completamento di un'attività non è stato evidenziato e presumibilmente (dal fatto che stai postando una domanda qui), la colpa è del tuo team.

Penso che il problema sia probabilmente qualcosa di più fondamentale con il tuo processo di sviluppo, piuttosto che poche persone "inutili". Nel mondo ideale, non vuoi un sistema basato su persone che svolgono il lavoro di altri team in modo utile. Vuoi un modo per assegnare chiaramente il lavoro alla persona giusta e assicurarti che ciò avvenga effettivamente.

La cooperazione potrebbe non essere effettivamente una buona metrica da scegliere come target. Quando un processo viene interrotto, le persone "utili" finiscono per essere la chiave, perché partecipano, indipendentemente dal fatto che si tratti di lavoro. Ciò garantisce che le cose vengano fatte, nonostante i problemi. Ma la disponibilità è in realtà un'arma a doppio taglio. Le persone più "cooperative" possono finire per aiutare gli altri così tanto da non portare a termine i propri compiti importanti. E possono anche servire come spugne per assorbire il lavoro di dipendenti pigri o incompetenti. Se miri alla cooperazione, alcuni comportamenti indesiderabili vengono considerati positivi.

È difficile dire di più sui problemi specifici della tua azienda senza maggiori dettagli sul tuo processo di sviluppo. Ma una cosa che mi viene in mente è che un software appropriato per il monitoraggio di progetti / problemi, utilizzato in modo appropriato, dovrebbe semplicemente evidenziare questi problemi come conseguenza del suo utilizzo.

In tale software, un test fallito o un bug in qualche parte del progetto porterebbe alla creazione di un problema con il nome di una persona o di un team su di esso. Questo problema potrebbe essere successivamente rintracciato e potresti utilizzarlo come prova del problema ("Come puoi vedere, abbiamo segnalato questo bug al team di frobulator un mese fa, ma non ci hanno ancora risposto con una risposta ... ").

Il software non è l'intera soluzione. Se usato correttamente, fornisce le prove di ciò che è (o non è) accaduto. Hai ancora bisogno che le persone agiscano in base a tali prove in modo appropriato.

Aggiornamento: poiché hai detto che hai già un bug tracker, un buon posto per concentrare i tuoi sforzi probabilmente sarà quello di utilizzarlo in modo più coerente.

abbiamo già un bug tracker in uso.Tendo a pensare, dovremmo usarlo per più cose.
@hardmooth Dovresti utilizzare il sistema di ticketing per * tutto * ciò che non va bene.Ogni sistema che ho usato ha avuto una priorità per ogni biglietto.Senza di ciò, hai un sistema di e-mail totalmente ad-hoc, che non è tracciabile.
+1 se tutti i bug vengono registrati, il problema scompare.Registra tutto, ecco perché c'è un campo "priorità", per elementi non importanti come gli altri.
inoltre, semplicemente assegnando un ticket a chiunque desideri agire, puoi creare responsabilità evidenziando quanto tempo le persone impiegano per gestire le cose in generale e ticket specifici in particolare
** Accettato come migliore risposta **: _Creare (+ assegnare) ticket_ per tutto ciò di cui abbiamo bisogno per tracciare e utilizzare il sistema di ticket in modo più coerente (e responsabilizzare i colleghi) sembra essere il modo _più obiettivo e pragmatico per assicurare l'elaborazione_ dei bug segnalati,indicazioni dai sistemi di test e richieste specifiche.La _necessità di tracciare_ per le indicazioni e le richieste di prova verrà dedotta da una risposta non soddisfacente per un tempo definito (chiedere, cosa-> promemoria, traccia).Una _misura di cooperazione sufficiente_ può essere implicita dal sistema di biglietteria, ma non sarà una priorità (come suggerito).
Joe Strazzere
2017-03-27 16:20:45 UTC
view on stackexchange narkive permalink

Abbiamo un vero e proprio sistema di tracciamento dei problemi (redmine), ma cerca di non attutirlo creando un ticket per tutto (ad esempio un test formale in stile codice fallito).

Questo è il tuo errore.

Non "attutisci" un sistema di monitoraggio dei problemi utilizzandolo. I rapporti sui problemi lo rendono solo più prezioso.

La tua fonte di alcune misure "oggettive" è qui. Ma funzionerà solo se lo usi.

Come misurare oggettivamente la cooperazione tra colleghi

Non capisco cosa ti aspetti di ottenere da un simile misurare. Dubito che esista veramente un modo "oggettivo" per misurare qualcosa di vago come "cooperazione".

Potresti iniziare scrivendo una definizione formale del termine "cooperazione", quindi elencando tanti casi quanti te questo può indicare casi positivi e negativi. Forse avrai una svolta in un modo o nell'altro.

Sospetto che scoprirai che la cooperazione è un termine soggettivo. Ciò che un individuo contrassegnerebbe come non cooperativo, un altro no. E se è così e vuoi davvero renderlo una misura soggettiva, allora sarà sufficiente un "diario degli incidenti".

Direi che la cooperazione può o non può essere soggettiva, ma più che essere cooperativa può o non può essere una buona cosa.Collaborare per correggere i bug del lavoro di due persone è positivo.Collaborare quando Lazy McNoWork ti chiede di scrivere la sua parte del progetto potrebbe non esserlo.
Philipp
2017-03-27 14:23:38 UTC
view on stackexchange narkive permalink

Alcune metriche che puoi valutare oggettivamente sono

  • tempo fino alla prima risposta (quanto tempo ci vuole per ottenere un "Lo esaminerò")
  • tempo fino alla definizione risposta (quanto tempo ci vuole per ottenere una risposta effettivamente utile)

Ciò che non puoi misurare oggettivamente è l'effettiva utilità di una risposta che va oltre il "lo esaminerò". Ad esempio, una risposta che risponde solo alla metà delle tue domande e schiva il resto. Potresti non considerarla una "risposta definitiva", ma il mittente potrebbe farlo e non vedere alcun motivo per scrivere altro a meno che tu non lo chieda. Quello che puoi fare in questa situazione è porre una domanda di follow-up e monitorare la risposta al follow-up nello stesso modo.

Dovresti misurare il tempo solo nell'orario di lavoro effettivo. Esempio: il tuo orario lavorativo ufficiale è dal lunedì al venerdì dalle 9:00 alle 19:00. Invia una richiesta venerdì alle 18:00 e ricevi una risposta lunedì alle 10:00. Si tratta di un tempo di risposta di 2 ore.

Molte aziende più grandi cercano di tenere traccia di tutte le richieste nel software di gestione delle attività per misurare automaticamente tali numeri. Se vuoi qualcosa da qualcuno, crei un ticket nel software. Quando rispondono, lo fanno attraverso lo stesso sistema. Ciò consente alla direzione di ottenere una statistica su chi risponde quanto velocemente. Inoltre, le attività non completate tendono a sembrare molto scomode in tali sistemi. Ci sono vari prodotti per questo sul mercato.

Tuttavia, non è molto saggio fare troppo affidamento sui numeri generati da tali strumenti. Se lo fai, finisci per fare la gestione in base ai numeri. Riporre troppa fiducia nei numeri e non abbastanza nelle persone è un pericoloso anti-pattern gestionale.

L'altra cosa che queste misure oggettive non misurerebbero è il tempo necessario per risolvere il problema.Un problema complesso richiederà molto più tempo e la persona potrebbe effettivamente essere più disponibile di quanto i numeri suggeriscano.I sistemi di misurazione oggettivi, nella mia esperienza, premiano sempre i mediocri rispetto al buono o al grande perché il loro lavoro è più complesso e più difficile da misurare.D'accordo con @Philipp che la gestione in base ai numeri è un pericoloso anti-pattern di gestione.
Snickers3192
2017-03-28 06:39:47 UTC
view on stackexchange narkive permalink

La mia interpretazione del tuo post è che hai alcuni problemi:

  • Come monitorare la cooperazione?
  • Come rendere le persone responsabili?
  • Come promuovere la cooperazione?

Ma prima affrontiamo il motivo per cui qualcuno potrebbe rispondere

Dò un'occhiata

ma non lo fanno mai veramente. Sebbene sia impossibile conoscere le ragioni esatte di ciò in ogni scenario, vorrei dare un'idea dal punto di vista di uno sviluppatore perché ho potuto vedere questo accadere per i motivi più preoccupanti. YMMV ma per me correggere i bug è un compito che uccide la carriera. È un lavoro di manutenzione non apprezzato. È anche un lavoro davvero spiacevole: cercare tra i registri e le tracce di pile solo per trovare gli errori più semplici. Perché gli sviluppatori dovrebbero dedicare del tempo a un compito irritante non apprezzato senza alcun vantaggio di carriera? Sicuramente uno sviluppatore lo farà per un livello accettabile, ma se questo livello è impostato troppo alto perché questo lavoro consuma la loro vita lavorativa, questo genere di cose può accadere. L'altro motivo preoccupante che uno sviluppatore può fare è evitare conflitti. Ciò si verifica se non esiste una cultura aperta sul posto di lavoro e una cultura del non biasimo, con la direzione che prende decisioni unilaterali. Ho scoperto che questo è prevalente nei progetti legacy. Potrebbero esserci problemi di progettazione fondamentali con un progetto e potrebbe essere impossibile ripetere il codice. In questa situazione, se la gestione non si livella con gli sviluppatori e stabilisce impegni accettabili per entrambe le parti in relazione alla risoluzione dei bug, avrai questa situazione. Ti consiglio caldamente di riflettere se questa è o meno la situazione nel tuo lavoro. Lavoravo in un'azienda (stranamente usavo anche redmine) e se la direzione mi avesse suggerito di non collaborare dopo aver corretto innumerevoli bug, me ne sarei andato prima di quanto ho fatto. Ti avverto che citi quella parola a tuo rischio e pericolo nel migliore dei casi creerà solo un cuneo tra te e la tua squadra, nel peggiore dei casi un esodo di massa.

Cooperazione nel monitoraggio - Anche se esistesse un software in grado di farlo in modo efficace, sicuramente non è un problema. IMHO questa metodologia è difettosa. Qualunque soluzione tu possa trovare, spingeranno gli sviluppatori a gravitare intorno a buchi circolari, passerai un'eternità a rivederlo e tornerai qui un anno dopo senza che nulla venga risolto. Puoi assegnare problemi a qualcuno nella miniera rossa e giudicare per ogni problema se ha collaborato, ma sono certo che creerai più spese generali e problemi di quanti ne abbia risolti.

Responsabilità delle persone - Personalmente credo che la responsabilità del gruppo sia molto più importante, il successo è dovuto alla buona gestione e al lavoro di squadra, non ai singoli. Dovrebbe essere assolutamente ovvio se qualcuno non sta tirando il proprio peso. Ciò è evidente nel codice di revisione tra pari, sessioni di pianificazione di gruppo, riunioni, retrospettive in metodologie agili o di altro tipo e molto altro ancora. Dovrebbero esserci contratti di gruppo stabiliti dal gruppo e il gruppo nel suo insieme dovrebbe tirare su gli altri sulla loro performance. Se decidi da solo come funziona, sarai tu a controllarlo, diventando più un'autorità che un leader.

Promuovi la cooperazione - Livellare con gli sviluppatori, capire cosa il lavoro di correzione dei bug è accettabile da un punto di vista aziendale e l'esperienza dello sviluppatore è la chiave per promuovere una cultura aperta senza colpa. Che ne dici delle attività di team building (adorano questo in Germania, quasi tutte le aziende hanno un giorno in cui escono e fanno insieme problem solving / avventura o altre attività di team building). Ma se prendi decisioni unilaterali e poi ti aspetti che tutti le seguano a una T o altrimenti metti un'etichetta non collaborativa su di loro, ti ritroverai con yes-men o evitatori di conflitti.

Nota finale, prendi più mosche con il miele. A me sembra che tu abbia una questione culturale piuttosto che un problema con gli individui. Scusami per il lungo post, sono appassionato di questo problema avendo cambiato lavoro a causa di questo genere di cose. (potrebbe essere questa compagnia). Spero davvero che la tua azienda trovi una soluzione.

@dan1111 Non ho preteso di avere un'esperienza universale, non esiste niente del genere.Sto solo cercando di dare una prospettiva e far luce sul motivo per cui gli sviluppatori non vogliono correggere i bug.So che ci sono altri software per il monitoraggio dei bug là fuori, ma come ho detto, credo che questo approccio porti al gioco della colpa ed è determinante per una cultura senza colpa.Sebbene "possibile", non sono a conoscenza di alcuna azienda rinomata per il modo in cui trattano i propri sviluppatori risolvendo bug.Come l'OP si arrabbiano se non risolvono i bug, ma non sono al settimo cielo se risolvi un bug.
Per favore, nominane uno.
Qui, dove lavoro, per esempio.Questo è un enorme progetto legacy e tutto ciò che facciamo è aggiustarlo o estenderlo.Siamo uno dei maggiori guadagni nella divisione.Alcuni giorni odiamo la correzione dei bug.Ma è anche molto gratificante e un lavoro stabile.
Scusa se ancora non dai un nome.E in alcuni casi suggerisci che la correzione dei bug sia un buon percorso di carriera.Siamo su mondi diversi, amico mio, vivi sulla Terra?
Sebbene sia possibile che in ogni azienda del mondo, le persone evitino di correggere i bug per i motivi che hai citato e si impegnino sinceramente a farlo per evitare conflitti (causando così problemi al loro team in seguito) non significa che questo sia il motivo * tutti *si impegna in qualcosa e poi non segue.Potrebbero esserci altri motivi: potrebbero essere dei cretini e non preoccuparsi del resto della squadra.Potrebbero * voler * farlo, ma sono davvero sommersi e non vogliono ammetterlo.Potrebbero volerlo fare, ma non si rendono conto di essere già troppo impegnati.Eccetera.
Sono disposto ad ammettere di aver fatto alcune forti generalizzazioni, che le mie non sono sempre vere.Tuttavia, credo che per la maggior parte degli sviluppatori lo sperimenteranno.Credo che la metodologia di gestione in questo settore sia molto carente, così come l'apprezzamento e l'attenzione a coloro che svolgono questo lavoro.Ovviamente ci sono altri motivi per cui le persone potrebbero non dare davvero un'occhiata, ma io propongo che se non indicano il motivo per cui lo stanno facendo, è molto probabile che eviti il conflitto, altrimenti affermerebbero semplicemente che sono occupati, maPenso di poter modificare questo post per renderlo più corretto
Grazie per le modifiche, sono d'accordo sul fatto che questo è un problema abbastanza comune.
Hakan
2017-03-28 15:12:00 UTC
view on stackexchange narkive permalink
  "Ci impegneremo di più per monitorare il lavoro tramite ticket che per essere effettivamente produttivi" 

Questo non si applica al tuo caso. Essere produttivi non significa "programmare ininterrottamente per 8 ore", significa completare i compiti, secondo l'ordine delle loro priorità. Se uno sviluppatore impiega 2 ore per un bug, deve renderlo un caso e segnalarlo.

Chiedere al team di preparare una relazione giornaliera sui progressi potrebbe farti risparmiare un po 'di tempo, tuttavia il tuo problema è più serio: dì "Lo farò" e non guardare non è una mancanza di irresponsabilità.

La tua risposta a tutte le tue domande è il "sistema di tracciamento dei bug". Non abbiamo tempo non applicabile, perché questa documentazione minima fa parte del lavoro, proprio come la codifica.

user8365
2017-03-27 19:37:26 UTC
view on stackexchange narkive permalink

L'obiettivo della direzione è probabilmente ottenere il rilascio di software che generi vendite e soddisfazione del cliente. Ci sono parti di questo processo che sono interamente controllate dal tuo gruppo. Tutti voi dovreste essere valutati e, si spera, ricompensati per averli completati.

Hai identificato processi che coinvolgono il tuo gruppo e altri. Tutte le parti coinvolte in quel pezzo dovrebbero essere valutate e, si spera, ricompensate per il completamento di quel processo. Non dovrebbe esserci alcun incentivo per nessuna delle parti a fare qualcosa o a non fare ciò che è necessario per portare a termine questa parte senza che ci siano conseguenze. In quanto adulti professionisti, penso che un manager debba metterlo a tutte le parti per elaborare strategie reciprocamente accettabili.

O alcune delle parti non stanno effettuando la connessione al livello di input richiesto loro per portare a termine le cose o non hanno le risorse. Chissà, un incontro veloce potrebbe scoprire che c'è solo una piccola cosa che il tuo gruppo potrebbe fare per rendere questo molto più facile per gli altri. Non lo saprai mai finché non riunirai le persone che sanno cosa sta succedendo e la direzione per rendere importante questo compito. Le cose raramente vengono risolte in altro modo.

RedSonja
2017-03-28 17:36:42 UTC
view on stackexchange narkive permalink

Un modo per non misurare la "cooperazione" ma per renderla visibile è il tabellone Kanban (o equivalente) e il quotidiano stand-up show-and-tell.

"Questo è quello che ho fatto ieri, questo è quello che voglio fare oggi, questo è ciò di cui ho bisogno, questo è ciò che mi ferma."

Qui definiamo anche le priorità. i biglietti Kanban sono tenuti sulla lavagna da magneti colorati, e se hai la priorità ottieni un colore diverso (verde), e quelli verdi vengono discussi per primi.

Se qualcuno sta trascinando i piedi è ovvio. Comunque, di solito c'è una buona ragione, e qui quella persona può dire qual è il problema e ottenere aiuto.



Questa domanda e risposta è stata tradotta automaticamente dalla lingua inglese. Il contenuto originale è disponibile su stackexchange, che ringraziamo per la licenza cc by-sa 3.0 con cui è distribuito.
Loading...