it-swarm.it

SMART sono utili per i programmatori?

Diverse organizzazioni che conosco usano SMART obiettivi per i loro programmatori. SMART è l'acronimo di Specific, Measurable, Realable, Relevant e Time-Bound. Sono abbastanza comuni nelle grandi aziende.

La mia precedente esperienza con SMART non sono stati così positivi. Altri programmatori li hanno trovati un modo efficace per misurare le prestazioni? Quali sono alcuni esempi di buoni SMART = obiettivi per i programmatori (se esistono).

57
Craig Schwarze

In una parola

No

Primo: i miei progetti non sono mai stati abbastanza stabili da poter stabilire gli obiettivi SMART con qualsiasi significato. I tempi che intercorrono tra quando i miei ruoli cambiano in un progetto e quando vengono eseguite le recensioni perf sono semplicemente troppo fuori sincrono.

Secondo: misurare le prestazioni individuali è un ottimo modo per creare una mentalità "non il mio lavoro" e una competizione negativa tra gli individui e/o le varie sotto-squadre di un'organizzazione. È molto facile giocare al sistema e assicurarti di stare attento a te stesso e di non aiutare davvero l'intero team. Dovremmo incoraggiare le persone ad essere giocatori di squadra, ma le nostre organizzazioni fanno esattamente il contrario.

La maggior parte di questi tipi di sistemi è antitetica al team building. Mary Poppendieck ha svolto un lavoro di gran lunga migliore di quanto io possa mai fare in LeanEssays: Team Compensation .

Sue ha ricevuto una chiamata da Janice in risorse umane. "Sue", ha detto, "Ottimo lavoro fatto la tua squadra! E grazie per aver compilato tutti quei moduli di input per la valutazione. Ma davvero, non puoi dare a tutti un punteggio massimo. La tua valutazione media dovrebbe essere "soddisfa le aspettative". Puoi avere solo una o due persone che "superano di gran lunga le aspettative" ... "

... Uno dei più grandi leader di pensiero del 20 ° secolo, W Edwards Deming, ha scritto che il danno non misurabile viene creato classificando le persone, i sistemi di merito e gli incentivi. Deming riteneva che ogni azienda fosse un sistema e che le prestazioni degli individui fossero in gran parte il risultato del modo in cui il sistema funziona. A suo avviso, il sistema causa l'80% dei problemi in un'azienda e il sistema è responsabilità del management. Ha scritto che usare esortazioni e incentivi per convincere le persone a risolvere i problemi di gestione semplicemente non funziona. Deming si è opposto alla classifica perché distrugge l'orgoglio nella lavorazione e il merito aumenta perché affrontano i sintomi, piuttosto che le cause, dei problemi.

... diamo uno sguardo più approfondito alla valutazione dei dipendenti e ai sistemi di ricompensa, ed esploriamo cosa li rende disfunzionali ...

52
MIA

Abbiamo usato SMART obiettivi nella grande società in cui lavoro. Sono insignificanti per la maggior parte.

Gli obiettivi scendono dall'alta direzione e sono alti e astratti. Metterli in relazione con progetti e sviluppi concreti è di solito uno scherzo. La maggior parte dei progetti che entrano nel gruppo provengono dal business e devono soddisfare un'esigenza aziendale specifica. Quindi codifichi il progetto, lo metti in produzione e fai un lavoro fantastico come al solito. In che modo ciò si collega a un obiettivo raggiunto da un dirigente?

Facciamo molto meglio come gruppo quando realizziamo i nostri obiettivi. A volte includono la formazione su un argomento specifico o l'implementazione di un nuovo cambiamento di processo, qualcosa che può effettivamente essere correlato a ciò che facciamo. Non sono ancora realmente collegati all'operazione quotidiana di codifica poiché sono almeno cose che aiutano a spostare il gruppo avanti nell'ambiente aziendale.

