O que define a função "desenvolvedor de software"


10

Sou desenvolvedor júnior de software e trabalho para uma empresa há menos de um ano.

Embora eu sempre tenha pensado que ser desenvolvedor de software significa desenvolver algo de código e código, minhas tarefas estão mais no tipo de trabalho administrativo, como configurar Jenkins, replicação SQL e etc.

Esses tipos de trabalhos estão incluídos em uma função de desenvolvedor ou um desenvolvedor apenas desenvolve software? Eu deveria estar conversando com meu gerente sobre isso? É uma maneira comum para as empresas avaliarem as habilidades de "desenvolvimento"?


9
Depende de quem é seu chefe de cabelos pontudos.
Neil

Cada empresa definirá os papéis de maneira um pouco diferente. Pergunte ao seu gerente quais responsabilidades e expectativas o papel implica.
Bernard Bernard

4
Há períodos em que os carpinteiros precisam carregar madeira, empurrar carrinhos de mão, etc. Tudo faz parte do trabalho. Se você é um carpinteiro inexperiente, provavelmente está fazendo muito mais do que um carpinteiro sênior.
Bryan Oakley

11
Desenvolvimento de software> escrever código. Se um desenvolvedor de software não souber configurar / usar e / ou não souber o valor de (uma ferramenta como) Jenkins, então, por definição, ele seria (muito) desenvolvedor de software júnior. Considere o treinamento no local de trabalho e considere-se sortudo por não trabalhar em um ambiente em que você precise executar seu próprio servidor de CI em sua própria VM mantida no seu próprio tempo para manter um nível de qualidade de software que seja esperado, mas na prática desencorajado se ferramentas como essas não forem permitidas em seus "processos" (principalmente manuais).
30513 Michael

Respostas:


11

Parece-me que eles contrataram um júnior porque não podiam pagar um sénior, e não porque realmente queriam um júnior (alguém em quem possam investir e orientar até se tornarem séniores). Eu gerenciei uma equipe que teve essa decisão imposta a eles por gerentes que não conheciam melhor.

Ele acabou com todos os tipos de trabalhos infelizes, como criar vídeos de treinamento para usuários e coisas do gênero, e ainda me sinto culpado por isso agora, mas estava sob pressão para entregar e a expectativa era que adicionar uma cabeça à sala de desenvolvimento apenas agilizasse as coisas. .

É lamentável, porque coloca você e seu chefe em posições difíceis.

Ele provavelmente não tem nenhum trabalho em que possa confiar para um júnior, e os idosos que ele possa ter não podem se distrair do seu dia-a-dia. O caminho mais fácil é dar muitas tarefas não relacionadas ao desenvolvimento, com as quais ele também não quer desperdiçar o tempo dos desenvolvedores seniores.

Mas alguns problemas surgem disso.

Primeiro, o tipo de trabalho de devops que ele está dando realmente exige um desenvolvedor sênior. Particularmente, um servidor de compilação deve ser configurado por alguém que está construindo o software e sabe onde estão os problemas.

Segundo, o júnior não está se tornando mais útil. Após cinco anos disso, você continuaria executando as mesmas tarefas, porque ainda não poderia confiar no trabalho de desenvolvimento real.

Terceiro, os juniores acabarão percebendo (como você) que não estão ajudando sua própria carreira. A suposição de que os juniores são de baixa qualidade, em vez de com pouca experiência (e procurando) é um erro terrível, mas muito comum nesse setor.

Então, sim, sente-se com seu chefe. Mas entenda a situação em que ele está. Veja se você consegue chegar a um acordo que resolva os problemas de todos. Você precisará de um mentor sênior e algumas de suas tarefas atuais precisarão ser repassadas para um sênior. Isso atrasará o projeto, mas, a longo prazo, será recompensado. Esse é o ponto que você precisa passar para o seu chefe e, possivelmente, para os chefes. Além disso, veja se você pode encontrar algo que possa oferecer em troca para mitigar os custos.

Se você não pode, pode querer procurar em outro lugar.


NÃO são tarefas de "desenvolvedor sênior". Este (Jenkins) está apenas seguindo as instruções. Os desenvolvedores seniores decidem o caminho (por experiência), os desenvolvedores juniores seguem o caminho. Se um desenvolvedor júnior se queixasse da criação de jenkins, eu procuraria outro desenvolvedor júnior; o tempo necessário para configurá-lo é menor que o tempo para postar esta pergunta e ler as respostas. (Eu sei, porque configurei hudson / jenkins muitas vezes. E replicação de banco de dados. Muitas vezes.) "Apenas faça", então você saberá como. Se você nunca aprender a fazer nada, e espera liderar, não passa de um PHB em treinamento.
michael

@michael_n: discordo completamente. Há uma diferença entre configurar o Jenkins e configurar todo o ambiente de compilação, de forma a reduzir o esforço de todos os desenvolvedores, enquanto permite implantações seguras com um clique, etc. E essa é a diferença entre o que um Junior lhe dará e o que um Sênior lhe dará, quando solicitado a configurar um servidor de compilação.
PDR

