Come essere produttivo come programmatore poco frequente? [chiuso]

4

Il mio lavoro attuale è principalmente la gestione dei progetti e il lavoro di collegamento con i clienti, ma a volte mi coinvolgo nella codifica vera e propria. Lo faccio sia perché ho una visione chiara di ciò che voglio che il risultato sia (ed è più facile da implementare che spiegarlo), perché ho competenze pertinenti o semplicemente per aggiungere risorse.

Ma sto riscontrando un paio di problemi ricorrenti:

  1. Il tempo di avvio per essere produttivi può essere proibitivo. Installare strumenti di sviluppo, ottenere l'accesso a sistemi rilevanti, codice sorgente ecc. E semplicemente arrivare al punto di una prima build completa.
  2. Il sovraccarico di lavorare su una base di codice in rapido movimento può essere proibitivo. Non è insolito in uno dei miei progetti dover ricostruire completamente l'ambiente (cioè, controllare e ricostruire tutto il codice di nuovo, incluso creare un nuovo database locale, popolarlo ecc.) Ogni mese circa.
  3. Peggio ancora, se smetto di fare codice per più di 2 settimane, perdo completamente tutto il mio "stato" mentale: non ricordo dove sono installate le cose, non ricordo quale di molte directory di lavoro è "quello giusto", non ricordo come risolvere un messaggio di errore che ho visto più volte in passato. (Sospetto che il mio logoramento mentale sia molto più veloce della media.)

Apprezzerei molto i suggerimenti di chiunque altro in questa situazione. Finora, ho lavorato così tanto:

  1. Solo codice in blocchi di tempo solidi - minimo 2 giorni. Non riesco a fare nulla in poche ore alla volta.
  2. Documento, documento, documento. Mantieni fogli di calcolo che memorizzano lo stato il più possibile. Se esistono diversi sistemi in cui viene distribuito il codice, registra tutte le directory principali, i numeri di porta, i nomi utente, i nomi dei database ecc.

Che altro?

    
posta Steve Bennett 18.04.2012 - 03:27
fonte

3 risposte

3

Il tuo chilometraggio può variare con quanto segue, ma questo è quello che farei se fossi nei tuoi panni. Sei in una situazione piuttosto difficile con quello che stai cercando di fare, quindi fallo con powertools.

- > se non lo hai ancora fatto, fai in modo che il team costruisca una "dev VM", una macchina virtuale che usano come master d'oro da cui avviare le VM utilizzate per lo sviluppo effettivo.

L'obiettivo è che la VM venga attivata con tutti gli strumenti già installati, i relativi file di configurazione già presenti, ecc. L'unica cosa che uno sviluppatore dovrebbe fare è creare un account per se stesso e copiare nelle chiavi del repository, fonte control uid / pass, o quant'altro.

Ciò contribuirà a garantire che chiunque (tu incluso) possa rapidamente girare e creare una build locale, e aiuterà a eliminare quei momenti così speciali che il bug è evidente solo se Joe costruisce il sistema. / p>

- > prima controlla le tue API

Costruisci un cablaggio di prova per il tuo codice prima del codice. Chiama la nuova API che stai inventando. Quindi crea un'API totalmente non funzionale che ha solo le chiamate di funzione, i tipi di restituzione, ecc. Ma nessuna implementazione diversa da "return (" example return value ") o simile.

Questo darà al resto della squadra qualcosa da masticare. Per una squadra che è abituata ai suoi membri, un nuovo membro può essere dirompente. Ciò contribuirà a ridurre al minimo tale interruzione.

- > scegli uno sviluppatore a tempo pieno come "punto di contatto" e una conversazione di 5 minuti con loro ogni giorno. Niente di più, niente di meno.

Lascia che ti dica se hanno problemi con quello che hai contribuito ieri. Ascolta, non difenderti. Quindi, dì loro quello che speri di inserire nel codice oggi. Assorba il loro feedback. Di nuovo, ascolta, non difenderti. Ringraziali per averti aiutato alla fine di ognuno di questi incontri.

Questa è la chiave. Non sei uno degli sviluppatori principali: sono una squadra, sei un add-on per il loro team. Chiedere aiuto a un "mentore" pagherà numerosi dividendi e aiuterà il team a capire che non stai cercando di essere di disturbo. Che ci crediate o no, molto probabilmente, guarderanno i vostri contributi alla base di codice come dirompenti, a meno che non andiate a lunghezze come questa riunione di 5 minuti al giorno per aiutarvi a essere coinvolti con il team invece di lanciare il codice in cima al loro sistema.

    
risposta data 18.04.2012 - 03:58
fonte
5

Ecco i miei pensieri su questa situazione:

  1. Concentrati su una tecnologia per essere competente con (o con una serie di tecnologie ..).

  2. Costruisci la macchina di un programmatore con tutto il software necessario e tienilo a portata di mano per non dover ricostruire o installare costantemente le cose.

  3. Migliora la tua tecnologia. conoscenza della scelta facendo spesso piccoli progetti. Non devono essere correlati al lavoro tutto il tempo. Questo ti permetterà di concentrarti sui tuoi punti deboli. Guadagnerai di più spendendo tempo per imparare ciò che non sai.

  4. Renditi conto che non è possibile per tutte le persone svolgere contemporaneamente i ruoli di un PM e di un programmatore (molti possono farlo, ma molti non possono farlo). Ognuno di questi lavori richiede molto tempo.

  5. Pensa perché sei davvero così attaccato alla programmazione. Se questo è ciò che vuoi fare per vivere, fai la mossa. Se è più un hobby, sai meglio di farlo al lavoro:)

  6. Guarda il tuo livello di sforzo, mentre stai cercando di essere bravo in entrambi i lavori. Temo che se un giorno lascerai la tua posizione attuale, non sarai nemmeno una stella. Forse dovresti scegliere un percorso e dominarlo.

risposta data 18.04.2012 - 03:54
fonte
4

L'opzione migliore è non codificare, la prima ragione è una delle peggiori per fare il codice: sedersi con uno sviluppatore e trasmettere conoscenze e abilità superiori - imparare a lasciar perdere o mai più. Il secondo motivo è encomiabile, ma trovo raro che un codice PM faccia andare la squadra più veloce del PM che fa cose che non codificano, che interrompe la codifica dei codificatori a tempo pieno.

Il tuo lavoro è project manager e in quanto tale è massimizzare la produttività dei team. La codifica professionale è un lavoro che richiede dedizione e impegno, non qualcosa da inserire nel tempo libero. Un PM deve essere in grado di essere interrotto. Questo è un brutto modo di programmare. I due lavori si combinano bene solo in team con meno di 2.

Piuttosto che codice, chiediti quali sono i lavori che i tuoi migliori sviluppatori fanno per te. Puoi testare, scrivere requisiti tecnici o manuali utente, puoi aiutare con le revisioni del codice, prepararli per il caffè e ordinare la pizza ... cioè fai le cose che ti piacciono e lascia che si concentrino sulle cose che sono brave a .

Se devi codificare, ti suggerisco di lavorare su correzioni di errori non urgenti e funzionalità minori. È un lavoro che deve essere fatto, ma non importa se è "tardi". Se è importante in qualche modo - lascia fare agli esperti.

    
risposta data 18.04.2012 - 06:43
fonte