5.1 Um Pouco de História
Quando lá nos anos 90 a Revolução da Internet começou, ninguém sabia como desenvolver serviços online corretamente. Todas as suas features ficavam disponíveis para os usuários, o que era bem diferente do desenvolvimento de software clássico.
O maior buscador daquela época, a empresa Yahoo, decidiu seguir um novo caminho e adotar a abordagem de Hollywood – seus gerentes eram chamados de produtores :) Não é surpresa que isso não deu certo.
Curiosidade. Yahoo é o maior fracasso em termos de compra de outras empresas. Uma vez, eles tiveram a chance de comprar Google e Facebook. No final, quando estavam no auge de sua carreira, a Microsoft tentou comprá-los por 40 bilhões, mas eles recusaram novamente. Alguns anos depois, foram adquiridos por apenas 3 bilhões. Nos anos 90, no auge de sua popularidade, o Yahoo era avaliado em 200 bilhões de dólares, e se tivessem comprado o Google, seu valor hoje poderia ser de trilhões. Não seja como o Yahoo.
Desde a Revolução da Internet, dezenas de métodos diferentes de desenvolvimento de software foram testados, e agora a situação está estável. 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 saber para trabalhar em empresas de TI modernas, com ferramentas de desenvolvimento modernas.
5.2 Equipe de Produtos
Uma equipe de desenvolvimento típica consiste em:
-
Pessoas que decidem,
quais funções e recursos o produto deve ter
- Product Owner
- Business Analyst
-
Pessoas que decidem,
como o produto será visualmente
- UI Designer
- UX Designer
-
Desenvolvedores,
que tornam tudo isso realidade
- Software Architect
- Backend Developer
- Frontend Developer
- Mobile Developer
-
Pessoas,
que são responsáveis pela qualidade do produto
- QA Automation
- DevOps
Product Owner em desenvolvimento de software tem um papel crucial, gerenciando o produto e garantindo que a equipe de desenvolvimento esteja focada nas tarefas mais importantes. Eles definem a visão do produto, criam e priorizam uma lista de tarefas (backlog), ajudando a garantir que cada etapa do desenvolvimento esteja alinhada com os objetivos de negócios e as necessidades dos usuários.
UX Designer trabalha na criação de uma interface de produto fácil de usar e eficiente, envolvendo pesquisa das necessidades do usuário, prototipagem e teste de interfaces. Este trabalho é voltado para melhorar a interação do usuário com o produto, tornando-o o mais claro e conveniente possível.
Especialistas DevOps otimizam os processos de desenvolvimento de software e seu gerenciamento operacional, para agilizar e simplificar a liberação de atualizações de produtos. Seu trabalho inclui automação de testes, implantação e monitoramento de sistemas, além de configurar infraestrutura e garantir integração e entrega contínuas (CI/CD).
5.3 Equipe de Desenvolvimento
O desenvolvimento propriamente dito é realizado por programadores. Eles podem ser divididos em 5 categorias:
- Software Architect
- Backend Developer
- Frontend Developer
- Mobile Developer
- DBA
Funções e seu conteúdo podem variar dependendo do tamanho da equipe e especificidade do produto, mas geralmente é assim:
Software Architect: responsável por projetar a arquitetura complexa dos sistemas de software. Architect desenvolve a infraestrutura técnica, define a estrutura e os métodos de interação de vários componentes do software, assegurando escalabilidade, desempenho e segurança.
Backend Developer: especializado no desenvolvimento do lado servidor das aplicações. As tarefas do Backend Developer incluem implementação de lógica, integração de bancos de dados e sistemas de gerenciamento de dados, processamento de requisições de usuários e manutenção da interação com a parte frontend.
Frontend Developer: desenvolve a interface de usuário de aplicações web. Este papel exige conhecimento de HTML, CSS e JavaScript, assim como frameworks e bibliotecas para criar interfaces interativas e responsivas, garantindo uma boa experiência de usuário com o produto.
Mobile Developer: é responsável pelo desenvolvimento de aplicativos móveis. Mobile Developer cria aplicativos para diferentes sistemas operacionais (por exemplo, iOS e Android), levando em conta as características da plataforma, desempenho dos dispositivos e experiência do usuário.
DBA (Database Administrator): responsável pelo gerenciamento de bancos de dados, garantindo sua disponibilidade, segurança e otimização. O DBA realiza tarefas de configuração, monitoramento e manutenção de bancos de dados, além de desenvolver estratégias de backup e recuperação de dados.
GO TO FULL VERSION