Ispirare un collega ad adottare migliori pratiche di codifica?


24

Nella domanda sulla gestione del mio antiquato collega , varie persone hanno discusso delle strategie per trattare con i colleghi che non sono disposti a integrare il loro flusso di lavoro con quello del team.

Vorrei, se possibile, apprendere alcune strategie per "insegnare" a un collega che è semplicemente ignorante delle tecniche e degli strumenti moderni, e forse un po 'apatico.

Ho iniziato a lavorare con un programmatore che fino a poco tempo fa ha lavorato in un relativo isolamento, in una parte diversa dell'azienda. Ha una vasta conoscenza del dominio e, soprattutto, ha dimostrato buone capacità di risoluzione dei problemi , cosa che sembra mancare a molti candidati.

Tuttavia, il codice attuale (C #) che ho visto è un ritorno ai giorni VB6. Struttura procedurale, notazione ungherese, variabili globali (abuso di static), nessuna interfaccia, nessun test, non utilizzo di Generics, lancio System.Exception... si ottiene l'idea.

Questo programmatore è un po 'più vecchio di me e, almeno per le prime impressioni, non cerca attivamente un cambiamento positivo. Non dirò resistente al cambiamento, perché penso che sia in gran parte un problema di come l'argomento viene affrontato e voglio essere preparato.

I programmatori tendono ad essere persone testarde, e andare avanti con le pistole infuocate e istituendo revisioni del codice da brivido e politiche rigorosamente applicate molto probabilmente non produrrà il risultato finale che desidero. Se questo fosse un nuovo assunto, un programmatore junior, non ci penserei due volte a prendere una posizione da "mentore", ma sono estremamente diffidente nel trattare un dipendente esperto come un principiante all'oscuro (cosa che non è - semplicemente non ha tenuto il passo con alcuni progressi nel campo).

Come potrei fare per aumentare lo standard di qualità del codice di questo sviluppatore alla maniera di Dale Carnegie, attraverso una leggera persuasione e incentivi non materiali? Quale sarebbe la migliore strategia per attuare cambiamenti sottili e graduali, senza creare una situazione contraddittoria?

Altre persone, in particolare i principali sviluppatori, si sono già imbattute in questo tipo di situazione? Quali strategie hanno avuto successo nello stimolare l'interesse e nel creare una dinamica di gruppo positiva? Quali strategie non hanno avuto successo e sarebbe meglio evitare?


chiarimenti:

Sento davvero che molte persone rispondono in base ai sentimenti personali senza realmente leggere tutti i dettagli della domanda. Si prega di notare quanto segue, che avrebbe dovuto essere implicito ma ora sto esplicitando:

  • Questo collega è solo il mio "anziano" in virtù dell'età. Non ho mai detto che il suo titolo, la sfera di influenza o gli anni nell'organizzazione superino il mio, e in effetti nessuna di queste cose è vera. È un programmatore LOB che è stato assorbito nel negozio di sviluppo principale. Questo è tutto.

  • Non sono un nuovo assunto, un programmatore junior o un altro idiota ingenuo con grandi progetti per trasformare l'azienda durante la notte. Fondamentalmente sono responsabile del processo del software, ma lo sapranno tutti coloro che hanno lavorato come "lead", le responsabilità non sempre sono correlate esattamente all'organigramma.

  • Sto non chiedere alla gente come ottenere il mio modo, venite inferno o l'acqua alta . Potrei farlo se volessi, con il risultato netto che questa persona diventerebbe risentita e / o abbandonata. Per favore, cerca di capire che sto cercando un metodo sociale e cooperativo per guidare il cambiamento.

  • La menzione di "... variabili globali ... nessun test ... lancio System.Exception" aveva lo scopo di dimostrare che i problemi non sono solo superficiali o estetici . Le pratiche che possono funzionare per app CRUD relativamente piccole non funzionano necessariamente per le app di grandi aziende e, in effetti, finora nessuno dei codici ha superato i test di integrazione.

Per favore, prova a prendere la domanda al valore nominale, accetta che io sappia davvero di cosa sto parlando e rispondi alla domanda che ho effettivamente posto o vai avanti.

PS La mia più sincera gratitudine a coloro che hanno offerto consigli costruttivi piuttosto che litigare con la premessa. Ho intenzione di lasciarlo aperto per un po 'di più mentre spero di sentire di più nel modo delle esperienze del mondo reale.


9
Sono stato in questa situazione e non l'ho mai visto risolto con successo. Molte persone come la tua hanno smesso di pensare alla programmazione anni fa; a questo punto sono interessati solo a soluzioni per il loro dominio aziendale. Non mi unirò ai carrozzoni di questo sito che condannano tali persone; anzi penso che siano il sale della terra. Se funzionano nel tuo codice, dovresti spingere almeno per far aderire le tue convenzioni. Non ho avuto difficoltà a vendere che le persone dovrebbero seguire le convenzioni esistenti se il contributo a un progetto.
Jeremy,

1
Cosa ha detto il tuo capo quando hai sollevato questa preoccupazione con lui?

2
@Aaronaught, dal momento che il suo codice funziona, questo non è un problema tecnico ma politico, e probabilmente uno che deve essere imposto dall'alto se vuoi cambiare qualcosa. In altre parole dal tuo capo. Tieni pronti i buoni argomenti!

2
@Thor: Quindi pensi che sia assolutamente impossibile che il suo stile sia semplicemente il prodotto di basse aspettative, nessuna revisione tra pari e una vita frenetica che non si presta bene all'apprendimento indipendente durante il tuo tempo personale? Non preoccuparsi non è un tratto di personalità cablato, è un prodotto del proprio ambiente e può essere cambiato. Non sapere è ancora più facile da cambiare, ma deve ancora essere affrontato con un certo livello di diplomazia.
Aaronaught,

1
@Aaronaught, o hai fallito miseramente di essere un'ispirazione (che non può essere esclusa) o non vuole essere ispirato. Considereresti di codificare i tuoi test unitari a Lisp o Haskell se un collega più giovane ti dicesse che è molto più intelligente di quello che fai ora?

Risposte:


10

Il punto di partenza è conoscere il tuo pubblico . Sembra che tu lo capisca già perché conosci la differenza tra tutorare un collega junior e influenzare un collega senior.

Hai ancora bisogno di capire cosa motiverà questo particolare individuo. Ciò che funziona su un vecchio geezer (come me), potrebbe non funzionare per il tuo vecchio geezer.

Se gli piace insegnare / insegnare agli altri, potresti affrontare un problema ponendo domande del tipo "perché lo fai in questo modo?" Questo può far andare una finestra di dialogo in cui puoi chiedergli di valutare nuovi approcci e dare la sua opinione.

Se il problema persiste, puoi segnalare i bug che possono essere evitati utilizzando le pratiche o gli stili che vorresti che adottasse. Questo richiede molto più lavoro perché devi trovare i bug e mostrare come i comportamenti che desideri incoraggiare potrebbero aiutare.

Se sembra disposto ad aiutare gli altri, puoi appellarti al suo desiderio di aiutare i neofiti . Spiega che "i bambini di oggi" non sono abituati a vedere il suo stile di programmazione e sarà più probabile che lo infrangano a causa di ciò.

A volte potresti dover solo metterlo in faccia e forzare il problema. Devi scegliere attentamente queste battaglie. Assicurati di iniziare con un argomento in cui sai che puoi provare a lui che hai un modo migliore.


Sembrano buone strategie generali. Dovrei essere chiaro che questo è solo VB6, non COBOL. Forse 5-7 anni dietro i tempi, non 20-30 anni. Quindi non un geezer / dinosauro.
Aaronaught,

1
Non vorrei chiedere "Perché lo fai in questo modo?" Ciò potrebbe avere un effetto negativo: metterlo immediatamente sulla difensiva. È possibile che il collega semplicemente non lo sappia e tu non desideri che si senta ignorante. Invece, chiedi "hai preso in considerazione questo metodo?"
Estratto

@IAbstract Se gli piace insegnare, non diventerà difensivo, si godrà l'opportunità di insegnare. Il tono e l'atteggiamento faranno la differenza. Se sembra che potresti facilmente aggiungere "Idiot" alla fine della domanda, allora non lo stai facendo bene? :-) Nella mia esperienza, molte persone sono disposte a rispondere a domande sincere.
jimreed

