Post on 27-Jun-2015
description
MÉTODOS ÁGEISAula 01
Adriano Bertucci
Email: adriano@bertucci.com.brTwitter: @adrianobertucciSite: www.adrianobertucci.com
TÍPICO PROJETO DE SOFTWARE
“Nossa equipe não produz o quanto gostaríamos”
“Nosso cronograma está atrasado”
“Nossa equipe de desenvolvimento não se comunica”
“Precisamos nos adequar às novas legislações”
“Não conseguimos garantir a qualidade das soluções”
DESAFIOS - PROBLEMAS COMUNS
Requisitos de negócios não são gerenciados de forma efetiva
Ferramentas e dados dispersos
Testes não alinhados aos objetivos de negócios
Falta de orientações e processos definidos
Problemas de comunicação entre os membros da equipe
Visibilidade limitada do status do projeto para tomada de decisões
COMO ESTA A SAÚDE DO SEU PROJETO?
Cronograma e controle de atividades?
Controle de defeitos?
Quais cenários foram testados com sucesso?
Cobertura do código testado?
Rotatividade do código – estabilização?
Requisições de mudanças gerenciadas adequadamente?
Controle sobre que fontes foram alterados por causa de determinado requisito / correção?
SOLUÇÃO? ALM!
ALM (Application Lifecycle Management, Gerenciamento do Ciclo de Vida de Aplicações):É a coordenação das atividades do ciclo de vida de desenvolvimento, incluindo: Requisitos Modelagem Desenvolvimento Testes Manutenção Operações
PILARES DO ALM - PESSOAS
PILARES DO ALM - PROCESSO
PILARES DO ALM - FERRAMENTAS
FASES DO ALM - DEFINIÇÃO
FASES DO ALM - CONSTRUÇÃO
FASES DO ALM - CONSTRUÇÃO
FASES DO ALM - OPERAÇÃO
FASES DO ALM - OPERAÇÃO
ITIL (Information Technology Infrastructure Library) Gerência de Capacidades Gerência de Incidentes Gerência Financeira Gerência de Configuração Gerência de serviços de atendimento Gerência de níveis de serviço Gerência de problemas Gerência de distribuição Gerência de Mudanças
FASES DO ALM - FIM
DISCIPLINAS PRESENTES NO ALM
Gerenciamento de Requisitos (Requeriments Management)
DISCIPLINAS PRESENTES NO ALM
Gerenciamento da Configuração do Software (Software configuration Management)
DISCIPLINAS PRESENTES NO ALM
Montagem e Integração (Build and Integration)
DISCIPLINAS PRESENTES NO ALM
Engenharia de Distribuição (Release Engineering)
DISCIPLINAS PRESENTES NO ALM
Gerenciamento de Defeitos (Defect Management)
DISCIPLINAS PRESENTES NO ALM
Teste Unitário, Integrado e de Regressão (Unit Test, Integrated and Regression)
DISCIPLINAS PRESENTES NO ALM
Análise de Código (Code Analysis)
DISCIPLINAS PRESENTES NO ALM
Teste de Sistema (System Test)
DISCIPLINAS PRESENTES NO ALM
Relatórios de Acompanhamento (Status Reports)
ADOÇÃO DO ALM
quais os envolvidos na construção da aplicação;
as expectativas de cada um;
quais as ferramentas utilizam;
como é gasto do tempo deles;
onde estão localizados fisicamente;
quais modelos/processos utilizam no dia-a-dia;
quais os relatórios que utilizam para monitorar o projeto;
qual o modelo de migração da aplicação do ambiente de desenvolvimento para o ambiente de produção;
como são estruturados os projetos dentro da ferramenta de controle de código-fonte;
quais as estratégias de montagem da aplicação;
quais os tipos de testes empregados na construção da aplicação;
como compartilham boas práticas de construção;
ENTÃO ESTÁ TUDO RESOLVIDO?
CAMINHO PARA O SUCESSO…
Ideia
Solução
Novos requisitos que surgem
Legado
Bugs não reproduzíveis
Baixa usabilidade
Preocupações com a qualidade
Mudanças na arquitetura
Custos de HW
Novos integrantes no time
Builds quebradas “Sexta-feira” de relatórios
Requisitos que mudam a todo instante
Diversidade tecnológica
Estimativas de prazo e custo mal feitas
Falta de documentação
Qualidade do Build
O CAMINHO DA ENG. DE SOFTWARE
Não é parecida com Engenharia Civil! Após construir uma casa não é fácil mudar uma parede de lugar!!! Mas em software, “mudar uma parede de lugar” é sim relativamente
fácil...
Tampouco é muito parecida com outras engenharias!!!
Software é flexível!!!
ENGENHARIA DE SOFTWARE TRADICIONAL
Desenvolvimento ad-hoc de software em geral produz resultados muito ruins; Especialmente em sistemas grandes
Desejo de criar uma engenharia para que se tenha controle sobre desenvolvimento de software;
Engenharias tradicionais colocam grande ênfase em projetar antes de construir;
VISÃO TRADICIONAL DA EVOLUÇÃO DO SOFTWARE
custo
momento em quefuncionalidade éadicionada
QUEREMOS PODER ALTERAR O SOFTWARE
No inicio do projeto, normalmente não se sabe precisamente o que se quer
Software evolui para atender ao negócio Software nunca fica “pronto”
Obviamente isso só é possível porque software é uma entidade abstrata
PORTANTO…
Precisamos parar de tentar evitar mudanças Mudanças são um aspecto intrínseco da vida do software
Precisamos de uma metodologia de desenvolvimento que nos permita alterar constantemente o código sem comprometer sua qualidade
O QUE QUEREMOS É…
custo
momento em quefuncionalidade éadicionada
O QUE FAZER?
RECADO IMPORTANTE!
“Se não pode ser medido, não pode ser gerenciado, e se não pode ser gerenciado, para que investir?”
SCRUMCMMIMSFPMI
XP…
Colaboração
Qualidade
Previsibilidade
Controle
FERRAMENTAS
Team ExplorerEverywhere
E X T E N S I B L E A P I s
SharePoint
Project Server
System Center
TEAMFOUNDATIO
NSERVER SQL Server
Office
Web Access
Windows Azure
Version Control
Build Automation
CustomizableProcesses
RequirementsManagement
Test CaseManagement
ProjectManagement
End-to-EndTraceability
Lab Management
Analytics
TRANSFORMANDO CONCEITOS EM PRÁTICA…
PROCESSO DE TRABALHO
Analista de
NegócioGerente
de Projeto
Time de Desenvolviment
o
Test
Operações
RequisiçãoDe Mudança
Cenários
Requerimentos de Negócio
Bugs
Tarefas
Erros emProdução
Itens de trabalho são a unidade de comunicação entre as pessoas do time
Builds
Implantação
ITENS DE TRABALHO
Descrição Estado Atual
Atribuição de tarefasAnexos
Links para outros Itens de Trabalho Histórico totalmente auditadoPersonalizável
Encerrado
Ativo
Solucionado
Encerrado
Ativo
Solucionado
Proposta
Caso de Uso Tarefas Bugs
“Os itens de trabalho são unidades de comunicação que fazem parte do processo de desenvolvimento”
MODELOS - PLATAFORMA VISUAL STUDIO
MSF for Agile - Visual Studio ALM
MODELOS - PLATAFORMA VISUAL STUDIO
MSF for CMMI -Visual Studio ALM
MODELOS - PLATAFORMA VISUAL STUDIO
Visual Studio Scrum 2.0 -Visual Studio ALM
ALM – CÍCLO CONTINUO DE ENTREGAS
REQUIREMENTS
PRODUCTBACKLOG
OPSBACKLOG
MonitorSprint
WORKING SOFTWARE
PRÓXIMO ENCONTRO…
Agilidade conceitos
Scrum
PRATICANDO…LOTES DE PRODUÇÃO X PRODUTIVIDADE
Analista Projetista Programador Testador Cliente
Æ ŒRef: Luiz Cláudio Parzianello
PRATICANDO…LOTES DE PRODUÇÃO X PRODUTIVIDADE
Æ…
Æ Œ Æ Æ…
Æ Œ™ Æ Œ Æ Œ…
Æ Œ™ Æ Œ™…
Ref: Luiz Cláudio Parzianello
Æ Æ Œ Æ Œ™… … … …
Pequenos Lotes
Grandes Lotes
PRATICANDO…LOTES DE PRODUÇÃO X PRODUTIVIDADE Qual é o arranjo logístico mais rápido?
Qual equipe apresentou o maior esforço por projeto?
Quais as vantagens de cada abordagem?
Quais as desvantagens de cada abordagem?
Qual a justificativa para manter os grandes lotes?
ARTIGOS…
Disserte sobre ALM demonstrando a visão do grupo sobre o assunto e os principais motivos para se adotar.
O que é agilidade para grupo? Cite os ganhos do uso de um processo ágil no desenvolvimento de software.