5.1 Um pouco de história
Quando nos anos 90 a Revolução da Internet estava apenas começando, ninguém sabia como desenvolver serviços de internet corretamente. Todas as suas features se tornavam imediatamente disponíveis para os usuários, o que era bem diferente da abordagem clássica de desenvolvimento de software.
O maior buscador daquela época, a empresa Yahoo, decidiu ir por um novo caminho e adotar a abordagem de Hollywood: seus gerentes até eram chamados de Produtores :) Não é surpreendente que nada tenha dado certo para eles. 🤦♂️
Yahoo — o maior perdedor em termos de comprar outras empresas. Eles tiveram várias oportunidades de comprar Google e Facebook. E no seu declínio, a Microsoft queria comprá-los por 40 bilhões, mas eles recusaram novamente. Alguns anos depois, foram comprados por 3 bilhões. Embora nos anos 90, no auge, valessem 200 bilhões, e se tivessem comprado o Google, valeriam agora alguns trilhões. Não seja como o Yahoo.
Desde a Revolução da Internet foram testadas dezenas de diferentes maneiras de desenvolver software, e agora a situação estabilizou. Existem papéis padrão com responsabilidades padrão, processos padrão e software padrão.
No processo de aprendizado você vai aprender tudo o que precisa saber para trabalhar em empresas modernas de TI, com ferramentas de desenvolvimento modernas.
5.2 Equipe de Produto
Uma equipe de desenvolvimento típica é composta por:
- Pessoas que decidem quais funções e recursos o produto deve ter
- Product Owner
- Business Analytic
- Desenvolvedores que implementam tudo isso
- Software Architect
- Backend Developer
- Frontend Developer
- Mobile Developer
- Pessoas responsáveis pelo bom funcionamento do produto
- QA Automation
- DevOps
Product Owner no desenvolvimento de software desempenha um papel chave. Ele gerencia o produto e garante que a equipe de desenvolvimento se concentre nas tarefas mais importantes. Ele define a visão do produto, cria e prioriza o backlog. Isso ajuda a garantir que cada etapa do desenvolvimento esteja alinhada com os objetivos de negócios e as necessidades dos usuários.
UX Designer é responsável por criar uma interface de produto amigável e eficiente, que inclui a pesquisa das necessidades dos usuários, desenvolvimento de protótipos e teste de interfaces. Esse trabalho é voltado para melhorar a interação do usuário com o produto, tornando-o o mais claro e conveniente possível.
Especialistas em DevOps otimizam os processos de desenvolvimento de software e sua operação, para acelerar e simplificar o lançamento de atualizações de produtos. Seu trabalho inclui automatização de testes, implantação e monitoramento de sistemas, além de configurar infraestrutura e assegurar integração e entrega contínuas (CI/CD).
5.3 Equipe de Desenvolvimento
O desenvolvimento em si é realizado por programadores. Eles podem ser divididos em cinco categorias:
- Software Architect
- Backend Developer
- Frontend Developer
- Mobile Developer
- DBA
As funções e seu conteúdo podem mudar dependendo do tamanho da equipe e da especificidade do produto, mas a situação é mais ou menos assim:
Software Architect: responsável pelo design da arquitetura complexa de sistemas de software. Um Architect desenvolve a infraestrutura técnica, determina a estrutura e os métodos de interação dos vários componentes do produto de software, garantindo sua escalabilidade, desempenho e segurança.
Backend Developer: especializado no desenvolvimento da parte de servidor dos aplicativos. As tarefas de um Backend Developer incluem a implementação da lógica, integração de bancos de dados e sistemas de gerenciamento de dados, processamento de solicitações dos usuários e manutenção da interação com a parte frontend.
Frontend Developer: desenvolve a interface do usuário de aplicações web. Este papel requer conhecimento de HTML, CSS e JavaScript, além de frameworks e bibliotecas para criar interfaces interativas e responsivas, que proporcionem boa interação do usuário com o produto.
Mobile Developer: trabalha no desenvolvimento de aplicativos para dispositivos móveis. Um Mobile Developer cria aplicativos para diferentes sistemas operacionais (por exemplo, iOS e Android), considerando as características da plataforma, desempenho dos dispositivos e experiência do usuário.
DBA (Database Administrator): responsável pela gestão dos bancos de dados, garantindo sua disponibilidade, segurança e otimização. O DBA realiza tarefas de configuração, monitoramento e manutenção dos bancos de dados, além de desenvolver estratégias para backup e recuperação de dados.
GO TO FULL VERSION