@IAbstract: sono abbastanza sicuro se ho chiesto qualcosa del tipo, "hai preso in considerazione l'iniezione di dipendenza qui?" la risposta sarebbe "eh?" Naturalmente c'è la possibilità che io possa essere piacevolmente sorpreso, ma penso che Jim abbia ragione, è un migliore avviatore di conversazione chiedersi "cosa ti ha fatto decidere di usare qui un Foooggetto con portata globale ?" Non prevedo che essere interpretato come un attacco; sono io che sto cercando di capire il design esistente.
Aaronaught,

@Aaronaught: abbastanza giusto;) Mentre la reazione a DI potrebbe essere "eh?", Potrebbe innescare una conversazione interessante come, "beh, ne ho sentito parlare ma ..." ... la mia preoccupazione è principalmente il tono (come sottolinea jimreed) Certamente, come dice jimreed, devi scegliere le tue battaglie - a volte significa portare un grosso bastone, a volte significa giocare insieme nella sandbox.
Estratto

4

Penso che tu abbia l'atteggiamento giusto. Assicurati solo di dire tutte le cose carine che hai già detto - Grandi capacità di problem solving, conoscenza approfondita del business, ecc. E chiedigli solo un po 'del suo tempo per mostrargli gli standard attuali che il gruppo è usando e dargli la possibilità di porre alcune domande su di loro.

