Domanda:
Come gestireste gli standard di codifica errati e non flessibili in un nuovo lavoro?
Tony
2014-07-15 19:04:26 UTC
view on stackexchange narkive permalink

Lavoro nella mia posizione attuale solo da poco più di 3 mesi e ritengo che alcuni degli standard di codifica in atto vadano contro le mie migliori pratiche personali. Lo scontro più grande sembra essere quando si scrive codice SQL, mi piace rendere il mio codice molto leggibile, facile da capire e facile da testare ma a quanto pare questo non fa parte degli standard qui e mi viene chiesto di rimuovere gli elementi che ho inserito promuovere le mie migliori pratiche che ancora una volta mi rendono più facile e veloce e sono sicuro che gli altri che vengono dietro di me per capire e testare.

Il garante è il mio manager e molto severo riguardo agli standard e lo rende quasi impossibile per ottenere una parola e ignora completamente qualsiasi ragionamento dietro le mie azioni ricadendo su "questo non è standard". Perché non possono essere allora? Perché non renderli standard? Cosa c'è di sbagliato nell'avere un codice di facile comprensione che lo renda facile da testare e modificare?

L'altra parte della mia frustrazione deriva dal sentirmi come se fossi l'unica persona a cui vengono imposti questi standard. Ho trovato molte volte codice che mi fa rabbrividire e non corrisponde ancora a quelli che sono i nostri standard .. esiste ed è stato scritto di recente.

In questo momento questa è la mia più grande preoccupazione per il luogo in cui lavoro, mi piace che abbiamo degli standard e che siano applicati, ma non sto scavando l'inflessibilità e la chiusura mentale degli standard e sta diventando molto frustrante.

Inoltre stamattina ho iniziato a sentire una nuova frase ", [Director's Name] non piace ... "sebbene non stia più scrivendo codice e credo che il suo stile di codifica personale non dovrebbe imporre un possibile miglioramento degli standard.

Cosa faresti? Mi sento come se fossi bloccato tra l'incudine e il duro.

Tuttavia, questo post parla meno di quali sono i miei standard e più di come gestire un conflitto di standard, specialmente quando ritieni che ostacolino la velocità in cui lavori.

Non so se stai chiedendo aiuto con gli standard di codifica (fuori tema qui, prova i programmatori), o se stai chiedendo come persuadere il tuo manager a cambiare (nel qual caso i problemi di codifica dettagliati sono un po 'di distrazione ). In ogni caso, le discussioni sugli standard di codifica SQL non appartengono ai commenti qui (perché riguardano gli standard di codifica SQL * e * perché sono discussioni), quindi li elimino. Suggerisco di modificare la tua domanda per concentrarti sull'aspetto specifico del posto di lavoro. Grazie.
Sono d'accordo e aggiornerò quando posso.
Ricorda che gli standard di codifica riguardano la definizione di convenzioni su tutta la base di codice, in modo che il programmatore che dovrà mantenere il codice cinque anni dopo che hai lasciato l'azienda non debba capire le convenzioni idiosincratiche di ogni programmatore. Non stai diventando meno efficiente seguendo gli standard: stai essenzialmente investendo quel tempo nella documentazione del tuo lavoro. (Sì, un buon programmatore dovrebbe essere in grado di leggere qualsiasi stile comune. D'altra parte, ho visto alcuni programmatori che, abbandonati a se stessi, hanno scritto codice così idiosincratico da rompere il debugger!)
@Tony - Vedi la mia domanda sull'essere nuovi e sulla promozione del cambiamento ([Quanto tempo dovrei sostenere per apportare modifiche dopo aver iniziato un nuovo lavoro?] (Http://workplace.stackexchange.com/questions/23220/how-soon-should -i-avvocato-per-fare-cambiamenti-dopo-l'inizio-di-un-nuovo-lavoro)). Potrebbe essere utile.
Cinque risposte:
enderland
2014-07-15 19:26:56 UTC
view on stackexchange narkive permalink

Non sei un fiocco di neve speciale né lavori sotto vuoto

le mie migliori pratiche

A meno che tu non sia il tuo manager, non lo fai arrivare a dettare quali standard utilizzare. E anche se probabilmente lavorerai per gli altri e dovrai comunque rispettare i loro standard.

Questa è una parte significativa della realtà del lavoro per gli altri.

Mantieni anche in mente gli standard hanno molta storia in molti casi. Forse qualche sviluppatore precedente ha fatto qualcosa che ha causato un sacco di problemi quando lo sviluppatore se n'è andato. Forse un manager ha avuto un viaggio di potere. Questo non sarà mai immediatamente chiaro, soprattutto come nuova persona.

