Il lavoro di manutenzione dedicato ostacola la carriera di un programmatore? [chiuso]

51

La maggior parte del mio lavoro nel corso degli ultimi tre anni è stata in gran parte basata sulla manutenzione di sistemi legacy che necessitavano di patch o di aggiornamenti occasionali prima di essere nuovamente venduti.

Capisco il ruolo fondamentale che i programmatori di manutenzione dedicati devono svolgere nelle aziende con un gran numero di progetti e sviluppatori limitati a disposizione.

Ma mentre giudico i miei progressi in carriera e guardo i miei coetanei; appaltatori e sviluppatori aziendali allo stesso modo; Mi sento come se fossi molto indietro dal momento che ho acquisito una grande ampiezza in termini di aree che ho toccato ma non molto profondità. Ho iniziato a parlare di questo avviando un blog, lavorando ai miei piccoli progetti di git-hub e riprogrammando la mia vita per avere il tempo di fare la codifica personale dopo il lavoro su base regolare.

Ho l'impressione che se dovessi intervistare altre aziende per sfuggire al lavoro di manutenzione, dovrei rappresentare me stesso come una ragazza piuttosto giovane dal momento che non avrei il livello di conoscenza richiesto a una persona con tre anni di esperienza focalizzata su un particolare percorso nello sviluppo di funzionalità. Quindi metà della mia attuale esperienza lavorativa non sarebbe valida a lungo termine.

Ma questo mi porta alle mie domande principali, scuse se questo si sente troppo centrato sul mio dilemma personale,

I ruoli dedicati alla programmazione della manutenzione finiscono per essere dannosi per una carriera iniziale? Gli altri programmatori hanno ragione di evitare ruoli come questi? Fare questa linea di lavoro ti blocca a svolgere compiti simili a meno che tu non sia disposto a ricominciare da junior?

    
posta Gyurme 04.06.2013 - 10:32
fonte

5 risposte

70

Do dedicated maintenance programming roles end up being detrimental to an early career? Are other programmers right to avoid roles like these? Does doing this line of work lock you into doing similar tasks unless you're prepared to start over as a junior?

Innanzitutto, dovresti sapere che sei considerato un junior per un po 'di tempo. Puoi ottenere promozioni arbitrarie perché sei bravo e questo è l'unico modo per darti un salario decente, ma sarai comunque considerato un junior mentre ti dirigerai al tuo prossimo lavoro.

In secondo luogo, se assumo qualcuno con 2-4 anni di esperienza, non mi interessa davvero se il loro lavoro fosse puramente di manutenzione. Se hai passato 10 anni in manutenzione e sto assumendo un progetto di greenfields, potrei avere delle domande ma, per i primi anni, onestamente me lo aspetto.

D'altra parte, se assumo qualcuno che non ha MAI lavorato in manutenzione, sarò più sospettoso. Ho avuto molti candidati per lavori che hanno trascorso i loro primi 4 anni saltando da un "buon" lavoro a un altro e nessuno ha imparato nulla su ciò che rende il codice mantenibile. E, per non sbagliare, se sto assumendo un progetto di greenfields con cui intendo attenermi, non mi interessa se conserverai il codice, mi interessa che tu sappia come lasciarlo disponibile per i futuri sviluppatori.

Questi altri programmatori che hai citato, che evitano lavori come questi, generalmente li evitano perché sono meno divertenti, non perché ostacolano la loro carriera.

Infine, dovresti sapere che una percentuale molto ampia (presumibilmente penso all'incirca all'80%) dei lavori di sviluppo software è più del 50% di manutenzione.

Quindi, per tagliare tutto questo e rispondere alla tua domanda: No, non penso che possa ostacolare la tua carriera. A meno che tu non resti lì troppo a lungo. La regola generale è che "una volta che inizi a sentirti come se avessi lo stesso anno di esperienza ogni anno, è ora di andare". Se ti senti, ogni anno, come se tu fossi uno sviluppatore migliore di quello che eri l'anno scorso, stai bene (e questo vale per me, 20 anni nella mia carriera, tanto quanto te).

    
risposta data 04.06.2013 - 12:02
fonte
13

