Domanda:
Gli sviluppatori sono demotivati ​​a causa del lavoro sullo stesso progetto per più di 2 anni
Bhushan
2019-05-12 21:35:30 UTC
view on stackexchange narkive permalink

Attualmente sto gestendo un team di 10 persone per un progetto iniziato 3 anni fa e che durerà per un altro anno. Non sono il manager, sono solo lo sviluppatore più anziano (6 anni di esperienza) del team che deve farlo fino a quando l'azienda non trova un vero project manager.

Nel nostro team, ci sono 3- 4 sviluppatori che hanno lavorato a questo progetto negli ultimi due anni e mezzo.
Questi sviluppatori sono molto demotivati ​​e questo sta davvero influenzando il loro lavoro. Personalmente penso che possano fare meglio di quello che stanno facendo attualmente.

Quando ho chiesto loro dei motivi, hanno semplicemente detto che erano su questo progetto da molto tempo, quindi ora vogliono lavorare su altri progetti o su alcune tecnologie XYZ.

Non ho l'autorità per spostarli su un altro progetto né mi piacerebbe farlo perché conoscono il progetto alla perfezione.

Qualche suggerimento su come posso motivarli?

Ri: "Il progetto durerà per un altro anno".Quali sono le possibilità che un progetto software pantano programmato per un altro anno * effettivamente * si concluda in tempo?Praticamente zero, scommetterei.
Qual era la stima originale per il progetto?Sono passati 4 anni o molto meno?
Undici risposte:
Sourav Ghosh
2019-05-12 21:42:47 UTC
view on stackexchange narkive permalink

Nel mio studio di questa situazione, ci sono altri problemi, problemi reali che devono essere esaminati. Le persone semplicemente non si demotivano per aver lavorato 2+ anni allo stesso progetto, si demotivano quando si sentono

  • Non sono apprezzate
  • Il loro lavoro non è valutato
  • La loro opinione non è apprezzata
  • Non vedono alcuna opportunità di crescita per la loro carriera personale e professionale

ecc.

Dato che sei il manager in carica , esegui tu stesso quanto segue o segnala / delega in modo che qualcuno abbia il diritto di farlo:

  1. Organizza un incontro formale 1: 1 con gli ingegneri demotivati. Ascolta i loro problemi / reclami.
  2. Chiedi loro come pensano che i problemi possano essere risolti senza spostarli fuori dai compiti attuali.
  3. Pensa e rifletti.