L'altra parte della mia frustrazione deriva dal sentirmi come se fossi l'unica persona a cui vengono imposti questi standard.

Sospetto che ciò sia in parte, se non interamente, a causa del tuo atteggiamento. Ci sono molti fattori oltre al tuo lavoro che influenzano il punto di vista del tuo capo su di te.

A questo punto, è probabile che il tuo capo si senta un dipendente problematico. Tutto nella tua domanda dice: "Ho ragione, perché gli idioti con cui lavoro non capiscono e non mi credono! È così ovvio!"

Cosa faresti?

Se vuoi avere un'influenza significativa sul tuo posto di lavoro, impara a "giocare" alla politica dell'ufficio.

Un altro controllo della realtà: se vuoi iniziare a influenzare le persone è necessario farlo in modi che siano efficaci. Ciò significa che le competenze delle persone sono più importanti delle conoscenze tecniche. Prima di essere in disaccordo con questo, renditi conto che tutta la tua domanda è il risultato di questo problema: se le competenze tecniche / la prospettiva fossero della massima importanza non avresti dovuto porre questa domanda.

Questo è il temuto " la componente politica "al lavoro che la maggior parte delle persone tecniche evita.

Una componente chiave della politica è comprendere che il" come "è più importante del" cosa ".

Le persone dimenticheranno ciò che hai detto

Le persone dimenticheranno quello che hai fatto

Ma le persone non dimenticheranno mai come le hai fatte sentire.

Nuova persona che discute con la direzione (specialmente se vengono coinvolti i registi) non è una buona mossa di carriera, quasi mai. Questo è diverso dal disaccordo costruttivo.

Fasi dell'azione

  1. Parla con il tuo manager. Indica che ti dispiace per la discussione e chiedi se puoi parlare secondo gli standard attuali
  2. In questa conversazione, smetti di discutere. Comprendi il "perché" di ciò che suggerisce il tuo manager. Non presumere automaticamente "sei un idiota"
  3. Ascolta quello che dice il tuo manager per "perché". Se non capisci, cerca di capire il perché - non provare nemmeno a non essere d'accordo o a dire "ma, ma, ma". Le persone generalmente si mettono sulla difensiva quando litigano con loro. E diventa molto più disponibile ad ascoltare se ascolti e cerchi di capire prima.
  4. Dopo aver compreso appieno perché il tuo manager vuole questi standard (probabilmente dovresti dire qualcosa come "Quindi, se ho capito bene, i motivi perché questi standard sono X, Y, Z "- se non puoi farlo, hai bisogno di maggiori informazioni), chiedi qualcosa come:" Sarebbe ok se spiegassi cosa ho fatto e perché determinare se potrebbero essere incluso nello standard? "

Procedi con leggerezza in questa conversazione. Se hai un qualsiasi livello di argomentazione, è probabile che perdi gravemente, dato che hai precedenti con il tuo manager.

Bel post, il mio atteggiamento mi ha apparentemente travisato dalle risposte che ho ricevuto finora, ma a prescindere vedo ancora valore in questa risposta. Per essere chiari, non discuto con la direzione o con nessuno. Il mio manager mi complimenta costantemente per le mie capacità, la qualità del lavoro e sì, anche la mia capacità di seguire gli standard più di altri. Le mie capacità personali non sono male, anche se principalmente rimango a testa bassa e mi limito a modificare il codice. Tuttavia, ho un debole per la politica e accetto di dover imparare a interpretarla meglio.
@Tony a volte il problema principale delle persone è riconoscere che il loro atteggiamento è ostile / polemico. Non riesco a contare il numero di conversazioni che ho avuto, su me stesso o su altri, che fondamentalmente sono "sei stato davvero conflittuale" seguito da "davvero? Come mai?" Anche questa è una parte importante della politica, capire l'impatto / l'immagine che presenti.
@Tony vale anche la pena notare che sei abbastanza nuovo per l'azienda. Quindi la tua capacità di influenzare il cambiamento è limitata. Io, come te a quanto pare, sono il tipo di persona che entra in un'azienda e continua a sondare e spronare per cercare di spostare le cose in una direzione migliore. Dirò però che è una danza molto delicata politicamente parlando, ed è quasi interamente politica. Ogni cambiamento che proverai a fare incontrerà resistenze di qualche tipo, alcune sono facili da superare, altre saranno una lunga campagna di logoramento per logorare l'opposizione. Scegli le tue battaglie, una battaglia alla volta, procedi con calma e mantieni le metriche.
Contrassegnando questa come la risposta, penso che sia stata scritta bene nonostante alcune idee sbagliate e fornisce alcuni buoni feedback in generale che anche altre persone in altri settori potrebbero trovare utili.
@Tony potresti anche trovare utile [questa domanda] (http://workplace.stackexchange.com/q/12173/2322).
La frase del titolo dovrebbe essere lo slogan del sito o precompilata nella casella Fai una domanda o qualcosa del genere :)
Sono d'accordo con questo tranne che non lo eleverei nemmeno al livello di "politica". Secondo me la politica riguarda la comprensione (e forse la manipolazione) delle varie relazioni tra un gruppo di persone. Si tratta solo della capacità di base di interagire con una persona (il tuo capo) in modo vagamente produttivo :-)
cdkMoose
2014-07-16 00:58:42 UTC
view on stackexchange narkive permalink