In qualsiasi lavoro, l'esperienza che ottieni è specifica di ciò che stai facendo, il che limita la tua gamma di possibilità quando fai domanda per altri lavori basati su quell'esperienza. Non è specifico per la manutenzione. Penso che le altre domande siano più pertinenti del fatto che qualcosa sia manutenzione o sviluppo di un nuovo software:

  • Quanto sono diffuse le tecnologie specifiche con le quali stai lavorando? Se stai mantenendo qualcosa che è obsoleto e usato raramente altrove, allora ciò limiterà le tue future opportunità di carriera (ma lo sviluppo di un nuovo software per un sistema / piattaforma / tecnologia che non è ampiamente utilizzata).
  • In che modo il tuo lavoro attuale ti fornisce il lavoro che vuoi fare in futuro? Il lavoro di manutenzione, come hai sottolineato, è importante e sarà sempre presente. Non c'è niente di sbagliato nell'avere una carriera incentrata su questo tipo di programmazione; ci saranno sempre molte possibilità per i manutentori del sistema. Ma forse non è ciò che tu vuoi fare. È una preoccupazione se il tuo lavoro attuale non ti sta preparando per ciò che ti interessa.

Tuttavia, non sarei troppo preoccupato. Una cosa che dici è:

I've gained a great deal of breadth in terms of the areas I've touched but not much depth.

Non pensare a questo come a un problema, perché può essere usato a tuo vantaggio. Avere una vasta esperienza significa che c'è una vasta gamma di cose a cui puoi dire "sì, l'ho fatto". Molti lavori richiedono esperienza in diverse tecnologie e attività. Probabilmente avrai un vantaggio rispetto a uno sviluppatore che ha un'esperienza molto profonda in una tecnologia.

Inoltre, molti lavori comportano un misto di manutenzione e nuovo sviluppo. Se si desidera eseguire ulteriori nuovi sviluppi, è possibile utilizzare l'esperienza di manutenzione esistente per passare a un ruolo misto che offrirà una maggiore esperienza di sviluppo.

In conclusione, il tuo curriculum è probabilmente migliore di quello che pensi sia. Gran parte di ciò dipenderà dal modo in cui analizzi i punti di forza della tua esperienza e poi comunicherai quei punti di forza nel processo di applicazione e intervista.

    
risposta data 04.06.2013 - 10:59
fonte
2

Do dedicated maintenance programming roles end up being detrimental to an early career?

Molto spesso - SÌ, assumendo:

  • che carriera qui significa esperienza in molte diverse abilità tecniche.
  • che trascorri più di X anni là, dove X è sufficiente per "impostare" i tuoi modi di pensare.
  • che non fai niente da parte.
  • che "manutentore dedicato" (vedi EDIT, sotto) significa che non codifichi per mantenere il codice così come , ma che quasi sempre codice per mantenere o anche lavorare su un progetto in modalità di manutenzione - nessuna nuova funzionalità, richieste minime modifiche al codice per correggere il bug.

Questo non significa che sia sempre il caso.

Le persone che mantengono il software sono raramente incoraggiate (vedi EDIT, sotto) per fare ricerche, raramente possono inserire nuova libreria o DB e passare qualche giorno a scoprire come funziona. È (di solito) un lavoro stabile che richiede modifiche minime alla base di codice esistente e quindi "modella" il modo in cui si affrontano i problemi in seguito. Posso citare alcune aziende che hanno una politica per la manutenzione del software che afferma esplicitamente "meno modifiche nel codice = migliore", nonostante le cose brutte che questo può portare.

Are other programmers right to avoid roles like these?

Conosco ottimi manutentori a cui piacciono i loro lavori e non vorrebbe fare domanda per qualcos'altro proprio perché è comodo dove sono. Non a tutti piace imparare cose nuove ogni tanto. Quindi - evita o cercalo a seconda delle tue preferenze.

Does doing this line of work lock you into doing similar tasks unless you're prepared to start over as a junior?

Molto spesso - SÌ. Perché hai già esperienza nel farlo, perché già "conosci le corde" ecc. Ma lo spostamento è sicuramente possibile e può accadere senza richiedere una posizione junior. Hai già iniziato a fare le cose da parte, continua! Questo è davvero molto utile e può ridurre il "gap di competenze" che hai notato.

EDIT: Dan ha sottolineato (molto correttamente) che spesso le attività di manutenzione possono essere svolte con la ricerca. Questo è vero. Ho cambiato la risposta sopra in due punti per meglio affrontarlo.

