SlideShare uma empresa Scribd logo
1 de 19
Baixar para ler offline
Projeto e Desenvolvimento de
Software
• Etapas do Projeto de Software
• Cadeia de processos aplicados no Desenvolvimento de Software
• Desenvolvimento de softwares é a atividade de criar programas de
computação, executada por um desenvolvedor ou grupo de
desenvolvedores;
• O software é um produto virtual, que consiste essencialmente em
um conjunto de códigos – instruções escritas em determinada
linguagem da computação;
• O time precisa saber conduzir um projeto, desde a concepção,
entendendo quais são as necessidades do cliente;
• Um trabalho que envolve ouvir, colher informações, fazer
protótipos, testar, ajustar, homologar, implantar e implementar;
Neste contexto entram as metodologias de desenvolvimento de
software, para dar ordem e objetivo ao modo como o trabalho será
conduzido e acompanhado:
• Definir a metodologia de gestão do projeto (preditivo ou ágeis);
• Definir o time de projeto;
• Desenvolvedores: aqueles que receberão os requisitos e construirão o
software;
• Analista de requisitos ou PO : levanta os requisitos com o cliente e cria a
comunicação com o mesmo ;
• Analista de testes: Garante a qualidade do software, testando e evidenciando
erros e melhorias;
• Gerente de Projeto: responsável por controlar o andamento do trabalho,
ajudando o time a realizar as entregas dentro dos prazos planejados
1 - Reunião com o cliente:
• Entender a necessidade do cliente;
• Conhecer o objetivo do software e o publico que irá utilizar;
• Investimento que será feito ajudará no planejamento do tamanho
da equipe, tecnologia utilizada, serviços e ferramentas;
• Estimativas de prazos, funcionalidades e especificações gerais que
o cliente deseja ter no software;
2 - Especificações de requisitos:
• Especificar como será feito o software;
• Escolha das tecnologias que serão utilizadas, linguagem de
programação, arquitetura do software, etc;
• Definir processos de negócios, regras, condições, etc;
• Usar técnicas de levantamento de requisitos como estória de
usuários, UX ( Experiencia do usuário) e UI ( Interface do usuário) ;
3 - Desenvolvimento:
• Definir arquitetura de funcionamento do software;
• Definir frameworks, bibliotecas, componentes, etc;
• Definir ferramentas de versionamento de códigos;
• Alocar pessoas no projeto e definir papéis e responsabilidades;
• Definir gerente de projetos, desenvolvedores, testador, PO, etc;
4 – Reuniões de planejamento e feedbacks:
• Realizar reuniões de planejamento de tarefas;
• Realizar reuniões de acompanhamento de processos e feedbacks
de entregas;
• Reuniões com o cliente para alinhamentos;
• Objetivos das reuniões é seguir uma cadeia de processos tornando
o trabalho mais controlado e eficiente e facilitar a Comunicação;
5 – Cadeia de processos para desenvolvimento de software:
Serve como guia para o andamento do projeto, nas quais cada tarefa
dentro do projeto precisa passar por essas etapas para que esteja
pronto e finalizado para ser utilizado pelo usuário.
Backlog do
Projeto
Em
andamento
Teste Pronto Homologação Produção
5 – Cadeia de processos para desenvolvimento de software:
• Backlog do projeto – lista de tarefas para serem feitas, podem ser
categorizadas por módulos, funcionalidades, requisitos, estórias de
usuários, solicitações de mudanças, bugs, etc.
• Em andamento – lista de tarefas que estão sendo desenvolvidas
dentro do processo;
Backlog do
projeto
Em
andamento
Teste Pronto Homologação Produção
5 – Cadeia de processos para desenvolvimento de software:
• Teste – tem o objetivo de verificar as funcionalidades e o fluxo do
processo dentro das condições especificadas, pode ser feito de
forma automatizada ou manual. Deve-se encontrar erros no
comportamento da aplicação.
• Pronto – não basta está concluído, deve está funcional e com a
qualidade necessária, integração continua;
Backlog
Em
andamento
Teste Pronto Homologação Produção
5 – Cadeia de processos para desenvolvimento de software:
• Homologação – é o ambiente onde o software será testado e
verificado, por um grupo de usuários limitados que terá acesso
para avaliar o desempenho das funções se estão de acordo com as
necessidades e o que foi requerido pelo cliente.
• Produção – após passar pelos testes em homologação, o software
é colocado em ambiente de produção para os usuários finais do
produto;
Backlog
Em
andamento
Teste Pronto Homologação Produção
5 – Manutenções e atualizações:
• Esta é uma maneira de firmar a relação entre cliente e empresa
contratada com objetivo de manter seu produto funcionando de
maneira correta, é necessário realizar manutenções e atualizações
do software para prevenir bugs e também adicionar novas
funcionalidade de acordo com o desejo do cliente;
6 – Deploy:
• Planejar uma aplicação, desenvolvê-la e ver seu código
funcionando perfeitamente após o período de testes são algumas
das etapas que antecedem o famoso deploy (implantar);
• Extremamente necessário, pois sem ele nenhum site, software ou
aplicativo seria utilizado pelos seus usuários finais;
• Esta tarefa é extremamente comum dentro do escopo de trabalho
dos programadores, embora seja muito comumente associada
somente aos profissionais de infraestrutura, ou DevOps;
6 – Deploy:
• Quando um site é finalizado por um desenvolvedor e, após seus
testes, é finalmente hospedado e colocado no ar, ele passa pelo
processo de deploy;
• De mesmo modo, quando um sistema sofre alguma melhoria ou
alteração em seu código-fonte, implementar essa alteração ao
sistema que está no ar também é um tipo de deploy;
• O Deploy é feito no ambiente de dev, de homologação e produção;
6 – Deploy:
• Manual: Um exemplo clássico de deploy manual é o famoso FTP,
ou Protocolo de Transferência de Arquivo, um processo que
permite que arquivos possam ser transferidos entre dois ou mais
computadores através de uma rede de internet, mas precisa de
interferência humana para acontecer;
• Entre as maiores desvantagens do deploy manual está o tempo e
os recursos gastos com uma atividade que poderia ser feita mais
rapidamente, otimizando a produtividade da equipe;
6 – Deploy:
• Parcialmente automatizado: Atualizar um repositório GIT, por
exemplo, é fazer um deploy parcialmente automatizado, Ele recebe
essa classificação porque, apesar de alguns comandos humanos
serem necessitados, o push do branch master que ocorre através
de um pequeno hook e atualiza o servidor é totalmente
automática. Outra grande vantagem deste deploy é o controle de
versões do GIT;
6 – Deploy:
• Completamente automatizado: O deploy completamente automatizado é um
recurso de ponta em termos de tecnologia;
• Com ele é possível garantir mais segurança, qualidade e eficiência na hora de
fazer atualizações e melhorias em sites, aplicativos ou softwares de grande
utilização, como redes sociais e até mesmo serviços Google;
• Existem hoje, no mercado, diversas ferramentas voltadas à automatização
total do processo de deploy, entre as mais populares estão Jenkins, GitLab,
Azure Pipelines e Circle CI;
• Esta categoria de deploy, além de transmitir automaticamente as suas
atualizações para o servidor, também realiza aquilo que chamamos
de integração contínua; uma vez que é graças à integração contínua que erros
e bugs são mais facilmente encontrados na hora dos testes automáticos;

