Domanda:
L'azienda rende ogni ingegnere del software un temp di 1 anno senza benefici. Questo sta portando a un breve termine nel codice
theywontcatchbugs
2019-11-22 23:58:15 UTC
view on stackexchange narkive permalink

Sono recentemente assunto (1-2 mesi) responsabile dello sviluppo software. Da quando sono arrivato, ho trovato due pratiche problematiche.

  1. La maggior parte degli sviluppatori inizia con contratti temporanei di un anno. Retribuzione a tasso di mercato, ma nessun beneficio e devono presentare nuovamente domanda di lavoro ogni anno. Il team di sviluppo è per lo più giovane o legato alla nostra città per motivi familiari, quindi l'abilità degli sviluppatori è ancora alta. Tuttavia, anche il turnover è piuttosto alto perché le persone iniziano a cercare lavoro a 8 mesi (poiché non permettiamo loro di provare a rinnovare fino all'11 ° mese). Tuttavia, la maggior parte viene rinnovata se si applica.

  2. Usiamo Scrum come strumento di gestione del progetto (non è stata una mia scelta per tutti voi sviluppatori che odiano Scrum, quindi non posso cambiarlo), completo di utilizzo dei punti dallo Scrum Master per stimare il lavoro. Il problema è che le revisioni delle prestazioni degli sviluppatori (apparentemente non fatte da me) vengono fatte dal nostro Scrum Master usando i punti ei bonus si basano sulle recensioni. Non aiuta il fatto che il nostro Scrum Master sia un tipo di Executive Vice President poiché il progetto è considerato una posta in gioco estremamente alta per la nostra azienda.

Ciò a cui queste due pratiche portano è una coorte di sviluppatori concentrati principalmente sulla produzione di codice con poca considerazione per la fattibilità a lungo termine. I casi limite vengono ignorati, i file React.jsx diventano enormi per salvare il lavoro di creazione di nuovi componenti e tutto ciò che non è esplicitamente nelle specifiche (dal proprietario del prodotto non tecnico che fondamentalmente si dimentica di tutto ciò che vedono sul frontend) non lo è incluso.

