DeMarco e Lister (Peopleware) suggeriscono di creare un "culto della qualità" all'interno del team di programmazione. Frustrantemente, non suggeriscono come si fa a farlo!
Qualcuno ha qualche idea su come realizzare questo?
DeMarco e Lister (Peopleware) suggeriscono di creare un "culto della qualità" all'interno del team di programmazione. Frustrantemente, non suggeriscono come si fa a farlo!
Qualcuno ha qualche idea su come realizzare questo?
Risposte:
La mia esperienza è che i team di sviluppo (ma in generale qualsiasi team) sono composti da 3 tipi di persone:
L'ultimo gruppo è il più grande e tendono a seguire il partito al potere. Se ci sono abbastanza persone di qualità nella squadra, possono attirare la maggioranza con se stessi, creando una forte spirale verso l'alto nello spirito di squadra e nella motivazione. Tuttavia, se ci sono troppi fannulloni, possono facilmente creare l'effetto opposto, una spirale di morte.
Quindi il compito principale per il manager è scegliere e mantenere le persone giuste e sbarazzarsi di quelle cattive al più presto . Tuttavia, non quelli "mediocri": potrebbero essere influenzati per iniziare a migliorare, per sostenere le buone idee di altri, e alcuni di essi potrebbero persino diventare dei trend setter positivi per conto proprio.
[Aggiornamento2] riflettendo sulla risposta di Alb : IMO non è necessario che gli sviluppatori di qualità siano in netta maggioranza all'interno del team (anche se non fa male :-). Esiste una "soglia di impostazione delle tendenze" , al di sopra della quale le opinioni e il comportamento di un sottogruppo possono rapidamente diventare il "mainstream" all'interno di una comunità , in modo che altre persone se ne accorgano e inizino a seguirle. Puoi vederlo nel lavoro nella società più ampia in ogni momento (ad es. Abitudini (non) di fumare, salute e diete, mode pop, alimenti biologici). La mia stima molto approssimativa è che può essere intorno al 25-30%, ma dipende da molti fattori. Questo è dove le persone cattive possono ferire molto. Anche un paio di persone cattive all'interno della tua squadra possono alzare significativamente questa soglia. [/ Update2]
Ovviamente non è sempre possibile assumere abbastanza dei migliori ragazzi. Quindi, quando la prima fazione non è abbastanza forte da guidare le cose da sola, il management deve aiutarle. Un paio di pensieri su questo:
Penso che Scrum abbia una buona idea per questo con le demo dei prodotti. Dimostrare la funzionalità che hai implementato di fronte a un pubblico composto non solo dai tuoi compagni di squadra, ma probabilmente dagli sviluppatori di altri team, gestione, persino gli utenti dell'app può essere un'enorme fonte di orgoglio e anche un forte fattore per aiutare la squadra a gelare.
Un'altra cosa è che il management ascolti seriamente il team di sviluppo per quanto riguarda la qualità. DeMarco e Lister menzionano persino che ci sono aziende / dipartimenti in cui i team di sviluppo hanno il veto su ciò che può andare in produzione. Se ritengono che l'app non sia ancora pronta per la prima serata, possono posticipare il rilascio indipendentemente da ciò che la gestione vorrebbe. Ora questo è difficile per il management, ma posso immaginare che costruisca lo spirito di squadra e comunichi fortemente il messaggio che la qualità è davvero importante qui, non solo a livello di parole.
Questo porta al punto successivo: per creare un "culto della qualità", il management deve comprendere a fondo ciò che gli sviluppatori più esperti sanno già: che la qualità non è un ripensamento, ma deve essere integrata nel prodotto fin dall'inizio. Quindi le persone dovrebbero essere incoraggiate a (e premiate per!) Pensando alla manutenibilità a lungo termine, cercando di trovare soluzioni valide , invece di soluzioni rapide .
@Machado nel suo commento ha dato una nuova svolta alla domanda (almeno per me):
Cosa posso fare, come membro del team, non come manager, per migliorare la qualità del codice del mio team?
Alcuni pensieri:
E, ultimo ma non meno importante: trova un posto in cui puoi essere un "top guy" . Se sei nel gruppo "mediocre" in questo momento, sforzati di svilupparti - si spera che le idee di cui sopra ti aiutino. Ma se ti capita di essere negli "strati inferiori" della tua squadra attuale, ti consiglio di analizzarne i motivi. Che cosa ti demotiva? Cattive condizioni di lavoro? Compagne di squadra? Gestione? Tipo di lavoro? E cosa ti eccita e ti interessa? Potrebbe essere necessario parlarne con i colleghi e / o il capo. Oppure potresti aver bisogno di cercare un lavoro migliore - o anche una nuova professione - dove puoi iniziare a brillare. Non vale davvero la pena di dedicare una parte significativa della propria vita a un'attività insoddisfacente o deprimente.
Può anche essere che sei costretto a continuare il tuo lavoro attuale, non ottimale a causa di fattori esterni (mancanza di migliori opportunità di lavoro, necessità di pagare le bollette ecc.) - succede di tanto in tanto. Anche in questo caso, prova a trarne il meglio. Produrre un lavoro di qualità (per quanto le circostanze lo consentano) è una ricompensa in sé, che aiuta a mantenere la tua autostima e a mantenerti sano e aperto a lungo termine. Pertanto, quando appare un'opportunità per qualcosa di meglio, sei meglio preparato a prenderlo.
Ottima risposta di Péter Török per evidenziare che lo farai solo con la maggior parte delle brave persone. Una volta che hai delle brave persone, devi mirare di più all'approccio alla carota piuttosto che al bastone. Responsabilizzare gli sviluppatori, far loro assumere la proprietà di progetti / attività e incoraggiare la concorrenza in termini di qualità, forse far sì che le persone facciano brevi presentazioni su come hanno migliorato la qualità nei progetti. I buoni sviluppatori saranno motivati a impressionare i loro colleghi.
Oltre ai commenti di Peter (che sono davvero il problema principale), è necessario assicurarsi che la qualità non sia una funzionalità che verrà aggiunta in seguito.
Più specificamente:
Direi che il modo migliore è incoraggiare la qualità rispetto alla produzione. Questa è una delle premesse del movimento Lean Software (basato su Lean Manufacturing). Ho scritto un lungo post sul blog discutendo di cosa tratta Lean . Ti dico come creare un culto della qualità. Investi nei tuoi dipendenti e lasciali investire nella tua azienda (non un investimento monetario, ma piuttosto un investimento personale).
Dan Pink ha tenuto un grande discorso al TED su ciò che ci motiva. Mentre non lo fa riferimento in modo specifico. La Gerarchia dei Bisogni di Maslow spiega perfettamente il fenomeno osservato. Fintanto che il datore di lavoro risponde ai primi due bisogni (vale a dire pagare abbastanza denaro in modo che il denaro non sia un problema) tutto ciò che rimane è Appartenenza, stima e attualizzazione.
La qualità non è qualcosa che può essere dettata ... piuttosto è abilitata. Affidati ai tuoi dipendenti per fare ciò che è meglio e farti strada. Alla fine, dovrai dire loro che devono andarsene. Piuttosto che chiedere loro di dedicare più ore