Nossas metodologias
O Ágil
E a disciplina que estuda um conjunto de comportamentos, processos, práticas e ferramentas utilizados para a criação de produtos (geralmente de, mas não limitados a, software) e sua subsequente disponibilização para os usuários finais. As metodologias e frameworks que fazem parte do conceito de desenvolvimento ágil providenciam uma estrutura conceitual para conduzir projetos de engenharia de software.
Existem inúmeros frameworks de processos para desenvolvimento de software. A maioria dos métodos ágeis tenta minimizar o risco pelo desenvolvimento do software em curtos períodos, chamados de iteração, os quais gastam tipicamente menos de uma semana a até quatro. Cada iteração é como um projeto de software em miniatura de seu próprio, e inclui todas as tarefas necessárias para implantar o mini-incremento da nova funcionalidade: planejamento, análise de requisitos, projeto, codificação, teste e documentação. Enquanto em um processo convencional, cada iteração não está necessariamente focada em adicionar um novo conjunto significativo de funcionalidades, um projeto de software ágil busca a capacidade de implantar uma nova versão do software ao fim de cada iteração, etapa a qual a equipe responsável reavalia as prioridades do projeto.
Métodos ágeis enfatizam comunicações em tempo real, preferencialmente cara a cara, a documentos escritos. A maioria dos componentes de um grupo ágil deve estar agrupada em uma sala. Isso inclui todas as pessoas necessárias para terminar o software: no mínimo, os programadores e seus clientes (clientes são as pessoas que definem o produto, eles podem ser os gerentes, analistas de negócio, ou realmente os clientes). Nesta sala devem também se encontrar os testadores, projetistas de iteração, redatores técnicos e gerentes.
Métodos ágeis também enfatizam o software funcional como uma medida primária de progresso. Combinado com a comunicação cara-a-cara, métodos ágeis produzem pouca documentação em relação a outros métodos, sendo este um dos pontos que podem ser considerados negativos, mas reduzindo o tempo de produção de documentação mais útil.
Valores ágeis de desenvolvimento de software
Segundo a página Agile Manifest - Manifesto ágil os valores relacionados ao Desenvolvimento ágil de software são:
- Indivíduos e iterações mais que processos e ferramentas;
- Software funcional mais que documentação abrangente;
- Colaboração do cliente mais que negociação de contratos;
- Responder a mudanças mais que seguir um plano
Ou seja, o item à esquerda sempre tem maior importância do que o item à direita
Princípios ágeis de desenvolvimento de software
Os princípios do desenvolvimento ágil valorizam
- Garantir a satisfação do consumidor entregando rapidamente e continuamente software funcionais;
- Até mesmo mudanças tardias de escopo no projeto são bem-vindas para garantir a vantagem competitiva do cliente;
- Software funcionais são entregues frequentemente (semanas, ao invés de meses);
- Cooperação diária entre pessoas que entendem do 'negócio' e desenvolvedores;
- Projetos surgem através de indivíduos motivados, entre os quais existe relação de confiança.
- A maneira mais eficiente e efetiva de transmitir informações é conversar cara a cara;
- Software funcionais são a principal medida de progresso do projeto;
- Processos ágeis promovem desenvolvimento sustentável. Os patrocinadores, desenvolvedores e usuários devem ser capazes para manter um ritmo constante indefinidamente.
- Design do software deve prezar pela excelência técnica;
- Simplicidade é essencial;
- As melhores arquiteturas, requisitos e projetos emergem de equipes auto-organizadas;
- Em intervalos regulares, a equipe reflete sobre como para tornar-se mais eficaz, então sintoniza e ajusta seu comportamento apropriadamente.
Práticas Ágeis de Desenvolvimento de Software
O desenvolvimento de software ágil é apoiado por várias práticas concretas, abrangendo áreas como requisitos, design, modelagem, codificação, teste, planejamento, gerenciamento de risco, processo, qualidade, etc. Algumas práticas notáveis de desenvolvimento ágil de software incluem: [13]
Pratica | |
---|---|
Desenvolvimento orientado a testes de aceitação (ATDD) | Kent Beck |
Modelagem ágil | Scott Ambler |
Teste ágil | |
Backlogs (produto e Sprint) | Ken Schwaber |
Desenvolvimento Orientado por Comportamento (BDD) | Dan North , Liz Keogh |
Integração Contínua (CI) | Grady Booch |
Equipe multifuncional | |
Design dirigido por domínio (DDD) | Eric Evans |
Desenvolvimento Iterativo e Incremental (IID) | |
Plataformas de desenvolvimento de baixo código | |
Programação par | Kent Beck |
Pôquer planejando | James Grenning, Mike Cohn |
Refatoração | |
Retrospectivo | |
Eventos Scrum (planejamento de sprint, scrum diário, revisão de sprint e retrospectiva) | |
Especificação por exemplo | |
Modelagem orientada por história | Albert Zündorf |
Desenvolvimento orientado a testes (TDD) | Kent Beck |
Timeboxing | |
História do usuário | Alistair Cockburn |
Rastreamento de velocidade |
Integração Continua
Entrega Continua