I commenti non sono per discussioni estese;questa conversazione è stata [spostata in chat] (https://chat.stackexchange.com/rooms/93584/discussion-on-answer-by-sourav-ghosh-developers-demotivated-due-to-working-on-sa).
Sarebbe bello se potessi aggiungere qualche commento su cosa fare quando le loro risposte sono "riscrivi da zero" o "raddoppia la mia paga" ecc. Perché molto spesso questi sono davvero gli unici modi per risolvere la situazione.Forse potresti suggerire altre opzioni da mettere a loro.
Tanti possibili problemi.Una volta ho lavorato a un progetto, avevamo 5 sviluppatori, designer e tester UX dedicati.Dopo circa 16 mesi abbiamo avuto il nostro primo rilascio.Successivamente la maggior parte delle persone è stata trasferita ad altri progetti, solo 2 persone sono rimaste per correggere bug, implementare piccoli miglioramenti e principalmente scrivere test e2e.Il progetto è diventato molto frustrante.
In un'altra occasione, le persone semplicemente odiavano il progetto.Non c'era un vero leader del team e l'architettura del progetto è diventata eccessivamente complicata.Gli stessi programmatori hanno appena iniziato a odiare la base di codice.Non è così insolito quali processi di programmazione adeguati non vengono seguiti (ad esempio discussioni sull'architettura, revisioni del codice).
L'OP dovrebbe avere un 1: 1 formale con _tutti_ gli ingegneri del team.Che gli piaccia o no, OP _è_ il manager.
Penso che "percepiscono il compito come impossibile / improbabile" sia abbastanza importante per fare quella lista.Sono stato recentemente aggiunto ad alcuni progetti "fly a pig". In due dei tre, sono stato in grado di trovare modi per far volare il maiale ([RFC1925.2. (3)] (https: // www.rfc-editor.org/rfc/rfc1925.html)), e il resto del morale della squadra si è ripreso ciascuna di quelle volte.
Nessuna opportunità di crescita o risultati tangibili, sì, possono essere la causa (insieme a non sentirsi apprezzati).
Se mi chiedessero un "incontro formale 1: 1 perché potresti essere demotivato", starei quasi scrivendo direttamente qui: "Dovrei cercare una nuova opportunità di lavoro in quanto il manager sembra volermi allontanare a causa dell'atteggiamento. "- Stai attento * e * diretto nel modo in cui lo dici.
Naturalmente, alcuni sviluppatori vedono semplicemente le attività noiose e ripetitive come banali e non stimolano la creatività (o la gioia).Alcuni sviluppatori non si sentono autorizzati ad assumere la proprietà o il controllo del proprio lavoro e quindi di ritirarsi.Potrebbero esserci diversi motivi.Una possibile soluzione è ludicizzare il lavoro che resta da fare.Le competizioni (anche senza incentivi monetari) a volte invocano comportamenti primordiali che incorrono nella concentrazione e nella spinta.Riconoscere e celebrare il lavoro svolto ed eventualmente mostrare una classifica settimanale se non scoraggia, potrebbe rivelarsi fruttuoso.
Pixelomo
2019-05-13 06:42:14 UTC
view on stackexchange narkive permalink

Qualche suggerimento su come posso motivarli?

Gli hack days sono un ottimo modo per motivare gli sviluppatori. Una volta al mese consenti al team di trascorrere il giovedì pomeriggio lavorando a un progetto di hacking. Chiedi al tuo capo un budget per comprare birra e pizza.

Inizia facendo un brainstorming di idee su R&D, quale nuova tecnologia vogliono provare? quale cosa interessante potresti costruire con le tue abilità combinate?

All'inizio i giorni di hacking possono servire semplicemente come strumento di motivazione. Gli sviluppatori sanno che una volta al mese si mettono a lavorare su quel fantastico progetto secondario. Ma col tempo questi progetti potrebbero trasformarsi in prodotti fattibili che la tua azienda potrebbe utilizzare o vendere.

Questa è un'idea fantastica sia per mantenere gli ingegneri energizzati e sia per il management rianimato, ma dal momento che nessun uomo è uguale, quanto dovrebbero essere obbligatori nel caso in cui a qualcuno non piaccia?
Forse Pepsi e Pizza ... ma sì, suggerimento fantastico.A volte è anche noto come "google day".
Le buone aziende lo fanno già una volta alla settimana comunque.Sembra davvero che l'azienda stessa sia un brutto posto in cui lavorare e questo è solo un sintomo di ciò.
Mi piace l'idea ... e non mi piacciono i giorni di hack.Ne ho fatti un paio e non sono per me, quindi OP dovrebbe 1) assicurarsi che piacciano a tutti o 2) renderli non obbligatori
+1 per averli resi opzionali.Li odio, ma so che piacciono a molte persone.Penso che molto dipenda da come è prescritta l'argomento, dalle scelte tecnologiche, ecc.
Tutto ciò che viene fuori da un "giorno di hacking" che sembra possa andare oltre dovrebbe INIZIARE con "come realizziamo questo livello di produzione".Ho visto troppi hack che il management pensava fossero pronti per l'uso quotidiano.
Questo mi ricorda Overwatch Workshop, che è nato da un po 'di tempo libero di due sviluppatori.
sì, i giorni di hack dovrebbero essere assolutamente opzionali, ma se l'argomento non è prescritto e tutti gli sviluppatori si divertono a lavorarci, non dovrebbe essere un problema
OP potrebbe essere qualcuno del mio ultimo lavoro.Hanno provato "giorni di hacking" come un modo per risolvere il problema di OP.Non ha funzionato e ha fallito miseramente.Vado a lavorare per lavorare, scrivo già codice ai miei tempi.Se non sono già libero di apportare miglioramenti arbitrari alla base di codice su cui sto lavorando, allora qualcosa è rotto con il team che "hack days" non risolverà.
Bene, la cosa con l'orario di lavoro opzionale è che a seconda della tua posizione può essere più complesso.Facoltativo pagato o non pagato?Il dev aleady raggiunge la sua quota settimanale?Ore extra, significa che dev ora deve lavorare 5 giorni in 4,5 giorni
I giorni di hack devono essere pagati, ma ho scoperto che spesso gli sviluppatori restano fuori orario per continuare a lavorare su un progetto se si divertono.
@Qix Ti dispiacerebbe espandere in che modo offrire incentivi per imparare e fare cose nuove si ritorce contro quando gli ingegneri in questione sono semplicemente stufi della manutenzione piuttosto che privi di competenza?
@lucasgcb L'uomo di paglia di "offrire incentivi per imparare e fare cose nuove" cade quando ti rendi conto che, anche se il "giorno dell'hacking" è un giorno intero, è ancora solo una distrazione da altre pratiche di gestione scadenti.Se sei sotto pressione per portare a termine qualcosa e hai prodotti, vendite, CEO, ecc. Sulle spalle per ottenere la funzione X fuori dalla porta, l'ultima cosa che vuoi fare è sentirti sotto pressione per fare un cambio di contesto al 100%a qualcosa di completamente estraneo all'attività per cui sei stato spinto a completare gli ultimi Y giorni.È un'esperienza miserabile e generalmente mangia anche durante il fine settimana.
@Qix Non è un pagliaccio quando l'OP dice che gli ingegneri sono proprio questo;annoiato.Nel caso tu abbia accumulato lavoro, caratteristiche e superiori al collo, allora sì, certo che un pomeriggio a fare qualcos'altro è controproducente, ma per il resto è proprio questo;un pomeriggio.Mi dispiace che tu abbia avuto quell'esperienza straziante ma non è una regola.
@lucasgcb Dove ho detto che era una regola?Ho raccontato in modo specifico un'esperienza particolare.Il tuo argomento è un uomo di paglia.
@Qix La tua esperienza è un input prezioso per dimostrare che questa risposta non è un proiettile d'argento, tuttavia il modo in cui lo hai espresso darebbe l'impressione che sia sempre una facciata di gestione che è dannosa e mai utile.Ti sto semplicemente facendo capire quello che sto interpretando dalle tue parole, sei libero di correggermi.
Come sviluppatore che lavora a un progetto da 8 anni ormai, non riesco a pensare a niente di più demoralizzante di un progetto di codifica ad alta intensità.
Arthur Hv
2019-05-13 01:34:31 UTC
view on stackexchange narkive permalink

Essendo io stesso un cercatore di posti di lavoro, posso testimoniare dei motivi per cui la mia motivazione diminuisce quando sono nello stesso progetto per molto tempo. Questo di solito ha poco a che fare con la retribuzione o il riconoscimento del mio lavoro:

  • Lavorare nello stesso progetto per molto tempo manca di opportunità di apprendimento . C'è molto da imparare dal cambiamento: impari come i progetti sono diversi e come non lo sono, impari ad adattare diversi team e tecnologie, hai la possibilità di imparare da più persone e più situazioni. Ogni tanto un biscotto nuovo mi piace, sfida la mia capacità di apprendere, si aggiunge al mio CV, mi fa sentire meglio con le mie capacità. Questo di solito è il problema principale da risolvere.
  • I progetti di lunga durata non sono nuovi e brillanti. La loro tecnologia resta indietro. Il loro codice diventa grande e legacy. I loro compiti diventano ripetitivi.

Questo è il motivo per cui, a parità di condizioni, molte persone apprezzano il cambiamento per il gusto di farlo. Alcuni più di altri, e tu sei impotente su questo.

Se qualcosa dovrei prendere sul serio ciò che hanno detto, considera che cambiare loro progetti potrebbe essere meglio che perderli (o potrebbe non esserlo). È probabile che ciò accada, perché i tuoi sviluppatori potrebbero non essere contenti da molto tempo e potrebbero già cercare altrove.

Dal mio punto di vista devo essere in disaccordo con il primo proiettile.Ci sono alcune cose che puoi imparare solo in progetti di manutenzione di lunga durata.Soprattutto cose che andranno storte in futuro se non le gestisci correttamente.Ad esempio, mantenere la documentazione e le directory di controllo della versione.Alcune decisioni di progettazione per l'architettura (specialmente veloce e sporco o "possiamo ripulire le decisioni successive). E così via ... Puoi imparare molte cose da progetti di lunga durata. Lavorare sui linguaggi più brillanti solo io non è sempre il migliore.
@some_coder ma può essere noioso da morire.
@some_coder ma questa non è una lezione molto piacevole.Se impari da questi errori, potresti voler ricominciare da capo piuttosto che cercare di sistemare e correggere qualcosa che è andato nella direzione sbagliata.
@ArthurHavlicek Ma se non ti attieni a un progetto e risolvi i problemi, creerai gli stessi problemi nel prossimo progetto.Non hai quel momento "aha, questo è il modo giusto per farlo" finché non devi affrontare le conseguenze di decisioni sbagliate.
@some_coder - d'accordo, ci sono problemi e lezioni dal supporto a lungo termine su un progetto che non possono essere appresi altrimenti.Ma se dedichi troppo tempo a un progetto, scopri che gli standard della stessa azienda sono cambiati e sei indietro di una generazione o due su ciò che è necessario per il nuovo lavoro.
Contesterei anche il primo punto nella sua generalità.I progetti piccoli e brevi spesso non vanno in profondità, mentre con progetti di lunga durata potresti aver bisogno di un anno per entrare nell'essenziale dell'intera cosa in primo luogo (che è l'apprendimento) e poi inizi lentamente ad imparare come farlo effettivamentecambiare l'architettura - e un cambiamento davvero sostanziale che spesso puoi fare solo con un lungo respiro.Cioèpotresti impiegare un anno per approfondire le conoscenze aziendali e le tecnologie speciali disponibili, prototipare e poi implementarle e imparare dai dati che alla fine tornano.
Simile per la generalità del secondo punto elenco.A differenza di un progetto piccolo, è possibile che uno grande rimanga indietro (quello piccolo può ancora iniziare dietro, ma probabilmente gli sviluppatori che lo hanno impostato non ne sono consapevoli ^^), ma non è una proprietà intrinseca. D'accordo, tuttavia, che entrambi * possono * accadere quando i progetti sono gestiti male.E certamente le persone che sono più attratte dalle "proprietà" di piccoli progetti (rapida implementazione / soddisfazione) possono sentire cose, ad es.imparare, cambiare focus, sta andando troppo lentamente.
Penso che l'errore sia portare il progetto come problema, mentre il problema è veramente l'assenza di cambiamento.C'è molto da imparare dal cambiamento: impari come i progetti sono diversi e come non lo sono, impari ad adattare diversi team e tecnologie, hai la possibilità di imparare da più persone e più situazioni.Puoi imparare dagli errori di progettazione presentando un progetto di lunga durata verso la fine, inoltre, non devi necessariamente imparare dai tuoi * propri * errori.Ho apportato una piccola modifica per chiarire questo punto per il primo punto, che credo sia il più importante.
In definitiva, c'è sempre qualcosa di personale nella motivazione.I miei post rappresentano persone per le quali gli incarichi di lunga durata possono essere un problema.Credo che questo possa essere il caso di questi sviluppatori.Se ciò che consideri degno di apprendimento è il mantenimento di un progetto lungo;quindi è probabile che non porterai la questione della durata del progetto al tuo manager.
* "I miei post rappresentano individui per i quali gli incarichi di lunga durata possono essere un problema" * A volte il modo migliore per affrontare un tale "problema" è affrontarlo a testa alta e imparare, invece di scappare ogni volta che lo vedi.
@dwizum Implica che apprezzare il cambiamento sia essere un codardo.Questo è un presupposto sbagliato e irrispettoso.
Mi stai mettendo le parole in bocca.Sembra che tu stia sostenendo il cambiamento e sottolineando i vantaggi del cambiamento.Va bene, ma se tutto ciò che fai è cercare il cambiamento, stai perdendo opportunità per imparare / crescere e * essere impiegato * in progetti di lunga durata: correre da ogni progetto di lunga durata significherà che stai limitando le tue opzioni.Ancora più importante, in questo modo il datore di lavoro ha l'onere di fornire il tuo ambiente ideale e mantenerti felice, invece di imparare a goderti le sfide in diversi tipi di ambienti.
Ho sentito quell'avvertimento, ma siamo fuori tema.La mia carriera non è ciò che viene discusso qui.Anche la carriera dello sviluppatore.Hanno forti vantaggi percepiti a partire, cioè a carico del datore di lavoro, non importa quale.
AnoE
2019-05-13 18:22:07 UTC
view on stackexchange narkive permalink

A parte correzioni temporanee come inviarli a meetup o altri approcci "giocosi":

Quelle persone hanno bisogno di un nuovo progetto, punto. Presumibilmente sono persone tecniche molto intelligenti, a cui piace giocare con la tecnologia ei progetti. Niente che puoi fare in modo fattibile lo cambierà (e non vuoi cambiarlo comunque). Se gli dai sempre le stesse cose da fare, si annoiano e non importa cosa fanno.

Se non trovi una soluzione, lo faranno, il che significa andando in un'altra azienda. Almeno nel mio paese (e non so dell'India), questa è una forte motivazione per il top management a sostenere regolarmente il passaggio di persone tra i progetti. Perdere un dipendente stimato solo perché tu (non tu personalmente, ma la direzione) non sei riuscito a fornire loro un lavoro interessante è semplicemente vergognoso per l'azienda e può essere risolto con una politica attiva di guardare a questo regolarmente.

Quindi, prendi questo "di sopra" e vedi se riesci a inserirli in altri progetti. Se non puoi e non sei effettivamente il manager, almeno ci hai provato.

Onestamente, se un progetto sta facendo soldi.Se l'azienda vende un prodotto, questo è il consiglio meno pratico che potresti dare.
@AJFaraday, dal post di OP, ho l'impressione che stia lavorando in una società di consulenza / sviluppo basata su progetti - molti progetti, non solo uno.
Juha Untinen
2019-05-13 11:20:31 UTC
view on stackexchange narkive permalink

Se ricontrollo i motivi per cui ho intrapreso nuove sfide, ecco i motivi e cosa avrebbe dovuto cambiare per farmi restare:

  • Usare un vecchio stack che non sono mai state modernizzate in alcun modo. Non c'era niente di nuovo da imparare, il che significa la morte per la carriera di uno sviluppatore.
    • Cosa avrebbe dovuto cambiare: migrare a uno stack più moderno per mantenerlo interessante e risolvere problemi tecnici e limitazioni del vecchio sistema.
  • La regressione dall'utilizzo di uno stack molto interessante e moderno che ho imparato a fondo durante il lavoro, a un mucchio di eredità utilizzando una tecnologia obsoleta dopo che il progetto che utilizzava lo stack interessante è stato cancellato per motivi non tecnici.
    • Che cosa avrebbe dovuto cambiare: migrare a uno stack più moderno per mantenerlo interessante e risolvere problemi tecnici e limitazioni del vecchio sistema.
  • Durante le interviste bugie sfacciate su di cosa tratta il lavoro e quale stack viene utilizzato la maggior parte del tempo. Non assumeresti un autista di Main Battle Tank per guidare un autobus di una piccola città aspettandoti che sia felice.
    • Cosa avrebbe dovuto cambiare: usa lo stack che mi hai assunto per lavorare sopra. Uno sviluppatore! = Sysadmin, il lavoro è completamente diverso.

Penso che vedrai uno schema qui :) La vita di uno sviluppatore è incostante, poiché devi sempre imparare nuove tecnologie se vuoi rimanere occupabile. Nel momento in cui smetti di imparare cose nuove, affonderai. E se rimani in un progetto che utilizza una tecnologia obsoleta, sei quasi morto se rimani più di 1-2 anni prima di passare a un nuovo lavoro che coinvolge la tecnologia moderna.

Buona prospettiva.Quindi il suggerimento di migrare a uno stack moderno?In tal caso, potresti evidenziarlo come suggerimento per OP.Altrimenti una buona risposta.
Anche se sono d'accordo sul fatto che sia * buono * imparare cose nuove e * in qualche modo necessario * imparare * cose nuove * per un * bravo * sviluppatore, in nessun modo attenersi alla tecnologia vecchia e collaudata è un modo definitivo per affondare te stesso.Dipende un po 'dalla tecnologia (sia che si tratti solo di una campagna pubblicitaria che è passata), ma ci sono un sacco di lavori di lunga durata per mantenere i progetti esistenti con la tecnologia in cui sono stati creati e mentre giovani sviluppatori motivati che sono pronti a saltare il prossimosono ricercati i treni hype, così come gli esperti che sanno come scavare e lucidare i manufatti del codice archeologico.
Non mi piace che questo non consideri la prospettiva del business.Gettare denaro su un nuovo stack tecnologico che non risolve alcuna esigenza aziendale non è efficace.(Confronta con il solo dare i soldi extra agli sviluppatori in stipendi per tenerli al loro posto, demotivati come possono essere.) In altre parole: preferirei che i miei carri armati si girassero i pollici e si sentissero annoiati piuttosto che iniziare una guerra solo per mantenereli felice.
@Oddthinking L'azienda dovrebbe essere ancora ** più ** attenta ai rischi derivanti dall'utilizzo di tecnologie obsolete.Gli sviluppatori potrebbero rancore e avvertire, ma continueranno a lavorare.Sfortunatamente lasciare uno sviluppatore è un piccolo rischio rispetto a quello che può fare l'uso di un vecchio stack per il * BUSINESS *.Una violazione qui, carte di credito trapelate lì, la tua strategia aziendale di 5 anni rubata a causa del vecchio stack con vulnerabilità ben documentate e spesso sfruttate, in particolare il software EOL.Il Marriott Hotel potrebbe essere più consapevole dell'utilizzo di software con patch in futuro ...
Ora che PHP5 è EOL, mentre il 60% + di * INTERNET * lo utilizza nel proprio backend, posso solo iniziare a immaginare il tipo di problemi che inizieremo a vedere tra un anno.Semplicemente perché non si sono impegnati per aggiornare la tecnologia obsoleta in qualcosa di moderno.
@JuhaUntinen Penso che il punto che viene sottolineato qui nei commenti sia, passa a qualcosa di nuovo perché ha senso per gli affari, non perché i tuoi sviluppatori non hanno capacità di attenzione.Le aziende esistono per essere in affari, non per mantenere felici gli sviluppatori di software.
Direi che i tempi variano molto in base al dominio.3 ~ 5 anni di codifica C / C ++ incorporata o lato server non sono la stessa cosa di 3+ anni su uno stack web.Per quanto posso vedere sei fortunato se uno stack web è ancora rilevante 1 anno dopo :-p Nel mio mondo ci sono ancora un sacco di cose vecchie di 15 anni in produzione senza alternative migliori.Quando posso imparare sono nuovi schemi di progettazione, pratiche di lavoro, strumenti, ecc.TDD con Unit Testing, GitLab CI sul mio precedente test di sistema e Jenkins.
Farid
2019-05-13 08:20:53 UTC
view on stackexchange narkive permalink

Io stesso sono incline a questo problema. Mi ritrovo facilmente demotivato a causa della noia. Il motivo per cui sono rimasto più a lungo nella mia ex azienda era perché mi tenevano sfidato ed ero libero di esplorare cose nuove. Ecco alcuni suggerimenti:

  • Hack days
  • Chiedere agli ingegneri di esplorare nuove cose che contribuiscono indirettamente allo sviluppo. Se non hanno già configurato la pipeline CI / CD, chiedi loro di lavorare su quella
  • Rotazione dei ruoli. Inseriscili nell'assistenza clienti per 1 settimana o 1 sprint. Possono imparare cose nuove, l'azienda beneficia della loro esperienza ritrovata di lavorare direttamente con i clienti.
  • Sfidali ad essere l'ambasciatore dell'azienda. Chiedi loro di parlare in pubblico, condividere le conoscenze tra i diversi reparti e iniziare a farlo internamente.
Gli ultimi due punti sono * davvero * soggettivi.Non mi piacerebbe molto lavorare con i clienti se dovessi farlo, probabilmente inizierò a lucidare il mio CV.Allo stesso modo per l'ultimo punto: mi piace il mio lavoro di sviluppatore, parlare in pubblico mi sta trasformando in un non sviluppatore.Ci sono alcune sessioni di condivisione delle conoscenze che mi piacerebbe condurre, ma renderle obbligatorie e probabilmente non è quello che mi piacerebbe andare oltre.
@VLAZ - come cerco di dire al management: non sono entrato nel software perché sono una persona umana.
Devo non essere d'accordo con tutto questo.Sono uno sviluppatore di software.Scrivo codice.Se non siamo in grado di fornire un'esperienza lavorativa in cui ho corretto un codice significativo, allora non abbiamo bisogno di me lì.
Thomas Matthews
2019-05-13 21:39:17 UTC
view on stackexchange narkive permalink

Nel progetto che guido, ho suddiviso i compiti e ho utilizzato un ciclo di sviluppo a spirale.

Le attività erano piccole in modo che ogni sviluppatore potesse avere un senso di realizzazione.

Le attività sono state ordinate in pietre miliari. Ogni pietra miliare per mostrare qualcosa di tangibile, ad esempio, ottenere una stampa "Hello World" su un dispositivo incorporato (questo è stato utilizzato per far funzionare l'ambiente di sviluppo). Il prossimo traguardo sarebbe un sistema di comando tramite una porta di debug. Il terzo traguardo potrebbe essere una funzionalità minima (o un test del dispositivo hardware).

Le pietre miliari sarebbero i punti di controllo del progetto. Potremmo utilizzare le pietre miliari per mostrare alle parti interessate i progressi che stavamo facendo. Il modello di sviluppo a spirale ci ha permesso di adattarci ai requisiti di cambiamento o sviluppo (in pratica, l'unica garanzia è che i requisiti cambierebbero).

Questo ha dato agli sviluppatori un senso di responsabilizzazione e responsabilità. Se il compito era troppo per loro da gestire, erano o allenati da un mentore o il compito era diviso in più parti (potevano anche scegliere un compito diverso, forse più semplice).

Quindi, per una data pietra miliare, gli sviluppatori hanno scelto i compiti che volevano.

Dopo che il prodotto è maturato, si è sviluppato un database di difetti. I difetti sono stati assegnati agli sviluppatori in base alla priorità del difetto, all'area di competenza o per fornire allo sviluppatore la conoscenza in un'area diversa del codice.

Abbiamo molti progetti, quindi alcuni sviluppatori sono passati a compiti diversi dopo circa 2 anni, per fare qualcosa di diverso.

Organizza un incontro con ogni sviluppatore. Scopri quali sono i loro interessi.

Suddividi i progetti in piccole attività.

Consenti agli sviluppatori di scegliere le attività, in base ai loro interessi (non necessariamente alla loro esperienza).

Preparati a perdere sviluppatori a causa dell'attrito, poiché questo è normale.

Completamente d'accordo.Potresti lavorare sullo stesso software per anni, ma chiamarlo / considerarlo * un * progetto è controproducente.I progressi devono essere misurabili.Suddividere un progetto in passaggi gestibili è un'abilità che dovrebbe essere incoraggiata in ogni sviluppatore
rkeet
2019-05-13 14:07:55 UTC
view on stackexchange narkive permalink

Sono d'accordo con la risposta di Sourav Ghosh. Tuttavia, vorrei aggiungere alcune cose.

Sono uno di quegli sviluppatori che possono annoiarsi quando si lavora sulla stessa cosa per lunghi periodi di tempo e / o si sbatte la testa contro un muro cercando di portare a termine le cose.

sbattere la testa contro un muro cercando di portare a termine le cose

Intendo questo nel senso di:

  • In passato ho cercato di ottenere la gestione sistemi acquisiti / installati / utilizzati almeno per la parte di sviluppo, es controllo delle versioni, sistemi di gestione dei ticket, ecc. Dopo mesi, è stato fatto, mentre la necessità di base è estremamente ovvia. Per me, questo è un grande demotivatore
  • Avvio di processi per condividere informazioni, ad es memorizzare documentazione / informazioni in sistemi come Confluence, ottenere stand-up quotidiani

Ci sono ovviamente fattori aggiuntivi, come i colleghi e l'interazione. Soprattutto, è personale per ogni individuo.

ci si annoia quando si è sulla stessa cosa per lunghi periodi di tempo

Secondo me, questa è una delle cose più facili a cui rimediare. Inoltre, è personale ed è qui che entra in gioco la risposta di Sourav: chiedi ai tuoi sviluppatori!

Cose semplici che possono essere fatte per aiutare a rimediare alla noia:

  • Vai ai meetup! Forse la cosa più semplice. I tuoi sviluppatori possono discutere, con persone che non conoscono, delle tecnologie utilizzate da ciascuno, dei metodi e dei processi, dei progetti su cui stanno lavorando, ecc. Ecc. Questo è divertente e condivide le conoscenze, qualcosa che gli sviluppatori amano fare. Inoltre: apporta ulteriori conoscenze in (!) all'azienda
  • Organizza meetup! Wow, al contrario. Sì, costerà denaro (gli sviluppatori adorano la pizza), ma se lasci che gli sviluppatori se ne occupino, darà loro qualcosa che è correlato al lavoro, ma non la loro routine quotidiana (sì, dopo 2,5 anni, un il progetto è una fatica)
  • Avere hackaton interni (e possibilmente organizzati come un meet-up)! (pizzaaahh !!) Pensa a un tema, ordina la pizza. Partire. Potrebbe non produrre qualcosa di grande valore, ma è divertente, nuove tecnologie vengono provate, ecc. Ecc.
  • Cambia un po 'i team. Se hai alcune isole all'interno dei tuoi sviluppatori, ad es. quel ragazzo fa devOps, quelli sono back-end, quelli 2 sono front-end, accendili un po '. Condividi compiti / responsabilità. Spingere verso tutti almeno capendo tutto (diverso dal poter fare tutto). Potrebbe rallentare un po 'lo sviluppo, ma promuove l'apprendimento e la condivisione delle conoscenze.
  • Se il tuo datore di lavoro si sente generoso, ruba un'idea da Google e dedica del tempo settimanale a progetti di sviluppo personale, ad es. ogni mercoledì pomeriggio, a partire da 2 ore prima dell'orario di chiusura, tutti gli sviluppatori non lavorano su progetti di lavoro, ma sui propri. Dipende dalla tua azienda se quei progetti debbano essere o meno qualcosa che l'azienda potrebbe in seguito anche trarre profitto, puro auto-miglioramento per gli sviluppatori o completamente non correlato (ad esempio lavorazione del legno o qualsiasi cosa sia possibile in ufficio)

Alcune idee. Potrebbe non aiutarti completamente, ma sicuramente alcune di queste cose sarebbero possibili, divertenti per i tuoi sviluppatori e porterebbero variazione nella routine che è il lavoro.

Robin Bennett
2019-05-13 18:33:51 UTC
view on stackexchange narkive permalink

In un progetto di lunga durata, è probabile che ci siano processi che possono essere automatizzati o altri lavori ripetitivi che possono essere refactoring. Prenditi del tempo per affrontare problemi come questi, anche se non sono requisiti diretti.

Sono divertenti da lavorare, semplificano la vita di tutti e faranno risparmiare tempo durante la vita del progetto.

E sono molto più facili da vendere alla direzione che un "giorno di hacking".

Kols
2019-05-13 17:30:57 UTC
view on stackexchange narkive permalink

Lavorare su un vecchio progetto spesso non è così interessante come creare qualcosa da zero. Alcuni dei motivi potrebbero essere:

  1. Lo stack tecnologico è diventato vecchio e gli sviluppatori vogliono lavorare e imparare nuove tecnologie.
  2. Il progetto è troppo grande ed è diventato difficile da mantenere.
  3. Il prodotto è veramente maturo e non c'è molto da fare oltre alla semplice manutenzione. Questi lavori possono essere ripetitivi.
  4. Vogliono semplicemente fare qualcosa di nuovo.

Parla con il tuo team per trovare il motivo. In base ai motivi per cui puoi provare,

  1. Migra il progetto a tecnologie più recenti.
  2. Suddividi il progetto in microservizi.
  3. È possibile ruotare i ruoli un po 'per poco tempo? Questo potrebbe ravvivare le cose se il lavoro è molto ripetitivo. Assicurati che gli sviluppatori siano d'accordo con i nuovi ruoli.
  4. Puoi provare a fare qualcosa di nuovo con il processo di sviluppo interno. Se CI / CD non è ancora implementato, implementalo.
La suddivisione del progetto in microservizi è un argomento enorme e deve essere pianificato ed eseguito con cura
@Vokail concordato.Ma se il grande progetto è una causa di questo problema, la divisione potrebbe aiutare.
user18840
2019-05-12 22:01:20 UTC
view on stackexchange narkive permalink

Nel nostro team, ci sono 3-4 sviluppatori che partecipano a questo progetto negli ultimi due anni e mezzo.

Questi sviluppatori sono altamente demotivati ​​e questo sta davvero influenzando il loro lavoro. Personalmente penso che possano fare meglio di quello che stanno facendo attualmente.

Hai un manager a cui riferire? Sono sicuro che non sei tu quello che riferirebbe direttamente al CEO / CTO. Quel manager ti chiede delle prestazioni della squadra? Se sì, allora organizza un incontro con gli sviluppatori e il manager. Decidi su quali tecnologie le persone vogliono lavorare.

A volte l'azienda ha un prodotto duraturo e non è sempre possibile dare a tutti sempre nuovi progetti.



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