Sendo o único desenvolvedor e suas conseqüências [fechado]

16

Eu sou o único desenvolvedor da minha empresa. Faço programação (no ASP.NET 4.0, jQuery e SQL Server 2008) e mantenho o banco de dados e o servidor web (win 2008 r2).

Gosto da liberdade de implementar o que gosto ao mesmo tempo em que sinto que poderia estar fazendo tudo de uma maneira ruim. Não uso diagramas SDLC, nem métodos como Agile etc. Lido com vários projetos pequenos. Uso meu tempo livre para acompanhar as mais recentes tecnologias e aprender e testar coisas novas. Eu venho fazendo isso nos últimos 7 anos.

  1. Minha preocupação é quão difícil será me ajustar quando mudar de emprego para uma empresa em que mais desenvolvedores estejam envolvidos em um projeto?
  2. Como eu não sigo nenhum padrão de design, isso seria contra mim quando eu procurasse emprego ou me ajustasse a um novo emprego?
  3. Quaisquer outros prós / contras que você possa pensar?
bp581
fonte

Respostas:

8

Se você gosta dessa situação com suas liberdades, é provável que não goste de ir a qualquer lugar que veja isso como um problema (tendo pulado essa cerca, sei que sim).

Na verdade, ele joga a seu favor em futuros empregos, porque você acaba com um conjunto de habilidades muito mais amplo do que 90% das pessoas por aí.

A falta de alguém para discutir sobre decisões a favor / contra é um problema, como Pierre descreve (+1 para ele), mas um colega de outra empresa que tem paciência para ouvir o que você está tentando fazer e interesse suficiente para ter um uma opinião forte serve bem a esse papel, às vezes melhor do que um colega de trabalho, porque eles são um ponto de vista externo. (Ainda faço isso mesmo trabalhando em uma loja maior agora, isso me ajuda a acompanhar o que os outros estão fazendo para resolver problemas semelhantes e ver problemas futuros no design)

O outro problema que eu tinha quando era o único desenvolvedor era que não havia ninguém para me apoiar quando chegasse a hora de realmente lutar contra uma direção ruim da gerência. Sua milhagem pode variar, mas se você é o desenvolvedor solitário e todo o gerenciamento não é técnico, pode ser muito difícil explicar por que você deve ou não estar fazendo algo e muito difícil quando chega a hora de dizer a eles O sonho mais recente não é razoável para tentar implementar com a tecnologia atual.

Conta
fonte
5
A outra questão de ser o único técnico é quando você está com febre alta e náusea intensa e o servidor da web cai. Espera-se que eles tenham um plano de backup que não seja levar um laptop para o hospital se você for atropelado por um ônibus.
21711 David Thornley
1
Isso é um problema, mas geralmente também é um problema em empresas consideráveis ​​quando eles espalham seus recursos muito pouco.
Bill
35

Quando você está sozinho, ninguém pode dizer que você está errado

Então você pode seguir o caminho errado, por um tempo, sem nem mesmo saber.

Por esse motivo, incentivo você a encontrar alguém com quem possa conversar sobre desenvolvimento. Não apenas online, mas em real, fisicamente.

Não há necessidade de sair da sua empresa. Ser o único também tem algumas vantagens.


fonte
3
Este é um conselho fantástico ...
webdad3
4
A palavra-chave é "maio". Se um desenvolvedor faz um esforço consciente para manter-se informado sobre as várias tecnologias e metodologias e, mais importante, sobre os dados que os cercam, não há razão para acreditar que ele estaria fazendo um trabalho abaixo da média. É claro que os desenvolvedores que trabalham no vácuo e mantêm o que sabem provavelmente estão se tornando progressivamente mais obsoletos.
Aaronaught 29/04
Concordando com Pierre aqui, dois desenvolvedores podem produzir [código ou db ou qualquer outra coisa] muito melhor do que qualquer um poderia individualmente]. Os benefícios aumentam com mais desenvolvedores, mas há um retorno decrescente.
precisa saber é o seguinte
5

Eu trabalhei como o único desenvolvedor de uma empresa que conhecia uma tecnologia específica, como o único que fazia o tipo de programação que eu fazia e como contratado em situações semelhantes. (Também trabalhei em ambientes de equipe com outros desenvolvedores que conheciam ferramentas diferentes e com outros desenvolvedores que fizeram exatamente o que eu fiz.)

Prós de ser o único programador

  • Como você mencionou, você freqüentemente tem a liberdade de usar quaisquer ferramentas ou idiomas que achar que pode aprender. Você nem sempre precisa defender seus colegas para obter permissão para trabalhar com a Nova Tecnologia X enquanto todos os outros estão usando a Tecnologia Atual Y.
  • Você tem mais responsabilidades. Essencialmente, você atua como líder e desenvolvedor de projetos em cada um de seus projetos e, com sua capacidade de identificar e implementar novas coisas, também é efetivamente o chefe de departamento. (Não conte isso aos vendedores. Eles adoram conversar com os tomadores de decisão e você não tem tempo para conversar com eles.)
  • Não há dúvida sobre crédito pelo trabalho que é feito: é obviamente você e você quem fez as coisas acontecerem.
  • Você pode gastar mais tempo realmente trabalhando em seus próprios projetos e menos tempo em reuniões sobre projetos que são basicamente de outras pessoas (mas você está lá como uma pessoa de suporte, possível backup ou qualquer outra coisa.)