Quando ti riunisci, portagli un caffè o qualcosa del genere e fagli sapere che lavorare secondo gli standard gli porterà benefici facilitando il supporto del tuo codice esistente e facilitando anche la possibilità che qualcuno lo aiuti se viene coperto nel lavoro (un grande vantaggio per qualcuno che ha lavorato in isolamento), ecc.

Assicurati che sia fidanzato e riceva buone spiegazioni del perché fai le cose che fai e non concentrarti sul perché non dovrebbe fare le cose che stava facendo, coinvolgere altre persone se necessario e farle spiegare a te. Renditi disponibile in seguito se ha domande e segui alcuni punti a cui può fare riferimento per esempi dei tuoi standard.

Se non è interessato dopo, puoi fare riferimento alla prima domanda che hai collegato.


4

È davvero il lavoro del tuo manager

  1. Renditi conto che l'azienda deve avere uno standard di codifica. Ogni azienda in qualche modo professionale ha questo, indipendentemente dalle dimensioni dell'azienda.
  2. Chiedi a tutti di sedersi insieme e iniziare a elaborare uno standard. In questo modo, tutti possono dire la loro e saranno quindi più motivati ​​a seguire lo standard.

Se il tuo manager non se ne rende conto da solo, non è qualificato per il proprio lavoro. E in tal caso, dovresti dare loro alcuni colpetti sopra i due sopra. I vantaggi di avere uno standard di codifica sono tanti, non ci sono davvero argomenti contro averne uno. (Se alcuni programmatori pensano di essere "artisti" e non dovrebbero essere limitati dai limiti della professionalità, dovrebbero invece trovare un lavoro facendo belle arti.)

Lo standard di codifica in sé dovrebbe innanzitutto concentrarsi sul divieto delle pratiche pericolose e delle funzioni pericolose delle biblioteche. Lavora verso un sottoinsieme più sicuro e più puro della lingua che stai utilizzando. Mantenere lo standard di codifica libero dallo "stile di codifica", poiché lo stile di codifica è molto più difficile da concordare e non altrettanto importante. È piuttosto classico che un'azienda decida di creare uno standard di codifica e poi si blocca immediatamente in una discussione senza senso su dove posizionare le parentesi graffe.

Per riferimento, controlla come sono scritti gli standard MISRA-C / C ++ e CERT C / C ++ / Java.


Questo sta facendo il presupposto (errato) che io lavoro per un editore di software con una struttura verticale. Meno del 10% degli sviluppatori lavorano per i produttori di software ed è non è necessariamente la responsabilità di un dirigente o di mezzo di microgestire gli sviluppatori.
Aaronaught,

2
@Aaronaught Bene, allora questa è la vera fonte del tuo problema. Se non fai parte di una squadra con uno standard di programmazione e almeno un programmatore veterano per guidare e guidare gli altri, questa è una cattiva organizzazione. Tutti codificheranno a caso, pensando di essere "artisti", ottenendo risultati mediocri, instabili, non mantenibili e non imparando a migliorare.

2

Prima di tutto devi chiarire PERCHÉ vuoi cambiare questo modo di lavorare di queste persone. Se è solo per motivi estetici, penso che dovresti riconsiderare, perché questa persona ha dimostrato che il suo modo di lavorare funziona davvero.

