Métodos Ágeis - Aula 01

Preview:

DESCRIPTION

Material do curso de Pós Graduação do Senac referente a disciplina de Métodos Ágeis.

Citation preview

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.