[~ ~ #] modifica [~ ~ #]

Come ha sottolineato correttamente Mnementh, la mia risposta si basa su SMART gli obiettivi non sono, beh, SMART. Aggiungerei alla mia risposta che se sei un gestore di programmatori e vuoi implementare = SMART obiettivi, assicurati che siano SMART. Usa l'esempio dei miei gestori come un modo per NON implementare SMART obiettivi. Se non gestisci programmatori e qualcuno ti dice che ora inizierai a utilizzare SMART obiettivi e finiscono come hanno fatto i nostri, quindi capisci che hai persone in alta dirigenza a cui piacciono le parole d'ordine e che sono in grado di controllare da un elenco di cose che hanno implementato.

14
Walter

Ci sono molte ricerche per dimostrare che i programmatori faranno un lavoro eccellente a qualunque criterio venga loro presentato, a costo di altri possibili obiettivi.

Ciò significa che faranno bene a raggiungere obiettivi specifici e misurabili, e meno bene a tutto ciò che non è specificamente elencato. Ciò significa che devi essere estremamente attento nel fissare gli obiettivi.

Non vuoi impostare linee di codice come obiettivo. Fidati di me. L'impostazione di bug corretti porta all'inizio alla scrittura del codice errato. Chiedere correzioni di bug nel codice esistente si tradurrà in definizioni molto liberali di "bug" (e forse "correzione"). (Inoltre, la parte "realizzabile" dipende da quanto era errato il codice.) Chiedere completezza delle funzionalità in un determinato momento, beh ....

Quello che vuoi che facciano i tuoi programmatori è scrivere cose utili in un periodo di tempo ragionevole con una buona qualità del codice e migliorarle e modificarle mantenendo la qualità del codice. Non ho mai visto obiettivi specifici e misurabili che sarebbero buoni criteri me stesso.

10
David Thornley

Facciamo questo esercizio ogni anno. Il problema è che gli sviluppatori qui tendono ad avere pochissima autonomia su ciò che fanno (attività determinate dal product manager). Siamo fortunati che, almeno sulla carta, abbiamo tempo dedicato al perseguimento dei nostri obiettivi. Realisticamente, tuttavia, otteniamo molto meno.

In quel quadro, ho scoperto che l'impostazione degli obiettivi di auto-sviluppo funziona davvero bene. Ad esempio, due dei miei obiettivi dell'anno scorso erano:

  1. Per leggere modelli di progettazione e scrivere progetti di giocattoli per imparare e dimostrare ogni modello entro il prossimo anno. Questo ha finito per richiedere 2 anni, ma il miglioramento della mia codifica è stato evidente.
  2. Per studiare le funzionalità del linguaggio .NET 3.5 e fare una presentazione ai miei colleghi ogni trimestre. Questo ha finito per essere 1 presentazione su LINQ che i miei colleghi hanno apprezzato in vari gradi tra apatico e leggermente interessato. Tuttavia, ho imparato molto e, dopo aver dimostrato le mie conoscenze in C #, mi sono trasferito a lavorare su un nuovo progetto piuttosto interessante.

Quindi sì, ho beneficiato e mi sono divertito mentre lo facevo.

Onestamente, nella nostra azienda, penso che la mancanza di un buon sviluppatore SMART hanno più a che fare con l'avversione istintiva al linguaggio aziendale.

9
Robert Gowland

Sì, se impostato correttamente.

Se impostato correttamente, gli obiettivi possono migliorare sia il team che le singole persone. Dovrebbero essere allineati anche al lavoro e progettati per l'individuo.

Sono stato in luoghi in cui un intero team DBA ha gli stessi obiettivi insipidi, così come i consensi di alto livello come "conformi ai KPI globali e regionali determinati dal comitato KPI". Che nessuno sa ovviamente ..

Poi di nuovo, sono stato in posti in cui il manager stabilisce obiettivi individuali con una riflessione diretta.

Modificare:

Ho letto l'articolo di Mary Poppendieck e non si tratta di SMART. "La percezione dell'impossibilità" fallisce, ad esempio, "realizzabile".

Gli obiettivi dovrebbero essere fissati per l'individuo, per condividere i propri punti di forza, aiutare a correggere i punti deboli, contribuire alla squadra. La misurazione è per l'individuo.

Non ci dovrebbero essere confronti tra x vs y.

Gli obiettivi per xey dovrebbero essere commisurati al loro grado o posizione all'interno di un sistema: non si pongono gli stessi obiettivi per anziani e junior. È ingiusto.

È necessario un benchmark per impostare bonus o payrise da un piatto limitato: dovremmo invece contare le righe di codice? Revisioni dei pari?

E mostrami alternative valide che non mi richiedono di cambiare la mia filosofia aziendale globale. Non ho critiche a SMART: io do ho critiche a pessimi gestori di piscio ...

8
gbn

Come framework delle prestazioni, SMART è efficace solo quanto i tuoi obiettivi sono allineati con quelli dei tuoi manager. A volte i tuoi SMART gli obiettivi devono prima cadere DUMB , cioè renderli:

  • Realizzabile
  • Comprensibile
  • Trattabile
  • Benefico

Per quanto strano possa sembrare.

5
AAology

La definizione degli obiettivi di tipo SMART può essere utile in un contesto di programmazione ma deve essere fatto in modo intelligente o, come sottolineato in altre risposte, è probabile che perda tempo (o peggio).

Per ottenere obiettivi utili, aiuta a concordare cosa significherà l'acronimo SMART: a ricerca rapida su Google found definizioni variabili :

  • S: sembra avere consenso su Specifico (anche se c'è qualche disaccordo su cosa significhi)
  • M: Significativo e motivazionale sono alternative al più comune misurabile
  • A: sembra più spesso rappresentare Raggiungibile, ma ho anche visto Concordato
  • R: a seconda di dove guardi, puoi trovare realistico, pertinente, incentrato sui risultati
  • T sembra sempre fare riferimento al Tempo, sebbene l'enfasi vari

Quindi, in primo luogo, entrambe le parti della negoziazione per la fissazione degli obiettivi dovrebbero funzionare da una comprensione comune del processo.

Successivamente, devono essere spiegati e compresi gli obiettivi generali per l'organizzazione, la divisione, il gruppo, il team (o qualunque gerarchia rilevante). A quel punto dovrebbe essere possibile per l'individuo (IMO, gli obiettivi devono essere fissati a livello individuale per essere utili) per essere in grado di concordare un numero limitato di obiettivi che dovrebbero informare le attività di quella persona in futuro.

Se finisce lì, è stato comunque uno spreco di tempo per tutti. Gli obiettivi devono essere rivisti e adeguati periodicamente - laddove conseguiti, dovrebbe essere presa in considerazione l'eventuale necessità di fissare nuovi obiettivi, laddove non raggiunti, le ragioni dovrebbero essere identificate e le azioni correttive prescritte ove necessario.

Tutti gli interessati dovrebbero essere consapevoli del fatto che questo tipo di esercizio non è utile se non viene preso sul serio, o forse più algoritmicamente, il valore da estrarre è proporzionale allo sforzo compiuto.

Potrebbe essere istruttivo vedere ciò che la gente pensa possa essere utile/utile SMART obiettivi. Ho posto una domanda qui ...

4
Mike Woodhouse

Il problema con SMART obiettivi è che devono scegliere ciò che è misurabile. Dato che ciò che è misurabile e ciò che è importante per il successo dell'organizzazione spesso non sono la stessa cosa (e praticamente non sono mai in programmazione), = SMART falliscono sempre nelle valutazioni delle prestazioni nella mia esperienza. E a volte le cose sembrano misurabili ma non sono senza troppi sforzi (come l'obiettivo SMART obiettivo che avevo una volta per rispondere a tutte le e-mail entro 4 ore. Davvero chi vuole provare a esaminare le migliaia di e-mail che ricevo un anno, determinare se era informativo o necessitava di una risposta e quindi guardare le e-mail inviate per vedere se ho risposto e quindi ascolta le registrazioni di tutte le telefonate per vedere se ho risposto, controlla il mio registro di messaggistica istantanea per vedere se ho risposto, ecc. E che dire di quell'email che mi è stata inviata sabato sera a mezzanotte ...)

4
HLGEM

Per tutte le persone che hanno risposto NO, i tuoi obiettivi probabilmente NON erano SMART abbastanza.

Li ho usati e li trovo incredibilmente utili. Potresti provare qualcosa che funziona per noi:

  1. Imposta obiettivi trimestrali.
  2. Stabilisci obiettivi misurabili.
  3. Imposta un solo obiettivo per l'individuo
  4. Fai in modo che l'individuo accetti l'obiettivo, se dice che l'obiettivo è riaggiustato fino al momento in cui entrambi sarete d'accordo.
  5. Alla fine del trimestre, vieni con un valore booleano. Obiettivo raggiunto = vero o falso.

Questo è estremamente potente, crea responsabilità per lo sviluppatore. Le persone che vogliono trovare scuse di pollo dopo circa 6 mesi.

P.S: Riesco a capire le persone che votano la risposta ma per favore lascia un commento pertinente almeno imparerò qualcosa che non so :-)

3
Geek

SMART è l'acronimo di ricordare alcuni criteri per obiettivi migliori. Quindi, introducendo SMART significa che la tua direzione deve migliorare seguendo questo principio. Senza SMART la direzione stabilirà comunque degli obiettivi, ma sarebbe molto probabilmente troppo difficile.

Quindi, per i programmatori non dovrebbero esserci cambiamenti, la gestione deve cambiare il suo stile per implementare SMART. E se fanno bene, il tuo lavoro come programmatore può diventare più facile, perché la direzione del progetto è più chiara, i tempi sono impostati e così via.

Se la direzione non lo fa nel modo giusto, non molto cambierà.

3
Mnementh