Un esempio è che volevano un campo di input per il numero di telefono per qualche raro caso d'uso per i nostri clienti più costosi. L'input sarà visto solo in uno scenario paralizzante per gli affari davvero negativi. Il proprietario del prodotto non ha specificato che il numero deve essere salvato e le istruzioni di emergenza inviate tramite SMS (quello era l'intento), quindi non lo era.

Come dovrei affrontare questo problema? Mi sento un sorvegliante, non un manager.

Non voglio insistere sui miei sviluppatori in quanto potrebbero smettere. I 5 punti extra per uno sprint (le prestazioni elevate sono considerate più di 18) significano molto per loro (il bonus può essere il 20% dello stipendio).

La direzione vuole il controllo in quanto per noi questo è il progetto di sviluppo prioritario. Il mio manager dice che le sue mani sono legate dai dirigenti. Ha detto che probabilmente avrebbe potuto ottenere più soldi dagli sviluppatori permanenti, ma questo è tutto.

Le risorse umane hanno l'autorità di rinnovare i contratti prima, ma non lo faranno perché "riceviamo ancora domande per i programmatori quando pubblichiamo i lavori, quindi c'è un grande surplus."

Sig. Scrum Master dice che ci dà già più margine di manovra per gestire noi stessi di quanto Scrum permette (non molto agile ma ok).

Ho chiesto a uno dei miei sviluppatori temporanei di star e il suo punto di vista era che "dovrei restare, ottenere un bel progetto sul tuo curriculum e smettere non appena arriva la fine. Lascia il mucchio fiammeggiante di merda t di manutenzione al ragazzo successivo. "

Sto esaurendo le idee qui per provare a risolvere questo problema.

Quali opzioni potrebbero esistere per correggere o mitigare le prospettive a breve termine degli sviluppatori che si stanno facendo strada nel codice?

Perché ti aspetti di risolvere ciò che l'alta dirigenza non riesce a vedere?
@SolarMike non sono sicuro che mi aspetto di più.Di più, spero solo che possa esserci qualcosa che non ho provato.
@SolarMike alcuni di essi sono ego.Sono il tipo di persona che risolve i problemi molto tempo dopo che gli altri li considerano non degni di essere risolti.A volte questa testardaggine ripaga bene.Altre volte, spreco tempo e denaro in futilità.Quindi sentiti libero di dirmi se pensi che questa sia una di quelle volte.
Mi spiace, non sono chiaro quale sia la domanda qui.
Fondamentalmente, quali opzioni potrebbero esistere per correggere le prospettive a breve termine degli sviluppatori che si stanno facendo strada nel codice?
@JoeStrazzere 1 se possibile e 2 se questa è l'unica via percorribile.
In una nota a margine, penso che dovresti dividere questo in due domande diverse.
Non sono d'accordo con la chiusura come troppo ampia, poiché la vera domanda è stata ora formulata e mi sembra una domanda perfettamente rispondente (sebbene molto suscettibile alle risposte di tipo x / y problema).
Cinque risposte:
dwizum
2019-11-23 00:39:55 UTC
view on stackexchange narkive permalink

In un commento, hai chiarito la tua domanda come,

quali opzioni potrebbero esistere per correggere le prospettive a breve termine degli sviluppatori che si stanno facendo strada nel codice?

Piuttosto che affrontare direttamente le sfide specifiche che stai descrivendo (cioè come affrontare il tuo frustrante Scrum Master), penso che sia più prezioso fare un passo indietro, rimpicciolire e considerare una struttura per risolvere ciò che percepisci come problemi di qualità sul posto di lavoro, in generale.

Il problema con la qualità sul posto di lavoro è che, in molte situazioni, è arbitrario e altamente personale. Hai accennato a questo tu stesso in un altro commento quando hai detto,

Sono il tipo di persona che risolve i problemi molto tempo dopo che gli altri li considerano non degni di essere risolti

Questo mi dice che probabilmente hai una valutazione della qualità più rigorosa rispetto ad altri con cui stai lavorando. Le differenze nella percezione della qualità o del processo porteranno quasi sempre al tipo di conflitto che stai avendo. È facile che si trasformi in una spirale di argomenti, senza concentrarsi su ciò che stai effettivamente cercando di ottenere.

Quindi, prima di provare a risolvere uno qualsiasi dei tuoi problemi specifici, fai un passo indietro. Procedi come segue:

  • Determina, ad alto livello, quali sono gli obiettivi della tua azienda.
  • Determina come o perché questi obiettivi sono rilevanti per il tuo progetto.
  • Ri-inquadra i tuoi problemi attraverso la lente di questi obiettivi, man mano che si applicano al tuo progetto
  • Considera se i tuoi problemi devono ancora essere risolti e, in tal caso, sviluppa una soluzione che rimanda chiaramente ai tuoi obiettivi identificati.

Lo sviluppo del software è (quasi sempre) un mezzo per raggiungere un fine. La qualità del software e / o il tipo di problemi che i tuoi sviluppatori a breve termine stanno introducendo possono essere davvero frustranti per un perfezionista. Può sembrare un problema insormontabile. Tuttavia, seguendo i passaggi precedenti, puoi aiutare te stesso a vedere questi problemi dal punto di vista dell'azienda, invece che dal tuo punto di vista personale.

Questo è importante perché potrebbe comportare uno dei due risultati:

  • Potresti renderti conto che le cose che vedi come problemi non sono realmente problemi. Questo è un momento di epifania comune per sviluppatori di software e responsabili dello sviluppo di software che sono abituati a perseguire un senso di perfezione. La maggior parte degli sviluppatori di software con formazione formale è stata addestrata all'idea che ci sia sempre una risposta migliore, o una soluzione migliore, e questa è l'unica che conta. Nel mondo reale, abbastanza buono è abbastanza buono. Se un team di software genera output che soddisfano le esigenze dell'azienda e si adattano agli obiettivi dell'azienda, questo è tutto ciò che conta.

Se non riesci a trovare un modo per creare un "file React.jsx di grandi dimensioni" rilevante per gli obiettivi dell'azienda, devi smetterla di preoccuparti. Ma se puoi dimostrare che il fatturato ha una correlazione diretta con la capacità della tua azienda di raggiungere i suoi obiettivi, potresti ottenere una certa trazione.

D'altra parte, il fatto che un campo di immissione di un numero di telefono non avere la funzionalità desiderata sembra essere un problema serio e facile da inquadrare in un contesto che l'azienda capirà. Ma sembra che sia più un problema di requisiti errati piuttosto che di turnover tra sviluppatori.

In definitiva, le aziende non assumono team di sviluppo software perché vogliono creare il miglior software al mondo. Assumono team di sviluppo software perché vedono il software personalizzato come un modo per risolvere i loro problemi aziendali. Pertanto, quando tu, in qualità di leader del team, incontri cose che ritieni siano problemi, l'approccio migliore è quello di controllare te stesso rispetto agli obiettivi dell'azienda e a quei problemi di business.

E poi se tu sei ancora sicuro che sia un problema, assicurati di inquadrarlo dal punto di vista del business invece che dal punto di vista dello sviluppo del software puro. Un'azienda che vede lo sviluppo del software come una merce - un mezzo per un fine - non considererà facilmente il fatturato un problema serio a meno che tu non le aiuti a capire perché, in termini che capiranno e con una soluzione che abbia senso all'interno della loro struttura.

Buona analisi.Problema comune nel mondo del software.
Nathan Cooper
2019-11-23 07:52:02 UTC
view on stackexchange narkive permalink

Il comportamento dei tuoi colleghi si basa sui loro incentivi. I loro incentivi sono fissati a un livello molto alto.

Non so quale sia la tua esperienza o il tuo posto nell'organizzazione, ma dal momento che non hai nemmeno voce in capitolo nei processi utilizzati per lo sviluppo , Non credo che tu occupi un posto di significativo potere organizzativo. (E a proposito, voi ragazzi state facendo la forma più oscura di Dark Scrum di cui abbia mai sentito parlare). Sei super nuovo. Non hai alleati. Il tuo manager o è fatalista su questo o non gliene importa davvero. La tua organizzazione è organizzata in modo così disfunzionale che le risorse umane (ovvero il personale amministrativo) sono quelli che decidono come vengono trattati gli sviluppatori.

Quindi, in realtà, hai un'opzione:

Continua a lavorare qui fino a hai le capacità e l'esperienza per lavorare meglio da qualche parte, allora fallo. E forse seleziona meglio le aziende.

Che è esattamente quello che ha detto il tuo "star temp dev", perché è una reazione intelligente all'ambiente in cui si trovano.

Non ricordo dove nella Scrum Guide si dica che l'autonomia del team è una brutta cosa e che lo scopo della stima delle storie per l'iterazione è in modo che l'SM possa fare revisioni delle prestazioni del personale.Il tuo SM è un vero SM o la sua qualifica è arrivata gratuitamente nei suoi cereali?
AndreiROM
2019-11-23 00:30:50 UTC
view on stackexchange narkive permalink

Mi sembra che tu stia giocando una mano perdente:

  • il tuo manager non sente di avere il capitale politico per spingere per il cambiamento (che subito è una bandiera rossa che è lì per imporre semplicemente lo status quo)
  • i superiori non capiscono che la loro nave è diretta verso il disastro (un'altra bandiera rossa)
  • lo scrum master non ha idea che il il lavoro che sta spingendo a portare a termine è inutile, o peggio, danneggia la tua base di codice (l'ennesima bandiera rossa)
  • i dipendenti stanno giocando con il sistema per ottenere bonus (nessuna azienda è riuscita a incoraggiare la mancanza di coinvolgimento con le esigenze e gli obiettivi dell'azienda)
  • sebbene tu veda il disastro imminente, le tue mani sono legate

La cosa più semplice da fare sarebbe iniziare a cercare un nuovo lavoro e lascia che queste persone (pazzi?) gestiscano il loro circo nel modo che preferiscono.

Se, tuttavia, stai cercando di restare in giro per un po ', potresti voler impostare un po' di tempo obiettivi a termine su ciò che si desidera migliorare e st l'arte che spinge piccoli cambiamenti incrementali.

Ad esempio, lottare per avere un paio di tecnici nello staff (a tempo pieno) e inviarli alle riunioni di raccolta dei requisiti, in modo che gli sviluppatori temporanei ottengano specifiche migliori. Oppure rivedi tu stesso i requisiti prima che il lavoro venga svolto (questa potrebbe essere una buona soluzione temporanea).

Spingi lentamente per più sviluppatori a tempo pieno o ottieni quelli su cui devi concentrarti sulla revisione dei temp qualità del codice. Fai in modo che chiunque effettui le revisioni per iniziare a includere la qualità del codice nei criteri, ecc.

Un elemento fondamentale è che dovresti stabilire linee di comunicazione molto forti con chiunque sia lo scrum master e convincerlo a renditi conto che devi essere coinvolto in ciò che viene fatto (discutere la revisione dei requisiti prima degli sprint, ecc.). Voi due dovete essere alleati, assicurandovi che il lavoro svolto sia pertinente e a prova di futuro, non semplicemente che uno sviluppatore soddisfi il suo obiettivo mal definito.

Col ​​tempo, potresti creare una situazione "abbastanza buona" che ti consenta di affrontare il debito tecnico che hai accumulato.

Thomas Shaw
2019-11-23 00:48:50 UTC
view on stackexchange narkive permalink

Mi sento come se la maggior parte (se non tutti) gli sviluppatori fossero lavoratori temporanei, questo avrebbe dovuto essere una bandiera rossa da prima che tu ti unissi.

Come suggerito da @AndreiROM (non sono abituato all'etichetta di etichettatura StackOverflow), la migliore alternativa sarebbe "lasciare che queste persone gestiscano il loro circo come preferiscono".

Il problema sembra essere la cultura aziendale. Se non c'è un gruppo forte e definito di sviluppatori in grado di imporre pratiche standard e aspettative di codifica definite, significa che la barca non è ancorata correttamente ed è una questione di tempo prima che finisca a riva.

O:

Ottieni un buon progetto da aggiungere al tuo portafoglio e uscirne a breve termine

o ...

Prova ad apportare modifiche sostanziali a tutta l'azienda


L'opzione A è probabilmente l'opzione migliore in generale e ti renderebbe libero di cercare facilmente altre opzioni.

L'opzione B, d'altra parte, significa che sei disposto e in grado di andare controcorrente e cercare di ottenere sviluppatori permanenti e sbarazzarti del tuo debito tecnologico già esistente. Questa opzione può creare una buona storia dell'eroe per provare a salire la scala, se è quello che stai cercando. Ma ti consiglio di non farlo.

"Mi sento come se la maggior parte (se non tutti) gli sviluppatori fossero lavoratori temporanei, questo avrebbe dovuto essere una bandiera rossa da prima che tu ti unissi". Sarebbe stato.Alcuni degli sviluppatori più recenti non sapevano di essere temporanei finché non l'ho scoperto.Lo sappiamo solo perché abbiamo provato a richiedere del denaro per la formazione e abbiamo scoperto che 2/3 degli sviluppatori non sono idonei a causa dello stato temporaneo. Le attuali offerte di lavoro per gli sviluppatori non menzionano nemmeno la natura temporanea.È solo un po 'nascosto nella lettera di offerta.
Goose
2019-11-23 10:30:39 UTC
view on stackexchange narkive permalink

Non ci sono vantaggi per gli sviluppatori nel fare le cose bene. C'è tuttavia un vantaggio per fare le cose velocemente: il bonus. Non ho riscontrato alcuna penalizzazione per il lavoro scadente e ho aggiunto il fatto che il loro contratto potrebbe o meno essere rinnovato in x mesi e hai praticamente eliminato l'incentivo agli sviluppatori a fare le cose bene.

cosa è importante per te / azienda e struttura il tuo sistema di ricompensa di conseguenza. Il tuo attuale sistema di ricompensa valuta la velocità di consegna, non la sua qualità.



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...