1. Um pouco de história
Quando, nos anos 90, a Internet Revolution estava começando, ninguém sabia exatamente como desenvolver serviços de internet corretamente. Todas as funcionalidades ficavam disponíveis para os usuários imediatamente, o que era bem diferente do desenvolvimento clássico de software.
O maior buscador da época, a Yahoo, decidiu seguir um caminho diferente e adotar uma abordagem de Hollywood – até os gerentes deles eram chamados de produtores :) Não é surpresa que eles não tenham conseguido 🤷♂️
Desde a Internet Revolution, foram testadas dezenas de formas diferentes de desenvolvimento de software, e agora a situação se estabilizou. Existem papéis padrão com responsabilidades padrão, processos padrão e software padrão.
Durante o aprendizado, você vai aprender tudo que precisa para trabalhar em empresas de TI modernas, com ferramentas de desenvolvimento atuais. 🎓
2. Equipe de produto
Uma equipe típica de desenvolvimento é composta por:
- Pessoas que decidem quais funções e features o produto deve ter
- Product Owner
- Business Analyst
- Pessoas que decidem como o produto vai parecer
- UI Designer
- UX Designer
- Desenvolvedores que implementam tudo isso
- Software Architect
- Backend Developer
- Frontend Developer
- Mobile Developer
- Pessoas responsáveis pela qualidade do produto
- QA Automation
- DevOps
Product Owner na área de desenvolvimento de software tem um papel fundamental, gerenciando o produto e garantindo que a equipe de desenvolvimento foque nas tarefas mais importantes. Ele define a visão do produto, cria e prioriza a lista de tarefas (backlog), ajudando a garantir que cada etapa do desenvolvimento esteja alinhada com os objetivos de negócio e as necessidades dos usuários.
UX Designer trabalha na criação de uma interface do produto que seja fácil e eficiente de usar, incluindo pesquisa de necessidades dos usuários, desenvolvimento de protótipos e testes de interfaces. O objetivo é melhorar a interação do usuário com o produto, tornando-o o mais intuitivo e confortável possível.
DevOps profissionais cuidam de otimizar os processos de desenvolvimento de software e sua operação, acelerando e simplificando o lançamento de atualizações. Eles automatizam testes, deploys, monitoramento, além de configurar infraestrutura e garantir integração contínua e entrega contínua (CI/CD).
3. Equipe de desenvolvimento
O desenvolvimento em si é feito por programadores. Eles podem ser divididos aproximadamente em 5 categorias:
- Software Architect
- Backend Developer
- Frontend Developer
- Mobile Developer
- Database Administrator
As funções podem variar dependendo do tamanho da equipe e do tipo de produto, mas a situação geral é assim:
- 🏗️ Software Architect: responsável pelo design de arquiteturas complexas de sistemas de software. O Architect desenvolve a infraestrutura técnica, define a estrutura e os métodos de interação entre os componentes do produto, garantindo escalabilidade, performance e segurança.
- ⚙️ Backend Developer: trabalha na implementação da lógica do lado do servidor. Suas tarefas incluem integrar bancos de dados, sistemas de gerenciamento de dados, processar requisições dos usuários e manter a comunicação com o frontend.
- 🖥️ Frontend Developer: desenvolve a interface do usuário de aplicações web. Essa função exige conhecimentos em HTML, CSS e JavaScript, além de frameworks e bibliotecas para criar interfaces interativas e responsivas, garantindo uma boa experiência ao usuário.
- 📱 Mobile Developer: cria aplicativos para dispositivos móveis. Desenvolve apps para plataformas como iOS e Android, considerando as particularidades de cada sistema, desempenho e experiência do usuário.
- 🗄️ DBA (Database Administrator): gerencia bancos de dados, garantindo sua disponibilidade, segurança e performance. Realiza tarefas de configuração, monitoramento, manutenção, além de desenvolver estratégias de backup e recuperação de dados.
GO TO FULL VERSION