A metodologia de desenvolvimento de software descrita enfatiza o desenvolvimento iterativo e incremental com foco na entrega rápida de valor ao usuário final, utilizando princípios ágeis como envolvimento do usuário, entregas frequentes e feedback constante.
3. Focado no desenvolvimento rápido da aplicação;
Desenvolvimento iterativo e incremental que enfatiza o
envolvimento constante do usuário;
Objetivo é entregar softwares no tempo certo e com custos
estimados, através de controles e ajustes nos requisitos ao
longo do desenvolvimento da aplicação;
Usar métodos ágeis na condução desses projetos;
Metodologia de desenvolvimento de Software
4. Envolvimento: o envolvimento do usuário é o ponto principal
para a eficiência e eficácia do projeto. Onde usuários e
desenvolvedores discutem as necessidades e soluções com
objetivos de tomar decisões com mais assertividade;
Autonomia: o time deve estar empenhado em tomar decisões
que sejam importantes para o progresso do projeto sem que
necessitem de aprovação dos superiores;
Princípios utilizados no desenvolvimento de Software
5. Entregas: O foco na entrega frequente de produtos, assumindo
que entregar algo bom, logo é melhor que entregar algo
perfeito somente no fim. Iniciando a entrega do produto desde
o inicio do projeto, o produto pode ser testado e revisado e a
evidência de teste e revisão da documentação podem ser
utilizadas na próxima iteração ou fase;
Eficácia: O critério principal para ser considerado entregável é
entregar um sistema que demonstre atender as necessidades e
requisitos atuais do negócio ;
Princípios utilizados no desenvolvimento de Software
6. Feedback: O desenvolvimento é iterativo e incremental
controlado por feedbacks de usuários, a fim de tornar a solução
eficaz ao negócio;
Reversibilidade: Todas as alterações feitas no desenvolvimento
são reversíveis;
Comunicação: É necessário excelente comunicação e
cooperação de todos os envolvidos para obter maior eficácia e
eficiência no projeto;
Princípios utilizados no desenvolvimento de Software
7. Timeboxing: Realizar o desenvolvimento no prazo estimado, além de manter o
custo e qualidade desejados. O principal objetivo é dividir o projetos em partes
ou módulos, cada um com seu orçamento e prazo estimado. Para cada parte do
projeto um numero x de requisitos é selecionado e priorizados de acordo com a
técnica MOSCOW, devido ao custo e tempo serem fixos, a variável se torna os
requisitos, por isso conforme o tempo vai se esgotando os requisitos de baixa
prioridades poderão ser entregues na próxima iteração, seguindo o principio de
Pareto onde 80% das funcionalidades do sistema vem de 20% dos requisitos mais
importantes implementados;
Principais técnicas utilizadas
8. Priorização de Entregas
MoSCoW
Must Have (DeveTer) – imprescindível.
Should Have (Deveria Ter)– importante.
Could Have (Poderia Ter) – bom ter.
Won’t Have for Now (Não Terá por
Enquanto) – não geram valor de negócios.
9. Prototipagem: Criação de protótipos em estágios iniciais do projeto, permite
descobrir falhas rapidamente na aplicação e validar a experiência do usuário
sendo um test-drive, o que vem a ser uma ótima maneira de envolver o usuário,
sendo um fator chave na metodologia de desenvolvimento;
Gerenciamento de configuração: Uma vez que existe mais de uma coisa para
controlar ao mesmo tempo durante o processo de desenvolvimento, os produtos
são entregues frequentemente num tempo muito rápido, então os produtos
devem ser bem controlados na suas versões, no mercado existe ferramentas
aplicadas para esse controle;
Principais técnicas utilizadas
10. Desenvolvimento orientado a testes: é um método que começa com um
desenvolvedor criando um teste para um requisito que ele precisa criar, o
desenvolvedor então executa o teste que deve falhar no primeiro
momento porque o requisito ainda não existe. O desenvolvedor realiza o
desenvolvimento até que o teste seja concluído com sucesso e então
refatora o código, assim saberemos que o requisito funciona
corretamente;
Integração contínua: É uma abordagem que mantém o código de todos
integrados e constrói estruturas de implementação juntamente com o
resto da aplicação, ajuda a garantir a qualidade evitando conflitos na base
regular, a integração continua é essencial para testes automatizados;
Principais técnicas utilizadas
11. Refatoração: É o processo de modificar um sistema de software para
melhorar a estrutura interna do código sem alterar seu comportamento
externo.
O uso dessa técnica aprimora a concepção de um software e evita a
deterioração tão comum durante o ciclo de vida de um código, que
geralmente é causada por mudanças com objetivos de curto prazo ou
alterações sem a clara compreensão do sistema. A refatoração ajuda a
melhorar no entendimento do código o que facilita a manutenção e evita
a inclusão de defeitos, é fundamental que o software possua testes
automatizados para realizar a refatoração, assim será possível garantir que
o comportamento externo não foi alterado;
Principais técnicas utilizadas
12. Bus factor ( Fator ônibus): Você perde um dos seus membros do time do projeto
por qualquer motivo, você não é capaz de continuar o projeto, porque ninguém
mais tem conhecimento e informações chave do projeto.
Bus factor é um fator de perda de numero mínimo de desenvolvedores que você
pode perder, antes de perder a capacidade de continuar o projeto mesmo
adicionando novos devs.
Maximizar a transparência, melhorar a comunicação com reuniões diárias,
documentar processos e requisitos, ter sistemas de gerenciamento de
configuração, praticar a copropriedade do código, ter planos de férias e sucessão
são muito úteis para o fluxo natural do projeto, porque os membros podem sair do
projeto a qualquer momento;
Principais técnicas utilizadas