Bom, antes de mais nada, este é definitivamente e oficialmente meu post de estréia no Java Based Brain, que daqui em diante apelidarei de JB2, assim a coisa fica mais ambientada no mundo Java, repleto de siglas…
Acredito ser um tema intrigante a diferença entre ser contratado para desenvolver softwares em uma empresa do ramo de TI, que tem como seu principal produto os softwares que desenvolve e ser contratado para ser desenvolvedor de softwares para uma empresa de outro ramo (daí o exclusivo), aonde o principal produto não são os softwares que você produz.
Apesar de não possuir experiência em fazer parte de um time de desenvolvedores da softhouse x ou Y, leio muito e acompanho o que pessoas nessa condição dizem, portanto se eu entendi mal ou tenho uma visão equivocada da coisa, por favor, sintam-se a vontade para complementarem ou mesmo corrigirem.
Eu gostaria de começar a brincadeira enumerando alguns pontos, que acredito eu, reais. Vou dividir entre os dois mundos:
Desenvolvedor de empresa de TI:
- Prós
1. Fazer parte de um time, não carregando sozinho todo o desenvolvimento de um projeto, tendo suporte dos colegas e tendo com quem contar na hora de dividir o “work”.
2. O nível do conhecimento evolui mais rápido, pois a troca de experiências é fundamental em qualquer profissão.
3. O chefe, muito provavelmente um desenvolvedor mais experiente, conhece a complexidade e os contratempos do desenvolvimento de um software (apesar de parecer ignorar tudo isso quando coloca prazos “hero mode” para o desenvolvimento).
4. Geralmente as empresas de TI reciclam os seus profissionais, oferencendo cursos de especialização ou atualização nas tecnologias que utilizam na empresa.
5. Não precisar se preocupar em vender a idéia de que o software é robusto, bem desenvolvido e prático, disso, o depto. comercial da empresa se encarrega.
6. Não ter que verificar as eventuais necessidades de um novo software, elas chegam na forma de solicitações de serviço.
7. Não precisar convencer ninguém de que está na hora de uma nova versão do sistema, para correção de alguns bugs ou mesmo implementar novas funcionalidades, pois esse tipo de ação é padrão, o chamado ciclo de vida do software.
8. Quando estiver se dedicando a fazer a melhor interface do mundo (pelo menos na sua concepção), não vai ter quem te diga que isso é “perfumaria”, pois o depto. comercial e o seu chefe sabem que aparência vende e muito.
9. Não constantemente ser chamado para reuniões que nada tem a ver com a sua função, ou, ser interrompido bem no meio daquela estruturação de idéia difícil (aquelas que pedem um café e uma volta pelo escritório), ser chamado para ajudar alguém a escrever um e-mail em inglês, configurar uma impressora, carregar caixas de papel ou qualquer outra coisa.
10. Último ponto e mais irritante (pelo menos pra mim), ninguém vai ficar te olhando no computador o dia todo, lendo um livro, uma documentação qualquer, pesquisando um fórum na net, fazendo pra você aquela cara de “esse cara não faz nada o dia todo”, ou mesmo ter que provar que você trabalha, mas seu trabalho não “aparece” como o dos demais colegas de empresa.
- Contras
1. O limite da geniosidade em criar soluções mora em um conjunto de papéis chamado requisito.
2. A liberdade para propor novos softwares mora no depto. de novos produtos
3. A disputa para os melhores cargos e salários entre os desenvolvedores pode ser cruel em grupos desunidos.
4. O desenvolvedor não é tão valorizado como o gerente de projetos pois é visto como “a parte braçal do desenvolvimento”.
5. Geralmente o desenvolvedor é explorado no quesito remuneração, pelo menos tenho visto muita gente reclamar disto.
6. Não ter muita liberdade para testar novas tecnologias.
7. Nem sempre ser alocado para trabalhar com um projeto que seja do seu agrado.
8. Ter de carregar desenvolvedores inexperientes nas costas algumas vezes.
9. Não ter o prazer de ver a sua criação funcionando no dia-a-dia de uma empresa, em uso real.
10. Não receber elogios dos clientes de forma direta.
Desenvolvedor exclusivo de empresa fora do ramo de TI:
- Prós
1. Ter a chance de explorar necessidades e projetar softwares que atendam a estas necessidades, sem esperar a solicitação de um novo serviço.
2. A possibilidade de participar de reuniões para definições estratégicas da empresa, aonde o seu software vá fazer toda ou grande diferença e poder sugerir as soluções da melhor forma.
3. Você não precisa disputar nada com outros desenvolvedores, pois você é o depto. de desenvolvimento.
4. O desenvolvedor é visto como um guru da informática por grande parte da empresa (ver a opinião do restante da empresa na seção contras…), se é que isso é tão importante assim.
5. Quando o desenvolvedor consegue eliminar todas as ferramentas de terceiros (com exceção dos SOs e do pacote Office
, claro…), pode-se negociar um aumento salarial proporcional ao ganho da economia com manutenção e licença que foi obtido.
6. Você pode e deve testar novas tecnologias, para poder sempre oferecer produtos da mais alta qualidade e tecnologia para o seu cliente interno.
7. Existe a possibilidade de simplesmente extinguir projetos irrelevantes, desde que seja provado que é de fato irrelevante, talvez sugerindo que essa funcionalidade seja adicionada em um software maior que esteja sendo desenvolvido, o qual com certeza te trará mais satisfação ao trabalhar nele.
8. Saber que o desempenho do desenvolvimento depende somente de você, sendo assim, se você for caprichoso, cuidadoso e buscar o melhor código desenvolvido, é sucesso certo no projeto.
9. Poder ver o seu software sendo usado por usuários reais, no dia-a-dia real de uma empresa, podendo até mesmo analisar as funcionalidades do sistema por outras óticas, obtendo de antemão idéias para uma nova implementação.
10. Ser elogiado por colocar uma ótima ferramenta à disposição da empresa.
- Contras
1. O desenvolvimento todo fica a cargo de uma pessoa só, fazendo desde a análise até o treinamento.
2. O nível do conhecimento evolui mais lentamente, pois a troca de experiências é feita apenas fora do ambiente da empresa, sendo na internet ou na presença de outros desenvolvedores fora do horário de trabalho.
3. O chefe não entende as nuances do desenvolvimento de softwares e acha que é tudo muito fácil e rápido, te forçando a fazer tudo em “hero mode”, não dando importância à fase de projeto do software, da análise e da obtenção de requisitos, o que leva a uma série de modificações de última hora (mesmo usando todos os padrões de projeto disponíveis, análise pobre significa retrabalho rico).
4. Todo o custo financeiro do aprendizado fica a seu cargo.
5. Ter de convencer as pessoas de que o seu sistema “funciona”, provando que a maioria dos erros do sistema provêm de erros dos usuários e ainda ter que ouvir piadinhas do tipo “só funcionou porque você está perto”, isso se traduz em lutar para ter credibilidade no seu trabalho, pois tudo que é feito fora de casa parece melhor e mais bonito do que o “caseiro”.
6. Você precisa constantemte fomentar novos desenvolvimentos ou implementações para não ficar sem emprego.
7. Ter de lutar contra o time do “está funcionando bem então deixa assim”, na hora de fazer novas versões do software, obrigando o desenvolvedor a remendar o código para colocar mais funcionalidades não previstas anteriormente (cabem alguns padrões de projeto aí para ajudar a evitar isso).
8. Quando estiver se dedicando a fazer a melhor interface do mundo (pelo menos na sua concepção), vai ter quem te diga que isso é “perfumaria”, pois geralmente o seu chefe é o diretor da empresa e está pouco preocupado com o fato do sistema ser agradável aos olhos de quem passa o dia todo olhando pra ele, pois o objetivo é só a produção que o sistema vai trazer.
9. O seu trabalho é frequentemente interrompido com reuniões que nada tem a ver com a sua função e gente te pedindo toda a sorte de coisas, pois não sabem o nível de concentração necessária para desenvolver bons softwares e por acharem que você é um faz-tudo da informática.
10. Seu trabalho difere totalmente do “core business da empresa”, sendo assim, seu trabalho não aparece facilmente e vai ter muita gente achando que você enrola o dia todo e fica surfando na net, lendo livros de romances ou qualquer coisa do gênero.
Bom pessoal, acho que para uma estréia está bom, espero receber bastantes comentários com sugestões, acréscimos às minhas palavras e críticas.
Um grande abraço e até a próxima!
Arquivado em: Desenvolvimento | Etiquetado: Desenvolvimento, Java