1. Um pouco de história
Quando, na década de 1990, a Revolução da Internet estava apenas começando, ninguém sabia como desenvolver serviços on-line da maneira certa. Todos os seus recursos ficavam imediatamente disponíveis aos usuários, o que diferenciava muito essa abordagem do desenvolvimento clássico de software.
O maior mecanismo de busca da época, a empresa Yahoo, decidiu seguir um novo caminho e adotar uma abordagem de Hollywood — até seus gerentes eram chamados de produtores :) Não é de se surpreender que nada tenha dado certo para eles 🤷♂️
Desde a Revolução da Internet, dezenas de formas diferentes de desenvolver software foram testadas, e hoje a situação se estabilizou. Existem papéis padrão com responsabilidades padrão, processos padrão e software padrão.
No decorrer do aprendizado, você vai aprender tudo o que precisa saber para trabalhar em empresas de TI modernas, com ferramentas de desenvolvimento modernas. 🎓
2. Equipe de produto
Uma equipe típica de desenvolvimento é composta por:
- Pessoas que decidem quais funcionalidades e recursos o produto deve ter
- Product Owner
- Business Analyst
- Pessoas que decidem como o produto será apresentado visualmente
- UI Designer
- UX Designer
- Desenvolvedores que implementam tudo isso
- Software Architect
- Backend Developer
- Frontend Developer
- Mobile Developer
- Pessoas responsáveis pela qualidade de funcionamento do produto
- QA Automation
- DevOps
Product Owner no desenvolvimento de software desempenha um papel fundamental, gerenciando o produto e garantindo que a equipe de desenvolvimento se concentre na execução das tarefas mais importantes. Ele define a visão do produto, cria e prioriza a lista de tarefas (backlog), o que ajuda a garantir que cada etapa do desenvolvimento atenda ao máximo aos objetivos de negócio e aos requisitos dos usuários.
UX Designer é responsável por criar uma interface de produto conveniente e eficaz, o que inclui pesquisar as necessidades dos usuários, desenvolver protótipos e testar interfaces. Esse trabalho tem como objetivo melhorar a interação do usuário com o produto, tornando-o o mais intuitivo e fácil de usar possível.
Profissionais de DevOps cuidam da otimização dos processos de desenvolvimento de software e de sua operação, para acelerar e simplificar o lançamento de atualizações do produto. Seu trabalho inclui a automação de testes, implantação e monitoramento de sistemas, além da configuração da infraestrutura e da garantia de integração e entrega contínuas (CI/CD).
3. Equipe de desenvolvimento
O desenvolvimento em si é feito por programadores. Grosso modo, eles podem ser divididos em 5 categorias:
- Software Architect
- Backend Developer
- Frontend Developer
- Mobile Developer
- Database Administrator
Os papéis e suas responsabilidades podem mudar dependendo do tamanho da equipe e da especificidade do produto, mas a situação é aproximadamente a seguinte:
- 🏗️ Software Architect: responsável por projetar a arquitetura de sistemas de software complexos. O Architect desenvolve a infraestrutura técnica, define a estrutura e os métodos de interação dos diversos componentes do produto de software, garantindo sua escalabilidade, desempenho e segurança.
- ⚙️ Backend Developer: especializado no desenvolvimento da parte de servidor das aplicações. As tarefas do Backend Developer incluem a implementação da lógica, a integração de bancos de dados e sistemas de gerenciamento de dados, o processamento de solicitações dos usuários e a manutenção da interação com a parte de frontend.
- 🖥️ Frontend Developer: desenvolve a interface do usuário de aplicações web. Essa função requer conhecimento de HTML, CSS e JavaScript, bem como de frameworks e bibliotecas para criar interfaces interativas e responsivas, proporcionando uma boa experiência ao usuário com o produto.
- 📱 Mobile Developer: responsável por desenvolver aplicações para dispositivos móveis. O Mobile Developer cria aplicativos para diferentes sistemas operacionais (por exemplo, iOS e Android), levando em conta as particularidades da plataforma, o desempenho dos dispositivos e a experiência do usuário.
- 🗄️ DBA (Database Administrator): responsável pela administração de 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 de backup e restauração de dados.
GO TO FULL VERSION