Mais conteúdo relacionado

Mais procurados

Introdução ao desenvolvimento Web
Introdução ao desenvolvimento WebIntrodução ao desenvolvimento Web
Introdução ao desenvolvimento Web
Sérgio Souza Costa
 

Mais procurados (20)

Aplicações web parte 1
Aplicações web parte 1Aplicações web parte 1
Aplicações web parte 1
 
Estrutura de Dados - Aula 02
Estrutura de Dados - Aula 02Estrutura de Dados - Aula 02
Estrutura de Dados - Aula 02
 
Desenvolvimento Mobile
Desenvolvimento MobileDesenvolvimento Mobile
Desenvolvimento Mobile
 
Aula 1 - Programação Dinâmica para Web
Aula 1 - Programação Dinâmica para WebAula 1 - Programação Dinâmica para Web
Aula 1 - Programação Dinâmica para Web
 
Lógica de programação em ppt
Lógica de programação em pptLógica de programação em ppt
Lógica de programação em ppt
 
Processos de Desenvolvimento de Software - teoria e prática
Processos de Desenvolvimento de Software - teoria e práticaProcessos de Desenvolvimento de Software - teoria e prática
Processos de Desenvolvimento de Software - teoria e prática
 
Introdução à Qualidade e Testes Ágeis de Software
Introdução à Qualidade e Testes Ágeis de SoftwareIntrodução à Qualidade e Testes Ágeis de Software
Introdução à Qualidade e Testes Ágeis de Software
 
