Cosa definisce il ruolo di "sviluppatore di software"


10

Sono uno sviluppatore software junior e lavoro per un'azienda da meno di un anno.

Mentre ho sempre pensato che essere uno sviluppatore di software significhi sviluppare software e CODE qualcosa, i miei compiti riguardano maggiormente il tipo di lavoro amministrativo, come l'impostazione di Jenkins, la replica SQL e così via.

Questo tipo di lavori è incluso in un ruolo di sviluppatore o uno sviluppatore sviluppa solo software? Dovrei parlare con il mio manager di questo? È un modo comune per le aziende di valutare le capacità di "sviluppo"?


9
Dipende da chi è il tuo capo dai capelli a punta.
Neil,

Ogni azienda definirà i ruoli in modo leggermente diverso. Chiedi al tuo manager quali responsabilità e aspettative comporta il ruolo.
Bernard,

4
Ci sono periodi in cui i carpentieri devono caricare legname, spingere carriole, ecc. Fa tutto parte del lavoro. Se sei un falegname inesperto, probabilmente stai facendo molto di più di un falegname senior.
Bryan Oakley,

1
Sviluppo software> scrittura del codice. Se uno sviluppatore di software non sa come configurare / utilizzare e / o non conosce il valore di (uno strumento come) Jenkins, per definizione sarebbe uno sviluppatore di software (molto) junior. Consideralo una formazione sul posto di lavoro e considera fortunato il fatto di non lavorare in un ambiente in cui devi eseguire il tuo server CI sulla tua macchina virtuale e mantenerlo sul tuo tempo per mantenere un livello di qualità del software che sia previsto, ma in pratica scoraggiato se strumenti come questi non sono consentiti nei loro "processi" (principalmente manuali).
michael

Risposte:


11

Mi sembra che abbiano assunto un junior perché non potevano permettersi un senior, piuttosto che in realtà volevano un junior (qualcuno in cui possono investire e mentore fino a quando non diventano senior). Ho gestito una squadra che ha avuto quella decisione forzata su di loro da manager che non conoscevano meglio.

Ha finito con tutti i tipi di lavori sfortunati come la creazione di video di formazione per gli utenti e così e ora mi sento ancora in colpa per questo, ma ero sotto pressione per la consegna e l'aspettativa era che l'aggiunta di un capo alla sala di sviluppo avrebbe solo accelerato le cose .

È un peccato, perché mette te e il tuo capo in posizioni difficili.

Probabilmente non ha alcun lavoro di cui si possa fidare di un giovane, e tutti gli anziani che potrebbe avere non possono essere distratti dal loro giorno per giorno. La semplice via d'uscita è quella di assegnare un sacco di compiti non di sviluppo ai giovani, con i quali non vuole davvero perdere tempo con gli sviluppatori senior.

Ma alcuni problemi derivano da questo.

Innanzitutto, il tipo di lavori devops che ti sta dando richiede davvero uno sviluppatore senior. In particolare, un server di build dovrebbe essere impostato da qualcuno che sta costruendo il software e sa dove si trovano i punti deboli.

In secondo luogo, il junior non sta diventando più utile. Dopo cinque anni, avresti comunque svolto le stesse attività, perché non ti potevi ancora fidare del vero lavoro di sviluppo.

In terzo luogo, i giovani alla fine (come hai fatto) si renderanno conto che non stanno aiutando la propria carriera. L'ipotesi che l'esperienza junior sia di bassa qualità, piuttosto che scarsa (e in cerca di) è un terribile, ma molto comune, errore in questo settore.

Quindi sì, siediti con il tuo capo. Ma capisci la situazione in cui si trova. Vedi se riesci a trovare un accordo che risolva i problemi di tutti. Avrai bisogno di un mentore senior e alcune delle tue attività attuali dovranno essere passate a un senior. Questo rallenterà il progetto ma, a lungo termine, ripagherà. Questo è il punto di cui hai bisogno per arrivare al tuo capo, e possibilmente ai loro capi. Inoltre, vedi se riesci a trovare qualcosa che puoi offrire in cambio di mitigare i costi.

Se non puoi, allora potresti voler cercare altrove.


Queste NON sono attività "sviluppatore senior". Questo (jenkins) sta solo seguendo le istruzioni. Gli sviluppatori senior decidono il percorso (per esperienza), gli sviluppatori junior seguono il percorso. Se uno sviluppatore junior si fosse lamentato della creazione di jenkins, avrei cercato un altro sviluppatore junior; il tempo necessario per configurarlo è inferiore al tempo per pubblicare questa domanda e leggere le risposte. (Lo so, perché ho impostato hudson / jenkins molte volte. E la replica del database. Sooo molte volte.) "Fallo e basta", allora saprai come. Se non impari mai a fare qualcosa e ti aspetti di guidare, non sei altro che un PHB in allenamento.
michael

@michael_n: completamente in disaccordo. C'è una differenza tra l'installazione di Jenkins e l'impostazione dell'intero ambiente di costruzione in modo da ridurre lo sforzo da parte di tutti gli sviluppatori, consentendo distribuzioni sicure con un clic, ecc. E questa è la differenza tra ciò che ti darà uno Junior e cosa ti darà un Senior, quando ti verrà chiesto di configurare un server di build.
pdr