Contras

  • Como David aponta em um comentário, você é o único desenvolvedor, portanto, nenhum desenvolvimento é feito sem você. Certa vez, eu me gabava de meu irmão de que eu era "o cara" de um projeto específico no trabalho. Ele descreveu com precisão minha situação para mim: eu estava preso. Não consegui seguir em frente nessa empresa porque nunca seria capaz de me livrar desse projeto. (Ele também estava certo. Foram necessários vários meses de treinamento por um longo período de tempo até que eu pudesse entregá-lo a alguém que fosse capaz de apoiá-lo.) Você pode achar difícil tirar férias verdadeiras quando nada puder seja feito sem você.
  • Como aponta Pierre, não há ninguém no local para fazer revisões de código ou compartilhar as melhores práticas com você. Você pode entrar em contato com colegas de várias maneiras, mas nada é tão eficaz quanto dar um tapinha no ombro de uma colega de trabalho e pedir que ela olhe seu código por 5 a 10 minutos.
  • Da mesma forma, você pode ter dificuldade em obter experiência com novas ferramentas. O treinamento externo pode ser tão raro quanto o período de férias: alguém se queixará de que a empresa não pode se dar ao luxo de ficar com o Language 3.0 por uma semana, quando não há ninguém para manter os aplicativos do Language 2.0 funcionando.
  • O avanço na carreira pode ser extremamente difícil de gerenciar. Você pode não ter uma posição pela qual possa se esforçar, mesmo uma mudança no título pode ser difícil de obter e as revisões de final de ano não têm nenhum quadro de referência; portanto, um excelente trabalho pode passar despercebido, se não houver outra. razão do que ninguém realmente entende o que você faz.

Se você decidir se mudar para uma empresa na qual trabalharia como parte de uma equipe de programadores, não acho que sua experiência solo provavelmente a machuque muito. Sua falta de experiência com padrões de design não é necessariamente tão importante quanto sua vontade de aprendê-los. (Pode haver situações em que você esteja entrevistando um candidato com um histórico semelhante e também tenha experiência em quaisquer métodos usados ​​pela empresa, mas isso é verdade para basicamente todos.)

Na mesma linha, sua falta de experiência em uma equipe é equilibrada por sua capacidade de usar muitos chapéus. Existem alguns desenvolvedores que são bons jogadores de equipe, mas nunca desenvolvem a capacidade de gerenciar um projeto; você já mostrou que pode fazer isso.

Eu recomendaria que, quando você é um desenvolvedor solo, gaste algum tempo lendo sobre ferramentas e técnicas que desenvolvedores semelhantes estão usando. Portanto, mesmo que você não as use, saiba que elas existem e você pode consultar eles durante uma entrevista, mesmo que apenas para dizer "Sim, eu li um pouco sobre os frameworks MVC, mas não os usei". Faça o possível para manter contato com outros desenvolvedores: vá a reuniões locais de grupos de usuários, leia e comente em blogs (ou mantenha um dos seus), tente participar de workshops periodicamente, assista a seminários on-line e outros. (Você também pode considerar sites como o lynda.com para treinamento interno: não é tão bom quanto uma conferência de uma semana em outro lugar, mas você pode assistir aos vídeos em seu próprio tempo e não deixar todos em pânico porque está fora do escritório.)

Dave DuPlantis
fonte
2

Suas habilidades de programação se deterioram todos os dias em que você está nesse tipo de situação. Codificação é a parte mais fácil do trabalho de qualquer programador.

A comunicação / trabalho com uma equipe para implementar uma solução é infinitamente mais difícil. Essas habilidades só podem ser aprimoradas com isso. Além disso, quando você faz parte de uma equipe, a maioria dos membros tenta acompanhar as tecnologias exatamente como você, portanto as chances da equipe encontrar algo ótimo são muito maiores.

Por favor, não tome isso como um ataque a você pessoalmente. Eu também sou um programador solitário, mas estou procurando uma equipe o mais rápido possível.

Matt
fonte
Desenvolver sozinho significa que você perde o 'programador de papelão', que geralmente é uma ferramenta útil. Basicamente, ter alguém para explicar um problema para muitas vezes significa a solução se apresenta meados de explicação (antes do outro lado tem uma chance de fazer sugestões)
Phil Lello
0

Concordo com @Pierre 303 resposta 100%. Eu também acrescentaria que você deve aprender a si próprio as práticas adequadas. Talvez uma certificação também ajude.

Sim, se você alternar tarefas, será difícil ... Não apenas se eles tiverem processos com os quais você não está acostumado, mas também com personalidades. Programadores são notoriamente competitivos. Você não precisa lidar com isso agora. Mas você irá quando programadores> = 1

Parece que você tem um bom show ... Eu continuaria.

Apenas meus 2 centavos.

webdad3
fonte
0

Acho que você está perdendo o fato de que a maioria dos padrões / práticas que você encontrará em uma grande casa de desenvolvimento pode ser aplicada facilmente à sua situação. Fazer esses ajustes em uma equipe de uma pessoa já foi abordado anteriormente no SO. Procure um pouco para obter orientação:

Como aplicar o ágil a projetos pessoais?

Jeff Swensen
fonte
Existe algum link para encontrar o projeto de amostra completo usando todos os methodlogies como SDLC, Agile ... etc?
precisa saber é o seguinte
Não se prenda a palavras como 'Agile' e 'Scrum'; suas definições apenas formais dos métodos que as equipes de sucesso já estavam usando. No entanto, eles são úteis se você não tiver tido a sorte de trabalhar em algum lugar onde seja uma parte natural do ambiente.
22611 Phil Lello