Aula 6 - Qualidade de Software
Aula 6 - Qualidade de SoftwareAula 6 - Qualidade de Software
Aula 6 - Qualidade de Software
 
Engenharia de Requisitos
Engenharia de RequisitosEngenharia de Requisitos
Engenharia de Requisitos
 
Gestão de Projetos e Ferramentas
Gestão de Projetos e FerramentasGestão de Projetos e Ferramentas
Gestão de Projetos e Ferramentas
 
Arquitetura de Software
Arquitetura de SoftwareArquitetura de Software
Arquitetura de Software
 
Algoritmos e Estrutura de Dados - Aula 01
Algoritmos e Estrutura de Dados - Aula 01Algoritmos e Estrutura de Dados - Aula 01
Algoritmos e Estrutura de Dados - Aula 01
 
Gestão Estratégica da TI - Apresentação
Gestão Estratégica da TI - ApresentaçãoGestão Estratégica da TI - Apresentação
Gestão Estratégica da TI - Apresentação
 
Desenvolvimento de Sistemas Web - Conceitos Básicos
Desenvolvimento de Sistemas Web - Conceitos BásicosDesenvolvimento de Sistemas Web - Conceitos Básicos
Desenvolvimento de Sistemas Web - Conceitos Básicos
 
Aula 1 - Introdução a POO
Aula 1 -  Introdução a POOAula 1 -  Introdução a POO
Aula 1 - Introdução a POO
 
Aula javascript
Aula  javascriptAula  javascript
Aula javascript
 
Teste de Software - Introdução
Teste de Software - IntroduçãoTeste de Software - Introdução
Teste de Software - Introdução
 
Introdução básica ao JavaScript
Introdução básica ao JavaScriptIntrodução básica ao JavaScript
Introdução básica ao JavaScript
 
Modelos de processos de software
Modelos de processos de softwareModelos de processos de software
Modelos de processos de software
 
Introdução ao desenvolvimento Web
Introdução ao desenvolvimento WebIntrodução ao desenvolvimento Web
Introdução ao desenvolvimento Web
 

Semelhante a Projeto e Desenvolvimento de Software

Es2 modelo de processo de software
Es2 modelo de processo de softwareEs2 modelo de processo de software
Es2 modelo de processo de software
luacal
 
Aula 03 de engenharia de software uespi 2011-1
Aula 03 de engenharia de software uespi 2011-1Aula 03 de engenharia de software uespi 2011-1
Aula 03 de engenharia de software uespi 2011-1
Erivelton Silva Rocha
 

Semelhante a Projeto e Desenvolvimento de Software (20)

Análise sobre a utilização de frameworks em PHP: CakePHP, CodeIgniter e Zend
Análise sobre a utilização de frameworks em PHP: CakePHP, CodeIgniter e ZendAnálise sobre a utilização de frameworks em PHP: CakePHP, CodeIgniter e Zend
Análise sobre a utilização de frameworks em PHP: CakePHP, CodeIgniter e Zend
 
Aula 3 - Engenharia de Software
Aula 3 - Engenharia de SoftwareAula 3 - Engenharia de Software
Aula 3 - Engenharia de Software
 