Ottime risposte sopra, ma vorrei aggiungere un altro punto.

Buono, cattivo o no, c'è una storia rispetto a questi standard. Se vengono seguiti, è probabile che sia presente una significativa base di codice scritta in base a questi standard. La tua richiesta di modificare gli standard creerebbe la necessità di rivisitare l'intera base di codice per ristrutturare il vecchio codice. Questo potrebbe essere uno sforzo significativo e aggiunge il rischio di modifiche involontarie al codice. Se il team non tocca il vecchio codice, ora stai abbandonando due (o più) standard.

Nella mia esperienza, se hai più di uno standard, probabilmente non ne hai davvero nessuno.

Ogni volta che viene introdotto un nuovo standard, questo standard di solito non viene applicato al codice legacy fino a quando questo codice legacy non richiede un aggiornamento logico (quindi una nuova funzionalità o una correzione di bug). Cambiare codice solo per aderire a un nuovo standard è pericoloso e irresponsabile.
Sono d'accordo sul codice legacy, ma ci sono molti progetti in corso là fuori che hanno una storia pluriennale che potrebbe essere influenzata. Uno se le app che il mio team ha creato e che sta attualmente migliorando hanno oltre 200.000 righe di codice. Se qualcuno suggerisse un nuovo standard per quel codice, la risposta sarebbe molto probabilmente no.
Sono d'accordo e gli standard sembrano essere molto vagamente seguiti qui, tranne quando si tratta di me. Continuo a ricevere la riga "altri prima di me non li hanno applicati ma lo sono", il che va bene, ma vedo ancora il codice proveniente da altri non conforme. Gli standard che sto cercando di non cambiare nemmeno chiedo solo che consentano sono semplicemente basati su commenti che consentono una comprensione più rapida. Sono d'accordo con quello che hai detto però.
Dan
2014-07-15 19:27:14 UTC
view on stackexchange narkive permalink

So che questo non è quello che vuoi sentire, ma la triste verità è che le aziende (o meglio le persone che le gestiscono) non sempre seguono la logica o il "modo migliore". Questo per una serie di motivi, alcuni ragionevoli (compatibilità, conformità, standardizzazione ecc.), Altri no (paura del cambiamento, mancanza di comprensione, ecc.).

L'altra sfortunata verità è che non sei sempre in grado di cambiare la situazione. Alcune cose non cambieranno mai, altre cose che potresti essere in grado di influenzare nel tempo. Quello che dirò, tuttavia, è che sei un nuovo membro dello staff ed è chiaro che c'è una vera forza trainante per fare le cose in un modo particolare. Il mio suggerimento sarebbe di modellarti su questi, che ti piacciano o no, e valutare la tua posizione quando sarai ulteriormente integrato nell'azienda.

Combattere con i dirigenti e i leader dell'azienda è un gioco pericoloso nel migliore dei casi - anche quando sei in cima all'albero tecnico, le persone che possiedono e gestiscono l'azienda possono (ea volte lo faranno) dominarti. Farlo quando sei nuovo è al limite del suicidio.

Sono d'accordo, non discuto e sono conforme agli standard (tutte le 30 pagine di standard C # e SQL che sono stati impostati) la mia frustrazione è quando sento che gli standard ostacolano le mie prestazioni. Tuttavia, onestamente la direzione non è consapevole della mia frustrazione perché non l'ho davvero verbalizzata, annuisco e dico sì ok, lo aggiusterò, forse dopo aver chiesto perché, ma la maggior parte delle volte sono indifferente e lo cambio appena sono nuovo e sto ancora imparando tutti gli standard, ma raramente vengo corretto perché li seguo abbastanza bene. Esito positivo!
Oldtimer
2014-07-16 17:58:00 UTC
view on stackexchange narkive permalink