... e, no entanto, concordo com você: "Há uma diferença entre configurar o Jenkins e configurar todo o ambiente de construção". Exatamente. Então, acho que depende se você interpreta a pergunta literalmente (eu fiz). Instalar o jenkins é uma tarde; A configuração de sua compilação make / ant / maven leva dias e pode facilmente se transformar em semanas, e deve ser feita corretamente. Bons gerentes podem dividir as coisas e delegar com base na experiência (nesse aspecto, eu fui um péssimo gerente no passado, optando por fazer tudo sozinho só porque seria realmente mais rápido. Mas isso não escala, e o " equipa" não evolui).
michael

@michael_n: Veja o que você quer dizer. Eu tendem a ter expectativas mais baixas de um gerente, eu acho. Especialmente alguém que contrata um júnior por razões financeiras, em vez de planejamento futuro.
Pdr

7

Acho que o termo "desenvolvedor de software" é sinônimo de "programador". Assim, um desenvolvedor de software é uma pessoa cuja responsabilidade principal é escrever código. No meu primeiro trabalho, meu título era "Desenvolvedor", e minha principal responsabilidade era projetar e codificar software. Mas acho que não existe uma definição exata do termo. É usado de maneira diferente por pessoas diferentes, assim o significado se torna confuso.

Porém, para que uma equipe de desenvolvimento trabalhe com eficiência, você deve ter essas coisas configuradas, servidores de CI, replicação SQL, implantação em servidores de teste, monitoramento de servidores de teste, arquivamento de builds etc. (talvez nem todos eles se apliquem a qualquer situação) .

Essas tarefas levarão muito tempo na fase inicial de um projeto, mas levarão menos tempo depois que você tiver uma boa configuração em execução.

Infelizmente, os desenvolvedores preferem codificar do que gerenciar servidores de compilação. Portanto, frequentemente, essas tarefas chatas caem nas mãos de desenvolvedores juniores, pois os desenvolvedores seniores têm tarefas mais importantes.

Eu não experimentei nenhuma empresa que use essas tarefas como um meio de avaliar habilidades.

Se você não estiver satisfeito com suas responsabilidades atuais, sugiro que resolva o problema com seu gerente de linha.


11
Há uma diferença entre os termos de acordo com isso .
Bernard Bernard

11
também de acordo com isso
smp7d 30/01

2

Depende. Parece que diferentes empresas definem isso de maneira diferente e, para alguns, é um termo genérico para uma variedade de funções técnicas. Para alguns, é apenas um título. Fazendo a mesma pergunta antes, recebi uma resposta semelhante a "Somente desenvolvedores têm a capacidade de fazer isso em nossa organização", diria talvez, mas isso não necessariamente o torna em desenvolvimento).

A resposta teórica é que um desenvolvedor (comparando com codificador / programador) é uma pessoa que "resolve problemas", mesmo que não tenha a ver com "codificar algo".

Você deseja codificar mais, então talvez peça ao seu gerente mais tarefas de codificação ou faça algumas das coisas que você faz codificando? Você mencionou coisas operacionais, portanto, talvez algumas delas possam ser feitas pelas estruturas do DevOps (cheque chef e fantoche ), o que tornará as funções mais eficientes e próximas do desenvolvimento.


2

Não é incomum que um desenvolvedor tenha algumas habilidades de administração do sistema. Como desenvolvedor sênior, estimo que cerca de 5% do meu tempo seja gasto em tais tarefas.

No entanto, se você não estiver executando nenhuma codificação, provavelmente deverá conversar com seu gerente sobre como obter tarefas de codificação. Afinal, você deseja criar uma experiência de codificação. Você também é mais valioso como programador do que como administrador de sistema.


1

O código não é muito útil se não for incorporado corretamente em um aplicativo ou acessar os dados corretos; portanto, as atividades listadas parecem muito alinhadas com o que o desenvolvedor faz. Devo acrescentar que os desenvolvedores de software também ficam muito confusos na documentação e nos testes. Essas são atividades necessárias na produção de software.

É ótimo que sua empresa tenha especialistas que podem fazer isso por você, mas, se não, os desenvolvedores de software são responsáveis ​​por tudo, até (e possivelmente incluindo) a implantação de um aplicativo em produção e o suporte lá.


0

É bastante comum que um desenvolvedor de uma empresa de pequeno a médio porte assuma algumas tarefas de configuração do administrador do servidor / DBA / geral.

No entanto, se essas tarefas começarem a se tornar a maior parte de suas responsabilidades, pode ser algo para se preocupar, dependendo de seus objetivos de carreira. Embora você possa prosperar em algumas empresas como tecnólogo geral, quando precisar mudar para uma nova empresa, isso poderá causar muitos problemas em sua transição. Se você não está desenvolvendo nenhum desenvolvimento tradicional, certifique-se de deixar isso claro em seu currículo. Se você deseja obter um emprego em desenvolvimento direto após uma vaga em um emprego, como você descreveu, pode ser necessário aceitar algo pelo qual você está "superqualificado", com base em anos no setor.

Por outro lado, pode haver empresas procurando desenvolvedores com habilidades diversas. Mas com a tendência atual de escrever código em entrevistas, você também precisará ter habilidades de codificação de alto nível, mesmo que o trabalho exija pouco código ao entrar.

Se você não quer ficar preso na sua posição atual, eu definitivamente tentaria remediar a situação em breve.

Ao utilizar nosso site, você reconhece que leu e compreendeu nossa Política de Cookies e nossa Política de Privacidade.
Licensed under cc by-sa 3.0 with attribution required.