O Processo de Desenvolvimento de Software
O Processo de Desenvolvimento de SoftwareO Processo de Desenvolvimento de Software
O Processo de Desenvolvimento de Software
 
Apresentação RUP
Apresentação RUPApresentação RUP
Apresentação RUP
 
Aula - Modelos de Processos de Desenvolvimento de Software / Mobile App
Aula - Modelos de Processos de Desenvolvimento de Software / Mobile AppAula - Modelos de Processos de Desenvolvimento de Software / Mobile App
Aula - Modelos de Processos de Desenvolvimento de Software / Mobile App
 
ALM Open Source Ponta a Ponta - Minicurso Globalcode MC-122
ALM Open Source Ponta a Ponta - Minicurso Globalcode MC-122ALM Open Source Ponta a Ponta - Minicurso Globalcode MC-122
ALM Open Source Ponta a Ponta - Minicurso Globalcode MC-122
 
Aula Modelos de Processos Tradicionais para Desenvolvimento de Software
Aula Modelos de Processos Tradicionais para Desenvolvimento de Software Aula Modelos de Processos Tradicionais para Desenvolvimento de Software
Aula Modelos de Processos Tradicionais para Desenvolvimento de Software
 
Áreas de Conhecimento da Engenharia de Software
Áreas de Conhecimento da Engenharia de SoftwareÁreas de Conhecimento da Engenharia de Software
Áreas de Conhecimento da Engenharia de Software
 
Projeto de Sistemas - Aula002
Projeto de Sistemas - Aula002Projeto de Sistemas - Aula002
Projeto de Sistemas - Aula002
 
Arquitetura de Software para a Entrega Continua
Arquitetura de Software para a Entrega ContinuaArquitetura de Software para a Entrega Continua
Arquitetura de Software para a Entrega Continua
 
DEV-OPS para teste de software
DEV-OPS para teste de softwareDEV-OPS para teste de software
DEV-OPS para teste de software
 
DevOps & Docker com a stack Microsoft
DevOps & Docker com a stack MicrosoftDevOps & Docker com a stack Microsoft
DevOps & Docker com a stack Microsoft
 
Aula 2 - Modelos de processos
Aula 2 -  Modelos de processosAula 2 -  Modelos de processos
Aula 2 - Modelos de processos
 
Apresentacao dev ops
Apresentacao dev opsApresentacao dev ops
Apresentacao dev ops
 
Palestra DevOps para Teste de Software
Palestra DevOps para Teste de SoftwarePalestra DevOps para Teste de Software
Palestra DevOps para Teste de Software
 
Sonarqube
SonarqubeSonarqube
Sonarqube
 
Metodologia Desenvolvimento do Prefeitura Livre
Metodologia Desenvolvimento do Prefeitura LivreMetodologia Desenvolvimento do Prefeitura Livre
Metodologia Desenvolvimento do Prefeitura Livre
 
Es2 modelo de processo de software
Es2 modelo de processo de softwareEs2 modelo de processo de software
Es2 modelo de processo de software
 
Aula 03 de engenharia de software uespi 2011-1
Aula 03 de engenharia de software uespi 2011-1Aula 03 de engenharia de software uespi 2011-1
Aula 03 de engenharia de software uespi 2011-1
 
Prototipação
PrototipaçãoPrototipação
Prototipação
 

Mais de Aragon Vieira

Mais de Aragon Vieira (20)

DMAIC - Ferramentas para projetos Six Sigma - Lean
DMAIC - Ferramentas para projetos Six Sigma - LeanDMAIC - Ferramentas para projetos Six Sigma - Lean
DMAIC - Ferramentas para projetos Six Sigma - Lean
 
Modelo de User Stories - Ágil
Modelo de User Stories - ÁgilModelo de User Stories - Ágil
Modelo de User Stories - Ágil
 
Modelo de Sprint Backlog
Modelo de Sprint BacklogModelo de Sprint Backlog
Modelo de Sprint Backlog
 