Tali compiti potrebbero sicuramente essere fatti in questo modo e se lo sono - grandioso! Tuttavia, la maggior parte dei manutentori DEDICATI dei sistemi LEGACY di AFAIK hanno politiche o aspettative di gestione e scadenze che - ancora, più spesso che non - li costringono a risolvere il problema con il minimo cambiamento possibile. Spesso la pressione è abbastanza alta che anche se puoi farlo in questo modo, potresti non volerlo. Soprattutto se non è il TUO codice: senza teoria (come per Ryle e Naur) dietro di te rischi di danneggiare di più di quello che aggiusti.

Tuttavia, va notato: non ho dati globali concreti, parlo per esperienza personale - ho lavorato in una situazione come OP, ho reclutato persone con 4 - 10 anni di esperienza come manutentori, ho parlato con molti manutentori e conosco persone che lavorano come manutentori dedicati . Non solo persone che codificano cose nuove, ma anche codice per mantenere un progetto - manutentori dedicati, il solo compito è di creare bug e patch e nemmeno una nuova funzionalità, perché è un vecchio progetto e ora è solo in "modalità di manutenzione".

    
risposta data 04.06.2013 - 16:48
fonte
1

I would have to represent myself as being quite junior in skill level since I would not have the depth of level of knowledge required of a person with three years experience focused on a particular path in feature development would

Una corretta. Non saresti in grado di dire "3 anni di esperienza nella progettazione di sistemi da zero usando X, Y e Z", dovresti dire "3 anni di esperienza MANTENIMENTO dei sistemi da zero usando X, Y, e Z "a meno che tu non voglia mentire sul tuo CV.

I feel that were I to interview at other companies to escape maintenance work I would have to represent myself as being quite junior in skill level since I would not have the depth of level of knowledge required of a person with three years experience focused on a particular path in feature development would

Se vuoi dire "progetto e costruisco sistemi da zero" allora sì, dovresti classificarti da junior.

Ciò che è abbastanza comune in IT, (e non sto dicendo che questo è ciò che stai facendo) è che le persone assumano che, poiché hanno lavorato per X anni, hanno X anni di esperienza e dopo {numero indeterminato di anni} dovrebbero essere considerati uno sviluppatore Senior {Widget}.

Ora, non fraintendermi, non c'è niente di sbagliato nel lavoro di manutenzione, tutti devono farlo in un momento o in un altro, ma ciò che hai realizzato è che rimanere bloccati per troppo tempo probabilmente renderà difficile per te per allontanarti da quel ruolo in futuro. Questo spesso va di pari passo con l'essere "bloccati" non apprendendo nuove tecnologie / strumenti / metodi.

Idealmente, vuoi un mix di "nuovo" lavoro di sistema e lavoro legacy.

Su una nota positiva, presumibilmente hai visto molte architetture diverse (buone e cattive), approcci diversi, in che modo le decisioni sbagliate possono rendere i programmatori legacy molto più difficili in futuro. Questi sono tutti positivi che possono essere accentuati.

Buona fortuna!

    
risposta data 04.06.2013 - 11:36
fonte
0

Considerando questo da un punto di vista diverso, ritengo che vendere te stesso come esperto in manutenzione sia un'opportunità commercializzabile.

Come proprietario di una società di software che ha più progetti in movimento, uno dei maggiori rischi che devo ridurre sono gli sviluppatori che salpano e la successiva manutenzione del loro codice.

Quindi, supponendo che tu sia in grado di crescere con passione per il lavoro di manutenzione (che suppongo sia il caso dal momento che sei pronto a parlare della tua esperienza), se tu venissi da me offrendoti i tuoi servizi come guru della manutenzione - garantendo per lucidare tutti i vari progetti dei miei sviluppatori rifattorizzando, ottimizzando e documentando il loro codice per la manutenibilità a lungo termine - e avevi un track record per eseguire il backup della tua garanzia, ti assumerei in un attimo.

Il mio consiglio è di dare una prova adeguata. Posizionati come esperto di manutenzione e coltiva il tuo blog. Potresti essere a qualcosa.

    
risposta data 05.06.2013 - 20:32
fonte

Leggi altre domande sui tag