Se, tuttavia, c'è un motivo tecnico per questo, allora dovresti considerare di avvicinare detta persona con qualcosa del tipo:

Ho un suggerimento su come risparmiare tempo noioso per te e denaro per l'azienda. Sei interessato?

Essere consapevoli del fatto che si tratta di frutti a bassa pendenza perché molto probabilmente richiederanno il cambiamento delle abitudini esistenti che richiedono sempre uno sforzo extra.

Anche se hai milioni di suggerimenti, basta sceglierne uno o due e dimostrare che sarà un cambiamento in meglio.

O funzionerà e ti verrà chiesto se hai più suggerimenti, oppure no e il danno è limitato a uno o due suggerimenti.

Nota che è molto importante che diventi un successo e lo fa rapidamente.

Inoltre devi stare attento. Ci potrebbe essere molto buone ragioni per fare le cose nel modo in cui sono fatte, ma che sei troppo nuovo di aver visto perché. Quindi, sii rispettoso con il tuo anziano e chiedi prima di assumere che il tuo suggerimento sia migliore. Potresti imparare una cosa o due.


Grazie per la risposta costruttiva, anche se penso che avrebbe potuto fare senza il primo paragrafo.
Aaronaught il

@aaronaught, scusa, ma in realtà è abbastanza importante.

No, non è davvero importante. Sta rispondendo a una domanda completamente diversa e ho già fornito diversi commenti e modifiche chiarenti per indicare che non è pertinente. L'incapacità degli utenti di questo sito (e principalmente solo di questo sito) di separare la domanda "Dovrei" da "Come posso" è attivamente dannosa per la qualità generale e la coerenza del discorso qui. Il tuo avvertimento è valido, ma irrilevante e leggermente offensivo. C'è persino una meta domanda molto votata su questo argomento esatto.
Aaronaught il

1
@aaronaught, l'unica ragione per cui affermi di voler cambiare lo stile di codifica di queste persone è perché è diversa dal resto della squadra, e poi abbassi il suo stile affermando implicitamente che il tuo è migliore. Da qui il mio commento. Se non riesci ad accettare il suo attuale stile di codifica nella tua base di codice, allora organizza un incontro personale con lui e dillo, e che sei disposto a fare un grande sforzo per aiutarlo a capire come deve essere il suo codice.

1
@Aaronaught, per uno che avrebbe potuto fare senza il primo paragrafo, trovo la tua formulazione sorprendentemente offensiva. Pensi che chiamare gli altri patetici sia un esempio da seguire?

1

Vorrei scoraggiarti gravemente dal metterti in faccia perché ciò peggiorerebbe molto rapidamente la situazione. Mi rendo conto che è stato sollevato come un ultimo tipo di misura, ma nella mia esperienza, a questo punto, lo sviluppatore ha funzionalmente smesso di partecipare.

Forzare il problema potrebbe trasformare l'individuo in un nemico in cui stanno combattendo ogni tua azione. Ciò avrebbe davvero un impatto negativo sulla squadra e non finirà fino a quando qualcuno non si licenzierà o verrà licenziato.

Se questo individuo ha veramente conoscenza del dominio di cui hai bisogno / desideri, fagli documentare quella conoscenza.


1
-1 La domanda afferma già che il PO non ha intenzione di affrontarlo in modo conflittuale. Leggere attentamente la domanda del PO e rispondere a quella domanda specifica , piuttosto che discutere l'argomento in generale.
HedgeMage,

1

A partire dal romperlo delicatamente: non so quanto tu sia esperto e esperto nel dare feedback. Potresti già sapere, impiegare o addirittura aver rifiutato quanto segue, ma qui va comunque. Ci sono alcune linee guida su come dare feedback quando vuoi cambiare il comportamento di qualcuno. La struttura della conversazione che ho pensato, e cerco ancora di impiegare in situazioni in cui voglio dare un feedback (perché funzionano) sono le seguenti:

  1. Descrivi il comportamento che vedi. Questo deve essere un comportamento concreto. Esempio: "Vedo che stai usando molte variabili statiche nel tuo codice"
  2. Descrivi come ciò influisce su te / la tua squadra. Esempio: "Trovo difficile mantenere tale codice"
  3. Offri un ragionevole soluzione . (le possibili soluzioni sono menzionate in altre risposte e mi dilungherò in me stesso più avanti questa risposta.)
  4. Dagli l'opportunità di discutere la soluzione. Chiedigli cosa ne pensa della soluzione. Prendi la sua risposta al valore nominale. Gli hai dato la tua opinione ed è libero di accettarla o meno. *