Como fazer a gestão do Time de Desenvolvimento
Como fazer a gestão do Time de DesenvolvimentoComo fazer a gestão do Time de Desenvolvimento
Como fazer a gestão do Time de Desenvolvimento
 
Gerenciamento de Portfólio de Projetos
Gerenciamento de Portfólio de ProjetosGerenciamento de Portfólio de Projetos
Gerenciamento de Portfólio de Projetos
 
Modelo - Termo de abertura de projeto
 Modelo  - Termo de abertura de projeto   Modelo  - Termo de abertura de projeto
Modelo - Termo de abertura de projeto
 
Modelo de Roadmap de Produto
Modelo de Roadmap de ProdutoModelo de Roadmap de Produto
Modelo de Roadmap de Produto
 
Modelo de backlog de sprint - Scrum
Modelo de backlog de sprint - ScrumModelo de backlog de sprint - Scrum
Modelo de backlog de sprint - Scrum
 
Gráfico de produtividade Time de desenvolvimento - modelo
Gráfico de produtividade   Time de desenvolvimento - modeloGráfico de produtividade   Time de desenvolvimento - modelo
Gráfico de produtividade Time de desenvolvimento - modelo
 
Modelo Roadmap de produto - template
Modelo Roadmap de produto - templateModelo Roadmap de produto - template
Modelo Roadmap de produto - template
 
EAP - Estrutura analítica de projetos
EAP -  Estrutura analítica de projetosEAP -  Estrutura analítica de projetos
EAP - Estrutura analítica de projetos
 
Toc aplicada a gestão de projetos
Toc aplicada a gestão de projetosToc aplicada a gestão de projetos
Toc aplicada a gestão de projetos
 
Colocando o Scrum em prática
Colocando o Scrum em práticaColocando o Scrum em prática
Colocando o Scrum em prática
 
Visão do Produto no Scrum
Visão do Produto no ScrumVisão do Produto no Scrum
Visão do Produto no Scrum
 
PMO - Project Management Office
PMO - Project Management OfficePMO - Project Management Office
PMO - Project Management Office
 
Gestão de Projetos Hibrida
Gestão de Projetos HibridaGestão de Projetos Hibrida
Gestão de Projetos Hibrida
 
Framework Scrum
Framework   ScrumFramework   Scrum
Framework Scrum
 
Framework PMO
Framework  PMOFramework  PMO
Framework PMO
 
Fluxograma processo - desenvolvimento de software
Fluxograma   processo - desenvolvimento de softwareFluxograma   processo - desenvolvimento de software
Fluxograma processo - desenvolvimento de software
 
Escalabilidade do Scrum
Escalabilidade do ScrumEscalabilidade do Scrum
Escalabilidade do Scrum
 

Último

Último (6)

Boas práticas de programação com Object Calisthenics
Boas práticas de programação com Object CalisthenicsBoas práticas de programação com Object Calisthenics
Boas práticas de programação com Object Calisthenics
 
ATIVIDADE 1 - GCOM - GESTÃO DA INFORMAÇÃO - 54_2024.docx
ATIVIDADE 1 - GCOM - GESTÃO DA INFORMAÇÃO - 54_2024.docxATIVIDADE 1 - GCOM - GESTÃO DA INFORMAÇÃO - 54_2024.docx
ATIVIDADE 1 - GCOM - GESTÃO DA INFORMAÇÃO - 54_2024.docx
 
ATIVIDADE 1 - CUSTOS DE PRODUÇÃO - 52_2024.docx
ATIVIDADE 1 - CUSTOS DE PRODUÇÃO - 52_2024.docxATIVIDADE 1 - CUSTOS DE PRODUÇÃO - 52_2024.docx
ATIVIDADE 1 - CUSTOS DE PRODUÇÃO - 52_2024.docx
 
ATIVIDADE 1 - ESTRUTURA DE DADOS II - 52_2024.docx
ATIVIDADE 1 - ESTRUTURA DE DADOS II - 52_2024.docxATIVIDADE 1 - ESTRUTURA DE DADOS II - 52_2024.docx
ATIVIDADE 1 - ESTRUTURA DE DADOS II - 52_2024.docx
 
