DevOps
DevOps é contração entre development e operations. Trata-se da metodologia de desenvolvimento e entrega que mantêm os times de desenvolvimento e infra-estrutura em constante colaboração, muitas vezes borrando a fronteira entre estas duas etapas [Httermann, 2012]. Isto é alcançado a partir de uma metodologia que enfatiza o uso de testes, integração contínua e automação para que, idealmente, os processos de implantação sejam tratados como código e que o código seja incorporado de forma contínua e confiável à aplicação em produção.
A metodologia é normalmente associada a métodos ágeis de desenvolvimento, onde DevOps permite com que as mudanças realizadas pelo time desenvolvimento sejam incorporadas mais rapidamente em produção. Isto permite ciclos mais rápidos de atualização e uma maior facilidade em responder a novos requisitos e experimentar com novas funcionalidades. Várias companhias referência em desenvolvimento de software adotam práticas de DevOps, normalmente com resultados bastante positivos [Riungu-Kalliosaari et. al, 2016].
A cultura DevOps faz parte do conjunto de boas práticas de desenvolvimento preconizadas pelo LAPPIS. O uso desta metodologia no projeto permite não só uma maior agilidade no processo de desenvolvimento, mas possui um papel importante em capacitar os alunos com as tecnologias e processos utilizados no laboratório.
Controle de Versão
O controle de versão é uma forma de manter o histórico das modificações e evoluções de um determinado arquivo dentro de um projeto, de forma a permitir a recuperação de versões específicas.
Comunicação
Revisão de Código
Serve para validar a qualidade do código de uma funcionalidade que está prestes a ser integrada ao software.
Histórias de Usuário
Descrições dos requisitos do software do ponto de vista do usuário.
Testes de Aceitação
Servem para verificar se os requisitos planejados foram entregues com sucesso, e atendem às necessidades iniciais do usuário.
Programação em Par
Prática utilizada para maior integração e rotação de conhecimentos na equipe, onde os desenvolvedores programam em dupla a fim de aumentar a produtividade.
Testes Unitários
Tem por objetivo testar cada unidade do código, a fim de validar sua integridade.
Planning Poker
Técnica de planejamento da sprint com base na pontuação das atividades a serem desenvolvidas.
Backlog do Produto
Listagem de todas as funcionalidades a serem implementadas no software.
Quadro Kanban
Ferramenta utlizada para facilitar o entendimento da situação atual do software.
Equipes Auto Organizáveis
Equipes onde cada integrante escolhe a atividade que melhor se adequa ao seu perfil.
Planejamento das Releases
Relação das funcionalidades que serão entregues em etapas do projeto.
Planejamento das Iterações
Relação das funcionalidades que serão entregues em etapas da release.
Retrospectivas
Ocorrendo ao final de cada iteração, a retrospectiva é uma reunião que tem por objetivo avaliar as boas e más práticas utilizadas ao longo da iteração, de forma a melhorar as condições de desenvolvimento do projeto.