Una rapida risorsa sul feedback è ad esempio disponibile su http://managementhelp.org/communicationsskills/feedback.htm (sebbene ci sia una pletoria di questo tipo di cose sul web)

Ora, per quanto riguarda la soluzione, da quello che sto leggendo nella tua risposta, mi accorgo che è molto intelligente e ha la giusta mentalità, ma è solo dietro le buone pratiche moderne. Questi richiedono tempo e fatica per padroneggiare, a parte l'apprendimento reale su di loro in primo luogo, quindi dovrai fornirgli l'opportunità di farlo. Ciò probabilmente significa raccogliere risorse di apprendimento (web, riviste, libri, qualunque cosa) come punto di partenza e fornirgli tempo libero per studiarle. Potrei immaginare di dargli ogni venerdì pomeriggio per allargare i suoi orizzonti sullo stile di programmazione, dove può fare tutto ciò che crede promuove tali obiettivi. Le persone vogliono intrinsecamente migliorarsi. Fornire i materiali e il tempo e ne faranno buon uso.

Forse ancora più importante, non aspettarti un cambiamento durante la notte. Ha fatto le cose a modo suo per molto tempo e probabilmente è diventato abbastanza bravo. Ci vorrà del tempo per diventare bravo in un nuovo modo di fare le cose, e per un po 'probabilmente non vedrà molto valore in nuovi modi, perché all'inizio non ce n'è. Il suo vecchio modo sarà probabilmente più efficace per un po '.

* Nota: la cosa divertente delle conversazioni è che sono molto difficili da modellare. Hanno una vita propria, quindi anche se sembra bello sulla carta, tende a confondersi un po '.


0

Spiega come vuoi che le cose vengano fatte e mostragli come funziona con le scelte di progettazione e architettura che hai fatto per il progetto all'inizio del progetto su cui lo farai lavorare. Siediti uno a uno (e privatamente) e spiega i problemi che hai visto nella sua precedente codifica e perché sono un problema per questo progetto. Chiedigli cosa deve avere per migliorare, ma chiarisci che non migliorare non è un'opzione.

Quindi utilizzare la revisione del codice come strumento per convincerlo a modificare i suoi metodi di lavoro. Pianifica un lungo periodo di tempo per il primo e parla davvero del motivo per cui preferisci questo e lascia che gli spieghi il suo ragionamento. Assicurati di ascoltarlo davvero, le persone sono più suscettibili di cambiare quando sentono che le loro preoccupazioni sono state affrontate. Aspettati nella tua pianificazione (ma non dirglielo) di avere una nuova elaborazione del primo compito e non accettarlo fino a quando non soddisfi gli standard del tuo team. Una volta che sa cosa ti aspetti e che non lo lascerai scivolare nell'interesse del tempo, probabilmente verrà al tuo modo di lavorare. Ma potresti usare la revisione del codice come strumento educativo per diverse iterazioni. Non devi essere cattivo di non accettare il lavoro fino a quando non soddisfi i tuoi standard, ma devi essere sicuro e coerente. Don'


-1

La domanda da $ 64.000 è se sta consegnando i suoi progetti in tempo e soddisfacendo i requisiti di funzionalità. Se è così, lo sta facendo bene. Non esiste un obiettivo giusto o sbagliato nello sviluppo del software. In definitiva si tratta di risolvere i problemi. E se i problemi sono risolti per la soddisfazione del cliente / cliente, quindi per definizione lo sviluppo del software viene eseguito correttamente.

Ovviamente diventa un problema completamente diverso se i suoi progetti non sono disponibili vengono completati. A quel punto i supervisori devono apportare modifiche, magari con il tuo contributo. Ma solo perché sta violando il tuo personale senso dell'estetica del codice o la saggezza convenzionale di oggi non significa che ciò che sta facendo sia "sbagliato". Non sei l'arbitro della definizione di "buon codice". Dopotutto, potrebbe avere una bassa opinione del tuo codice.

Quindi ... a meno che non ci sia davvero un problema con il suo lavoro (che non hai indicato che ci sia), non fare nulla. Parte dell'essere uno sviluppatore di successo sta imparando a fondere il codice con gli stili di altri sviluppatori.