Padrões de Projeto: Proxy e Command com exemplo
Padrões de Projeto: Proxy e Command com exemploPadrões de Projeto: Proxy e Command com exemplo
Padrões de Projeto: Proxy e Command com exemplo
 
ATIVIDADE 1 - LOGÍSTICA EMPRESARIAL - 52_2024.docx
ATIVIDADE 1 - LOGÍSTICA EMPRESARIAL - 52_2024.docxATIVIDADE 1 - LOGÍSTICA EMPRESARIAL - 52_2024.docx
ATIVIDADE 1 - LOGÍSTICA EMPRESARIAL - 52_2024.docx
 

Projeto e Desenvolvimento de Software

  • 1.
  • 2. Projeto e Desenvolvimento de Software • Etapas do Projeto de Software • Cadeia de processos aplicados no Desenvolvimento de Software
  • 3. • Desenvolvimento de softwares é a atividade de criar programas de computação, executada por um desenvolvedor ou grupo de desenvolvedores; • O software é um produto virtual, que consiste essencialmente em um conjunto de códigos – instruções escritas em determinada linguagem da computação; • O time precisa saber conduzir um projeto, desde a concepção, entendendo quais são as necessidades do cliente; • Um trabalho que envolve ouvir, colher informações, fazer protótipos, testar, ajustar, homologar, implantar e implementar;
  • 4. Neste contexto entram as metodologias de desenvolvimento de software, para dar ordem e objetivo ao modo como o trabalho será conduzido e acompanhado: • Definir a metodologia de gestão do projeto (preditivo ou ágeis); • Definir o time de projeto; • Desenvolvedores: aqueles que receberão os requisitos e construirão o software; • Analista de requisitos ou PO : levanta os requisitos com o cliente e cria a comunicação com o mesmo ; • Analista de testes: Garante a qualidade do software, testando e evidenciando erros e melhorias; • Gerente de Projeto: responsável por controlar o andamento do trabalho, ajudando o time a realizar as entregas dentro dos prazos planejados
  • 5.
  • 6. 1 - Reunião com o cliente: • Entender a necessidade do cliente; • Conhecer o objetivo do software e o publico que irá utilizar; • Investimento que será feito ajudará no planejamento do tamanho da equipe, tecnologia utilizada, serviços e ferramentas; • Estimativas de prazos, funcionalidades e especificações gerais que o cliente deseja ter no software;
  • 7. 2 - Especificações de requisitos: • Especificar como será feito o software; • Escolha das tecnologias que serão utilizadas, linguagem de programação, arquitetura do software, etc; • Definir processos de negócios, regras, condições, etc; • Usar técnicas de levantamento de requisitos como estória de usuários, UX ( Experiencia do usuário) e UI ( Interface do usuário) ;
  • 8. 3 - Desenvolvimento: • Definir arquitetura de funcionamento do software; • Definir frameworks, bibliotecas, componentes, etc; • Definir ferramentas de versionamento de códigos; • Alocar pessoas no projeto e definir papéis e responsabilidades; • Definir gerente de projetos, desenvolvedores, testador, PO, etc;
  • 9. 4 – Reuniões de planejamento e feedbacks: • Realizar reuniões de planejamento de tarefas; • Realizar reuniões de acompanhamento de processos e feedbacks de entregas; • Reuniões com o cliente para alinhamentos; • Objetivos das reuniões é seguir uma cadeia de processos tornando o trabalho mais controlado e eficiente e facilitar a Comunicação;
  • 10. 5 – Cadeia de processos para desenvolvimento de software: Serve como guia para o andamento do projeto, nas quais cada tarefa dentro do projeto precisa passar por essas etapas para que esteja pronto e finalizado para ser utilizado pelo usuário. Backlog do Projeto Em andamento Teste Pronto Homologação Produção
  • 11. 5 – Cadeia de processos para desenvolvimento de software: • Backlog do projeto – lista de tarefas para serem feitas, podem ser categorizadas por módulos, funcionalidades, requisitos, estórias de usuários, solicitações de mudanças, bugs, etc. • Em andamento – lista de tarefas que estão sendo desenvolvidas dentro do processo; Backlog do projeto Em andamento Teste Pronto Homologação Produção
  • 12. 5 – Cadeia de processos para desenvolvimento de software: • Teste – tem o objetivo de verificar as funcionalidades e o fluxo do processo dentro das condições especificadas, pode ser feito de forma automatizada ou manual. Deve-se encontrar erros no comportamento da aplicação. • Pronto – não basta está concluído, deve está funcional e com a qualidade necessária, integração continua; Backlog Em andamento Teste Pronto Homologação Produção
  • 13. 5 – Cadeia de processos para desenvolvimento de software: • Homologação – é o ambiente onde o software será testado e verificado, por um grupo de usuários limitados que terá acesso para avaliar o desempenho das funções se estão de acordo com as necessidades e o que foi requerido pelo cliente. • Produção – após passar pelos testes em homologação, o software é colocado em ambiente de produção para os usuários finais do produto; Backlog Em andamento Teste Pronto Homologação Produção
  • 14. 5 – Manutenções e atualizações: • Esta é uma maneira de firmar a relação entre cliente e empresa contratada com objetivo de manter seu produto funcionando de maneira correta, é necessário realizar manutenções e atualizações do software para prevenir bugs e também adicionar novas funcionalidade de acordo com o desejo do cliente;
  • 15. 6 – Deploy: • Planejar uma aplicação, desenvolvê-la e ver seu código funcionando perfeitamente após o período de testes são algumas das etapas que antecedem o famoso deploy (implantar); • Extremamente necessário, pois sem ele nenhum site, software ou aplicativo seria utilizado pelos seus usuários finais; • Esta tarefa é extremamente comum dentro do escopo de trabalho dos programadores, embora seja muito comumente associada somente aos profissionais de infraestrutura, ou DevOps;
  • 16. 6 – Deploy: • Quando um site é finalizado por um desenvolvedor e, após seus testes, é finalmente hospedado e colocado no ar, ele passa pelo processo de deploy; • De mesmo modo, quando um sistema sofre alguma melhoria ou alteração em seu código-fonte, implementar essa alteração ao sistema que está no ar também é um tipo de deploy; • O Deploy é feito no ambiente de dev, de homologação e produção;
  • 17. 6 – Deploy: • Manual: Um exemplo clássico de deploy manual é o famoso FTP, ou Protocolo de Transferência de Arquivo, um processo que permite que arquivos possam ser transferidos entre dois ou mais computadores através de uma rede de internet, mas precisa de interferência humana para acontecer; • Entre as maiores desvantagens do deploy manual está o tempo e os recursos gastos com uma atividade que poderia ser feita mais rapidamente, otimizando a produtividade da equipe;
  • 18. 6 – Deploy: • Parcialmente automatizado: Atualizar um repositório GIT, por exemplo, é fazer um deploy parcialmente automatizado, Ele recebe essa classificação porque, apesar de alguns comandos humanos serem necessitados, o push do branch master que ocorre através de um pequeno hook e atualiza o servidor é totalmente automática. Outra grande vantagem deste deploy é o controle de versões do GIT;
  • 19. 6 – Deploy: • Completamente automatizado: O deploy completamente automatizado é um recurso de ponta em termos de tecnologia; • Com ele é possível garantir mais segurança, qualidade e eficiência na hora de fazer atualizações e melhorias em sites, aplicativos ou softwares de grande utilização, como redes sociais e até mesmo serviços Google; • Existem hoje, no mercado, diversas ferramentas voltadas à automatização total do processo de deploy, entre as mais populares estão Jenkins, GitLab, Azure Pipelines e Circle CI; • Esta categoria de deploy, além de transmitir automaticamente as suas atualizações para o servidor, também realiza aquilo que chamamos de integração contínua; uma vez que é graças à integração contínua que erros e bugs são mais facilmente encontrados na hora dos testes automáticos;