... eppure sono d'accordo con te: "C'è una differenza tra impostare Jenkins e impostare l'intero ambiente di costruzione." Esattamente. Quindi, suppongo che dipenda se la domanda viene interpretata alla lettera (l'ho fatto). L'installazione di jenkins è un pomeriggio; la configurazione della build di make / ant / maven richiede giorni e può facilmente trasformarsi in settimane e deve essere eseguita correttamente. I bravi manager possono scomporre le cose e delegare in base all'esperienza (a questo proposito, in passato sono stato un cattivo manager, scegliendo di fare tutto da solo solo perché sarebbe effettivamente più veloce. Ma questo non si ridimensiona e il " team "non evolve.)
michael

@michael_n: vedi cosa intendi. Tendo ad avere aspettative più basse di un manager, immagino. In particolare uno che assume un junior per motivi finanziari, piuttosto che la pianificazione futura.
pdr

7

Trovo che il termine "sviluppatore software" sia sinonimo di "programmatore". Quindi uno sviluppatore di software è una persona la cui responsabilità principale è scrivere codice. Nel mio primo lavoro, il mio titolo era "Developer" e la mia principale responsabilità era progettare e programmare software. Ma penso che non esista una definizione esatta del termine. È usato in modo diverso da persone diverse, quindi il significato diventa sfocato.

Ma affinché un team di sviluppo funzioni in modo efficiente, è necessario impostare queste cose: server CI, replica SQL, distribuzione su server di prova, monitoraggio di server di prova, archiviazione di build, ecc. (Forse non tutte si applicano in qualsiasi situazione) .

Queste attività impiegheranno molto tempo nella fase iniziale di un progetto, ma impiegheranno un tempo minore una volta che hai una buona configurazione in esecuzione.

Sfortunatamente, gli sviluppatori preferiscono programmare piuttosto che gestire i server di build. Pertanto, spesso questi compiti noiosi ricadono sugli sviluppatori junior, poiché gli sviluppatori senior hanno compiti più importanti.

Non ho sperimentato alcuna azienda che utilizza questi compiti come mezzo per valutare le competenze.

Se non sei soddisfatto delle tue attuali responsabilità, suggerirei di affrontare il problema con il tuo manager di linea.


1
C'è una differenza tra i termini secondo questo .
Bernard,

1
anche secondo questo
smp7d

2

Dipende. Sembra che diverse aziende lo definiscano in modo diverso e per alcuni è un termine generico per una serie di funzioni tecniche. Per alcuni è solo un titolo. Facendo la stessa domanda prima, ho avuto una risposta simile a "Solo gli sviluppatori hanno la capacità di farlo nella nostra organizzazione", direi forse, ma ciò non lo rende necessariamente sviluppo).

La risposta teorica è che uno sviluppatore (confrontando con programmatore / programmatore) è una persona che "risolve problemi" anche se non ha a che fare con "codificare qualcosa".

Vuoi codificare di più, quindi forse chiedi al tuo responsabile più attività di codifica o fai alcune delle cose che fai codificando? Hai citato elementi operativi, quindi forse alcuni di essi potrebbero essere eseguiti dai framework DevOps (controlla chef e burattino ), il che renderà le funzioni più efficienti e vicine allo sviluppo.


2

Non è raro che uno sviluppatore abbia alcune capacità di amministrazione del sistema. Come sviluppatore senior, stima che circa il 5% del mio tempo è dedicato a tali compiti.

Tuttavia, se non stai eseguendo alcuna codifica, probabilmente dovresti parlare con il tuo manager per ottenere attività di codifica. Dopotutto, vuoi creare esperienza di programmazione. Sei anche più prezioso come programmatore che come amministratore di sistema.


1

Il codice non è estremamente utile se non viene integrato correttamente in un'applicazione o non accede ai dati corretti, quindi le attività che elenchi sembrano molto in linea con ciò che fa uno sviluppatore. Vorrei aggiungere che anche gli sviluppatori di software sono molto confusi nella documentazione e nei test. Queste sono attività necessarie nella produzione di software.

È fantastico se la tua azienda ha specialisti che possono fare queste cose per te, ma in caso contrario, gli sviluppatori di software sono responsabili di tutto fino a (e possibilmente incluso) distribuire un'applicazione in produzione e supportarla lì.


0

È abbastanza comune per uno sviluppatore in un'azienda di piccole e medie dimensioni assumere alcune attività di configurazione dell'amministratore del server / DBA / generale.

Tuttavia, se questi compiti iniziano a diventare la maggior parte delle tue responsabilità, potrebbe essere qualcosa di cui preoccuparti a seconda degli obiettivi della tua carriera. Sebbene tu possa probabilmente prosperare all'interno di determinate aziende come tecnico generale, quando devi trasferirti in una nuova azienda, può causare molti problemi durante la transizione. Se non stai realizzando alcun sviluppo tradizionale, devi essere sicuro di chiarire il tuo curriculum. Se vuoi ottenere un lavoro in sviluppo diretto dopo un periodo di lavoro come hai descritto, potresti dover accettare qualcosa per cui sei "sovraqualificato" in base a anni di esperienza nel settore.

D'altra parte, potrebbero esserci aziende che cercano sviluppatori con competenze diverse. Ma con l'attuale tendenza a scrivere codice nelle interviste, dovrai avere anche le migliori capacità di codifica, anche se il lavoro richiede poco codice una volta entrato.

Se non vuoi rimanere bloccato nella tua posizione attuale, proverei sicuramente a rimediare presto alla situazione.

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.