Dopotutto, potrebbe venire qui e pubblicare una domanda simile su come trattare con uno sviluppatore meno esperto che è più interessato a tenere il passo con le mode piuttosto che a finire i progetti. Si tratta di prospettiva.


2
È per questo motivo che ho sottolineato che proviene da un'altra parte dell'azienda. Non ha avuto problemi a soddisfare i loro requisiti, ma i loro requisiti non sono i nostri requisiti. In particolare, i loro requisiti non sono diventati molto più avanzati di CRUD. E sì, c'è un problema con il codice; può funzionare bene in isolamento ma non supererà i test di integrazione, prestazioni o affidabilità. Non credo in metodologie rigorose come XP o TDD o altro, ma questa non è una questione di estetica o saggezza convenzionale, è una questione di requisiti di manutenzione.
Aaronaught,

3
Sto anche ridimensionando questo non per i motivi sopra, ma perché stai facendo diverse assunzioni ingiustificate. (a) Non sono meno esperto, (b) nessuna delle cose di cui sto parlando è giustamente chiamata "mode", e (c) questa è l'assunto più palesemente ridicolo - non è lo sviluppatore più produttivo su la squadra, e certamente non è più produttiva di me.
Aaronaught,

Se in realtà c'è un problema con ciò che produce, allora come ho detto , è un problema per il tuo supervisore o per chiunque sia il tuo supervisore reciproco. Ma non hai dimostrato che c'è un problema con ciò che offre al cliente / cliente, solo che non ti piace quello che ti offre. Qual è il mio punto, non sta scrivendo software per te. Quindi prima di andare a fare scalpore, mi assicurerei che non sia meno dispensabile di te.
GrandmasterB,

Per quanto riguarda le mode, rimani in giro per un po 'nel settore e ti renderai conto che sì, le migliori pratiche di oggi sono le cattive pratiche di domani in stile VB6. Per quanto riguarda il downvoting, sicuramente, sentiti libero. Sto solo rispondendo alla domanda come pubblicata. Non posso rispondere ai dettagli che non hai fornito.
GrandmasterB,

1
Non conosco il tuo curriculum, né so che i tuoi colleghi riprendono. So solo cosa hai posto nella domanda. Se fossero informazioni importanti, avresti dovuto includerle. E in base alle tue risposte ad altre risposte, potresti considerare che hai lasciato un po 'fuori, richiedendo quindi molte ipotesi da parte dei rispondenti. Ma se vuoi una risposta, supponendo che tu non sia il suo supervisore, il problema del tuo supervisore o del tuo supervisore reciproco preoccuparti di come non provocare scalpore. Rifiuta semplicemente il codice che sta causando un problema durante il test e segnala qual è il problema al tuo collega.
GrandmasterB,

-1

Come sviluppatore junior che parla con uno sviluppatore senior, è troppo rischioso per te provare ad avvicinarlo con idee migliori delle sue.

Il modo migliore per affrontare questo è cercare di convincere il proprio capo di una pratica migliore e vedere se decreterà che tutto il codice deve seguire standard specifici e essere applicato a tali standard attraverso revisioni del codice peer.

Una parte considerevole di persone è (anche se a un livello subcosciente) vendicativo, egotistico e difensivo, anche se sono completamente inconsapevoli dei propri motivi subconcisi, si offenderanno se si tenta di cambiarli o implicano che si sbagliano Comunque.

La catena di comando è il modo più sicuro di procedere perché DEVE ascoltare il suo capo, né gli deve piacere. Lascia che il capo sia il cattivo, ecco a cosa serve.

Se non riesci a vendere il capo o lui è il capo, risolvi i suoi bug, ma dai l'esempio nel TUO codice.


1
Questo sta rispondendo a una domanda completamente diversa da quella che ho posto. (a) Non sono uno sviluppatore junior, (b) il mio capo mi ha già delegato la maggior parte delle importanti decisioni di progettazione e di codice, (c) il suo codice non è noto per essere buggy, ma non è ben strutturato per OOP di C # / paradigma misto funzionale, e (d) l'essenza della mia domanda era come affrontare l'argomento in modo tale che non si offendessero.
Aaronaught,