Solo perché il motivo di uno standard non è visibile non significa che sia irrazionale.

Anche se sono d'accordo con tutto quanto detto sopra (sui nuovi dipendenti che necessitano di massimizzare le loro capacità personali e l'apprendimento della politica aziendale locale ) una cosa che può aiutarti ad abbassare il tuo livello di frustrazione è capire che alcuni standard di codifica si basano non tanto su fattori illogici e arbitrari ma piuttosto su validi ma invisibili quelli.

Considera il tuo esempio che hai descritto come

"un altro standard WTF con cui mi limito a rotolare ma che sembra completamente inutile"

In realtà ho visto questo standard esatto in due diverse organizzazioni e c'era una ragione molto valida per questo.

In entrambi i casi ho scoperto che la direzione utilizzava alcuni software per analizzare il processo di evoluzione di & di sviluppo del codice e questo software aveva aspettative rigorose su come sarebbero stati formattati i commenti (ovvero standard). Le righe "TICKET" che descrivi potrebbero includere solo " commento: " nel tuo reparto, ma più avanti nella produzione potrebbero verificarsi incidenti live che richiedono risoluzione dei problemi e modificare il software. I tecnici e la direzione coinvolti in tali eventi potrebbero aggiungere righe TICKET con elementi come " problema: ", " correzione: ", " modifica: ", " riferimento: ", " prova: ", " decisione: " e persino " norma: ". Se vieni assegnato a lavorare sulla correzione / aggiornamento del codice legacy, potresti vedere alcune righe come quella tu stesso.

Una cosa concreta che posso suggerirti è cercare di imparare qualcosa chiamato "ITIL" e / o "ITSM". Si tratta di raccolte di best practice di livello mondiale per l'IT, sia da un punto di vista tecnico che da una prospettiva di gestione allo stesso tempo. Non ti prendo in giro che può essere molto difficile capirli all'inizio se sei un puro tecnico (non manageriale), ma a lungo termine migliorerà notevolmente la tua capacità di vedere il "quadro generale" e può essere considerato un abilità commerciabili e / o promuovibili se decidi di arrivare al punto di ottenere la certificazione ITIL.

+1 per "valido ma invisibile". * Soprattutto * per un nuovo dipendente.
Sono d'accordo sul pezzo valido ma invisibile, la parte triste è però, non una singola persona sta usando di nuovo questo formato di commento solo sono costretto mentre vedo altri lasciare commenti senza nemmeno un numero di biglietto o una descrizione reale di ciò che stanno aver fatto. Come accennato in altri posti, onestamente mi sento come se fossi l'unico che si aspettano di seguire uno standard solo perché sono nuovo mentre altri possono avere un libero per tutti. ITIL mi rende triste, una lunga storia alle spalle che non condividerò qui. Anche solo dire una presentazione di 8 ore con qualcuno che ti parla è una giornata lunga!
Mi piace quello che hai detto sulle altre varianti che potrebbero andare con l'idea del biglietto, per me la parte del commento avrebbe molto più senso se usassimo un set come hai descritto, in realtà mi rende più facile inghiottire.
guest
2014-07-16 02:36:37 UTC
view on stackexchange narkive permalink

Tutti buoni consigli su: il nuovo ragazzo non dovrebbe fare ondate, ecc e sì, a volte è meglio solo tapparsi il naso e seguire standard, politiche, ecc.

Ma a volte la gestione è sbagliata; a volte gli "standard" di un'azienda sono davvero cattivi o peggiori.

In tal caso, trova un altro lavoro; la lunga esperienza mi ha insegnato che è impossibile riparare un'organizzazione disfunzionale. Quei luoghi hanno una cultura di auto-rafforzamento e se rimani lì troppo a lungo, anche tu ti spezzerai.

Per favore, spiega in tutti i colloqui di lavoro il modo in cui desideri un nuovo lavoro, in questo modo è molto meno probabile che avrai di nuovo lo stesso problema :-)
Sì sono d'accordo. Il mio problema è che salto i lavori troppo spesso così com'è. Finiscono sempre per fregarmi o trovo qualcosa che non posso affrontare. Essendo solo 3mo in, sto cercando di resistere qui. Sfortunatamente questo non è l'unico problema, ma nel momento in cui ho scritto questo post è stato il problema più offensivo lol. Sono assolutamente d'accordo, però, gli zombi che mangiano il cervello fanno male.


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