Ei! Todos procuramos aqui porque tínhamos interesse em trabalhar na área de TI. Mas em vez de cutucar a primeira especialidade de TI que você encontrar, talvez valha a pena dar uma olhada na lista de possíveis áreas em uma empresa de TI? Esta é a segunda parte da minha breve revisão. No primeiro , analisamos especialidades como Recrutador, RH, Administrador de Sistemas, DBA, DevOps. Hoje veremos as especialidades que são a “espinha dorsal” de qualquer equipa e, consequentemente, de um projeto. Se eu errar alguma coisa em algum lugar, não me repreenda muito, mas corrija-me nos comentários: vejo tudo da perspectiva de um desenvolvedor Java e posso simplesmente não conhecer as nuances de todas as especialidades.
6. PM - Gerente de projeto
O trabalho de um gerente de projeto é planejar, organizar e gerenciar projetos técnicos com competência e melhorar a comunicação entre os membros da equipe para garantir que o trabalho seja realizado de maneira harmoniosa e eficiente possível. Esses especialistas devem conhecer as necessidades dos clientes e os objetivos que perseguem, e coordenar ao máximo as ações dos colaboradores para levar o projeto à sua conclusão lógica e positiva. Positivo, porque os projetos nem sempre podem ser concluídos com sucesso por vários motivos: interrupção do financiamento, insatisfação com o trabalho por parte do cliente, e assim por diante... A principal tarefa do PM é coordenar um grupo de funcionários para resolver problemas técnicos, porque os desenvolvedores nem sempre são pessoas super sociáveis e nem sempre conseguem se comunicar com competência entre si, e isso, por sua vez, só pode jogar contra o projeto. Bem, ou, por exemplo, o desenvolvedor ficou preso em alguma coisa: ele pode ficar muito tempo parado e não saber como lidar com algum problema. Todos nós não gostamos de admitir que não sabemos ou não podemos fazer algo, e os desenvolvedores ainda mais. É aqui que o PM vem em socorro , que o ajudará a encontrar uma pessoa a quem você possa recorrer para obter informações adicionais ou que já tenha encontrado algo semelhante. As responsabilidades do PM incluem:- definir metas gerais do projeto;
- desenvolver planos para atingir esses objetivos;
- manter prazos de projetos e relatórios de status atuais;
- gestão de recursos do projeto (funcionários e equipamentos técnicos);
- melhorar a coordenação da interação entre os membros da equipe do projeto;
- acompanhar a eficácia do projeto e cumprimento do cronograma planejado;
- realização de avaliações de risco para projetos;
- organização de diversas reuniões para discutir metas, progresso atual, aspectos positivos e negativos do projeto.
- Inglês Intermediário Superior e superior, já que o PM se comunica com o cliente em nome da equipe;
- conhecimento técnico amplo, mas não muito profundo, para que você possa entender quem faz o quê, como acontece o trabalho em geral, sem se aprofundar muito;
- habilidades em gerenciamento de projetos e equipes neles envolvidas;
- fortes habilidades de comunicação, uma vez que o trabalho de um PM consiste principalmente em comunicações com membros da equipe e gestão;
- desenvolveu habilidades de correspondência. Por exemplo, muitas vezes você precisa enviar cartas para o e-mail do cliente em nome de uma equipe ou empresa, e ninguém apreciará uma carta escrita incorretamente ou com erros;
- uma mente analítica que será útil na resolução de problemas que surjam durante o trabalho num projeto;
- habilidades de gerenciamento de tempo, cuja utilização permitirá manter os projetos dentro do cronograma e do orçamento (afinal, tempo = dinheiro);
- habilidades de planejamento de recursos e tarefas.
- o gerente de entrega ( DM ) é uma continuação direta do PM -a, fica imediatamente acima de um grupo de PMs e coordena seus projetos em um nível superior;
- gerente de programas - coordena vários projetos inter-relacionados, mas eu mesmo não entendo muito bem a diferença com o DM;
- diretor técnico ( CTO ) – diretor técnico responsável por desenvolver produtos e aprimorar seus processos de criação;
- diretor executivo ( CEO ) - diretor executivo;
- gerente de contas ( AM ) – gerente de atendimento ao cliente;
- reciclar e mudar para outra especialidade))
7. Desenvolvedor front-end
Um desenvolvedor front-end é um desenvolvedor responsável por implementar a parte visual de um aplicativo que os usuários veem e com a qual interagem em um aplicativo da web. Via de regra, esses especialistas colaboram com desenvolvedores Backend que são responsáveis pela parte lógica (servidor) da aplicação, que dá continuidade à parte visual da aplicação criada pelos desenvolvedores Frontend . Os desenvolvedores front-end, assim como os desenvolvedores back-end, são a espinha dorsal do desenvolvimento de qualquer projeto. Aqueles que apoiam projetos. Afinal, seja qual for o negócio, ele depende de trabalhadores comuns, por assim dizer, esforçados. Portanto, os desenvolvedores agem como trabalhadores esforçados. Via de regra, são muito mais do que representantes de outras especialidades e são mais necessários em qualquer projeto. As responsabilidades do desenvolvedor front-end incluem:- desenvolvimento de novas funcionalidades e melhoria das antigas;
- refatorar código para melhorar o desempenho, que às vezes pode ser bastante prejudicado; legibilidade, para que outros desenvolvedores possam compreender rapidamente o código e sua lógica; extensibilidade, para que no futuro seja mais fácil implementar novas funcionalidades reaproveitando partes da antiga;
- revisão (revisão) do código enviado ao servidor. Por exemplo, um desenvolvedor escreveu o código, outro o revisa e pode devolvê-lo ao primeiro com comentários sobre o que precisa ser corrigido;
- comunicação com clientes e membros da equipe - desenvolvedores Frontend e Backend ;
- implementação técnica do layout gráfico UI/UX compilado pelo designer;
- monitorar o desempenho do aplicativo;
- correção de bugs (erros).
- Nível de Inglês - Intermediário ;
- Compreensão de todo o processo de desenvolvimento web (design, desenvolvimento e implantação);
- trabalhando com Angular 5+ ;
- conhecimento de JavaScript , TypeScript , RxJS , Sass , webpack ;
- habilidades de layout ( HTML , CSS );
- habilidades em trabalhar com Git ;
- compreender padrões de projeto;
- bons conhecimentos de Linux .
- líder técnico - especialista técnico (guru) nesta área;
- líder da equipe - líder da equipe de desenvolvimento (comandante de campo). A partir daqui você pode evoluir para uma direção gerencial, por exemplo, CTO ;
- desenvolvedor full-stack - um desenvolvedor que possui tanto a parte backend quanto a parte frontend , ou seja, você precisa aprender o backend ;
- arquiteto de soluções - especialista que toma decisões sobre a arquitetura do dispositivo interno e interfaces externas do produto;
- consultor técnico - consultor técnico em alguma tecnologia;
- treinar novamente e mudar para outra especialidade.
8. Desenvolvedor de back-end
Desenvolvedores backend - criam e melhoram a parte do servidor, que é responsável pela lógica de negócios da aplicação, que se conecta com a parte visual (interface) da aplicação (por exemplo, através da API REST ). A combinação da parte servidora da aplicação ( Backend ) + a parte visual da aplicação ( Fronend ) forma uma aplicação web com a qual o usuário final interage. Os desenvolvedores de back-end são responsáveis por criar, manter, testar e depurar todo o back-end. Isso normalmente inclui a lógica principal do aplicativo, interação com bancos de dados, interação com diversas APIs e outros processos internos. Um especialista neste perfil, além do conhecimento da sintaxe de sua linguagem e de frameworks básicos, deve ter conhecimentos gerais de bancos de dados, em especial os relacionais , ser capaz de escrever testes unitários e de integração para seu código, ter conhecimento do construtor de aplicações - Maven ou Gradle , poder usar Git - ohm As responsabilidades do desenvolvedor back-end incluem:- desenvolvimento de novas funcionalidades;
- refatoração de código;
- revisar código de outros desenvolvedores de backend ;
- escrever documentação para ajudar novos desenvolvedores de back-end ,
- quem vier ao projeto entenderá rapidamente a lógica da aplicação;
- correção de bugs;
- escrever testes (testes unitários, de integração);
- comunicação com outros membros da equipe.
- Nível de Inglês - Intermediário ;
- conhecimento de Java Core - a sintaxe da linguagem Java e um conjunto de tecnologias básicas;
- compreensão de todo o processo de desenvolvimento web;
- conhecimento da linguagem SQL ;
- conhecimento de bancos de dados relacionais, como PostgreSQL ou MySQL ;
- habilidades em interação com banco de dados via JDBC , Hibernate ;
- conhecimento dos frameworks básicos do Spring (Spring Core, Spring Data, Spring Web) ;
- conhecimento de Git , Maven ;
- Habilidades em testes unitários e de integração, por exemplo utilizando JUnit e Mockito .
- líder técnico ;
- Liderança da equipe ;
- desenvolvedor full-stack - você precisa aprender frontend ;
- Solução de arquitetura ;
- consultor técnico ;
- treinar novamente e mudar para outra especialidade.
9. Manual de controle de qualidade
A Manual Quality Assurance é uma especialista que atua na garantia da qualidade do produto, cujo objetivo é aprimorar o próprio processo de desenvolvimento da aplicação, analisar a documentação e, a partir dela, identificar erros e imprecisões no funcionamento do produto. Normalmente, a garantia de qualidade, que é tratada no Manual de QA , consiste em:- realização de avaliações de risco;
- análise de especificações e requisitos;
- gerar ideias para melhorar a qualidade do produto;
- elaboração de planos de teste;
- análise e documentação dos resultados dos testes obtidos.
- estudar requisitos, especificações e outras documentações;
- visualizar e verificar o sistema e suas características técnicas quanto ao cumprimento da especificação (lista de requisitos);
- desenvolver estratégias e planos de teste eficazes;
- escrever scripts de teste (casos de teste), com base nos quais o QA Automation cria testes automatizados;
- execução manual de casos de testes, análise de resultados;
- em caso de falhas ou inconsistências durante os testes, é necessário elaborar um relatório, criar tarefas (criar bugs) e enviá-las aos desenvolvedores para melhorias;
- testes de regressão de produtos;
- documentar as etapas dos testes;
- comunicação com equipes de desenvolvimento sobre inconsistências funcionais e bugs.
- Nível de Inglês - Intermediário ;
- bom entendimento de metodologias e práticas de garantia de qualidade de aplicações;
- conhecimento de testes de regressão;
- capacidade de documentar erros;
- habilidades em revisão detalhada de requisitos de software;
- orientação técnica básica;
- entender JSON , XML ;
- conhecimentos básicos de SQL ;
- habilidades em trabalhar com ferramentas para organização de documentação de testes, por exemplo - Testrail ;
- atenção aos detalhes;
- mentalidade crítica.
- Líder de QA - o líder de QA da equipe;
- treinar novamente e mudar para outra especialidade, por exemplo, tornar-se um desenvolvedor front-end ou back-end .
10. Automação de controle de qualidade
QA Automation é um especialista em qualidade de produto que utiliza diversas ferramentas de software para criar testes baseados em scripts escritos pessoalmente ou pelo Manual de QA . A automação de controle de qualidade é algo como o próximo nível após o manual de controle de qualidade . Se o QA Manual faz tudo manualmente, então o QA Automation usa algum tipo de linguagem de programação para escrever testes que verificam o correto funcionamento da funcionalidade do aplicativo. Esses testes geralmente são executados automaticamente sob certas condições: quando o aplicativo é compilado, ou todos os dias em algum horário, e assim por diante. Normalmente, as responsabilidades da AQA incluem :- estudar requisitos, especificações e outras documentações;
- criação e configuração de ambientes de teste para execução de casos de teste e scripts;
- projetar, criar e executar automação de casos de teste (planos de teste) usando Selenium de acordo com padrões e metodologias de garantia de qualidade definidos;
- estudar testes manuais da aplicação e fazer sugestões sobre a possibilidade de automação;
- manter casos de testes de automação atualizados;
- escrever documentação;
- manter o nível exigido de cobertura de teste;
- se necessário, ajude com testes manuais. Pode executar manualmente casos de teste e scripts para produtos em desenvolvimento utilizando ferramentas de gerenciamento de testes;
- participação no desenvolvimento, nomeadamente na administração do processo de controlo de qualidade;
- comunicação com equipes de desenvolvimento sobre inconsistências funcionais e bugs.
- Nível de Inglês - Intermediário ;
- boa compreensão de metodologias e práticas de garantia de qualidade;
- excelente conhecimento da sintaxe de uma linguagem (por exemplo, Java ou JavaScript ), pois os testes precisam ser escritos em alguma coisa;
- escrever testes automatizados usando Selenium ;
- familiaridade com CI/CD ;
- capacidade de trabalhar com Git ;
- atenção aos detalhes;
- mentalidade crítica.
- Líder de controle de qualidade ;
- treinar novamente e mudar para outra especialidade.
GO TO FULL VERSION