1
@Aaronaught, a) "Questo programmatore è un po 'più vecchio di me" Ho assunto da questa affermazione che tu sei il suo "junior". b) Sembra quindi che tu sia il capo della tecnologia, avresti dovuto mettere quelle informazioni nella tua domanda, cambia notevolmente le cose. c) Se non sta seguendo le migliori pratiche e il suo codice non è difettoso, qual è il problema? Perché avvicinarsi a lui per qualcosa? Non aggiustare ciò che non è rotto. d) Ancora una volta, non avvicinarti a lui se non sta causando bug con un codice di scarsa qualità. Il vero problema è che non hai standard di codifica e sviluppo a cui tutti devono attenersi.
maple_shaft

Ho pensato che fosse chiaramente implicito nel mio riferimento a (non) "entrare con le pistole in fiamme e istituire revisioni del codice e strategie rigorosamente applicate" - perché dovrei anche menzionarlo se fossi un giovane ? E chi ha detto che non abbiamo standard? Non ha mai lavorato con il nostro team prima e sto cercando di introdurre gli standard senza essere un coglione .
Aaronaught,

-1 Non ha risposto alla domanda posta.
HedgeMage

-1

Non puoi.

Non puoi ispirare le persone a fare cose di cui non sono a conoscenza nello sviluppo del software. Parlo per esperienza mentre ho cercato di farlo spesso nella mia carriera e ogni volta il risultato finale è che il mio status diminuisce agli occhi dell'azienda; Sono stato anche licenziato o abbandonato per la frustrazione dopo che non è successo nulla, semplicemente per aver cercato di migliorare la cultura dello sviluppo intorno a me alle pratiche moderne.

Se il tuo collega non fosse ignorante, potresti mostrarlo. Dal momento che sono, tuttavia, non c'è nulla che tu possa fare poiché non sono in grado o si preoccupano abbastanza del software come artigianato per sforzarsi di adottare migliori pratiche di codifica. È probabile che se ci provi, lo ignoreranno o si muoveranno senza davvero capire, che dai suoni di ciò è ciò che stanno già facendo ("Sviluppo di tentativi ed errori", ovvero solo hackerare il codice fino a quando gli errori si fermano) .


4
Apprezzo la risposta, tuttavia, trovo difficile crederci principalmente perché ero esattamente questo tipo di programmatore "fallo" diversi anni fa. Nessuno mi ha mostrato - ho dovuto scoprirlo tutto da solo - ma sono sicuro che un leader sufficientemente persuasivo (se ne fosse esistito uno) avrebbe potuto effettuare lo stesso cambiamento. Solo perché alcune persone imparano tutto questo in modo indipendente non significa necessariamente che tutti gli altri siano una causa persa.
Aaronaught,

2
È vero, ma nella mia esperienza, se le persone si preoccupano di migliorare, hanno bisogno di poca motivazione per essere ispirate perché il desiderio è già lì - potrebbero aver bisogno di una spinta o di un consiglio, ma capiscono e vogliono migliorare, hanno solo bisogno di una guida. Mi sentivo allo stesso modo; Ho imparato modi sbagliati di fare le cose e ho pensato "Deve esserci un modo migliore" e ho iniziato la ricerca. Ciò che ho visto è che le persone che non migliorano o mostrano il desiderio di migliorare sono cause perse perché non vogliono migliorare. Detto questo, buona fortuna a dimostrarmi che ho torto :)
Wayne Molina,

1
Penso che quelli siano il tipo di affermazioni che devono essere motivate. Sarei sicuramente interessato a sentire (e più disposto a votare) alcune esperienze del mondo reale, rispetto a ciò che hai provato senza successo (e perché non ha avuto successo).
Aaronaught l'

1
Questo è vero a volte, ad esempio " vecchio cane, nuovi trucchi ": prova a spiegare a qualcuno come le tecniche hanno aumentato l'efficienza di recupero dei dati dell'800% e il collega si stringe nelle spalle.
Estratto

2
Il punto è che puoi farlo e le persone ti seguiranno, ma dovrai classificarti più in alto nella gerarchia. Non puoi farlo come semplice sviluppatore nella maggior parte dei team. Molti colleghi possono ricevere consigli non richiesti solo da qualcuno di livello superiore nella gerarchia. Se sei allo stesso livello, si sentiranno feriti e attaccati. Ricorda che il rispetto è guadagnato. Se li tratti bene e li comunichi in modo piacevole e piacevole, può funzionare anche se sei allo stesso livello.
Falcon,
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.