Modelagem de Sistemas com Métodos Ágeis

Agenda

1

Introdução a metodologias de trabalho tradicional e ágil

2

Histórico de métodos convencionais para modelagem de sistemas

3

Conceitos de Lean Inception e MVP

5

Prototipação

4

Executando o Lean Inception de um produto. 

6

Executando uma iteração com Scrum

Vanilton Pinheiro

Analista de Sistemas

#0 Apresentação
#0 Apresentação

AHA! moment

Vamos construir nossa rede social de conhecimento

#0 Apresentação
#1 Introdução a metodologias de trabalho tradicional e ágil

Antes dos métodos, vamos contextualizar como chegamos a eles...

A inspiração usual para metodologias são disciplinas de engenharia, como engenharia civil ou mecânica. Essas disciplinas colocam muita ênfase no planejamento antes de construir.

#1 Introdução a metodologias de trabalho tradicional e ágil

Vejamos como funciona

Engenheiro desenha o que precisa ser construído/montado

Os desenhos são então entregues a um grupo diferente de pessoas ou outra empresa

Como os desenhos especificam como as coisas devem ser feitas, eles agem como a base para um plano de construção detalhado, logo, permite um cronograma e orçamento razoavelmente previsíveis

Isso permite que a construção seja menos habilidosa intelectualmente, embora muitas vezes sejam muito habilidosas manualmente.

#1 Introdução a metodologias de trabalho tradicional e ágil

Engenharia é a aplicação do conhecimento científico, econômico, social e prático, com o intuito de planejar, desenhar, construir, manter e melhorar estruturas, máquinas, aparelhos, sistemas, materiais e processos.

Software é uma sequência de instruções escritas para serem interpretadas por um computador para executar tarefas específicas.

Engenharia de Software

#1 Introdução a metodologias de trabalho tradicional e ágil

A engenharia de software pode ser vista como um processo, composto de atividades e tarefas, que abrange todos os aspectos da produção de software. Ela auxilia no desenvolvimento/evolução do software, fazendo com que sua construção seja realizada dentro de determinado custo, tempo, escopo e qualidade (da Rocha et al., 2001).​

#1 Introdução a metodologias de trabalho tradicional e ágil

Os processos de construção de software tradicionalmente utilizados, conhecidos como metodologias tradicionais ou "pesadas", são geralmente aplicados em situações onde os requisitos do sistema são estáveis e requisitos futuros são previsíveis

Prevendo o futuro...

#1 Introdução a metodologias de trabalho tradicional e ágil

Tais processos possuem, como uma de suas características, o alto custo para realizar alterações e correções. Nessa forma de desenvolvi-mento, o software é todo planejado e documentado antes de ser implementado (Fowler, 2005).

Quanto mais longe...

#1 Introdução a metodologias de trabalho tradicional e ágil

Por volta dos anos 60 utilizava-se Mainframe e terminais burros, o custo de fazer alterações e correções era muito alto, uma vez que o acesso aos computadores eram limitados e não existiam modernas ferramentas de apoio ao desenvolvimento do software, como depuradores e analisadores de código.

Por que era caro?

#1 Introdução a metodologias de trabalho tradicional e ágil

Cascata

Cascata, sequencial ou linear introduzido por Winston W. Royce em 1970 foi uma das primeiras metodologias criadas para minimizar os problemas que já mencionamos anteriormente. Ela representava um grande avanço no desenvolvimento de software.

#1 Introdução a metodologias de trabalho tradicional e ágil

“Codifica arrebenta” ou "Go Horse": Onde o mal ou nenhum levantamento de requisitos levava a sucessivas correções, debugs e muitas vezes ao fracasso do projeto.  

Antes do cascata

#1 Introdução a metodologias de trabalho tradicional e ágil

Do processo de trabalho

#1 Introdução a metodologias de trabalho tradicional e ágil
#1 Introdução a metodologias de trabalho tradicional e ágil

Do processo de entrega

#1 Introdução a metodologias de trabalho tradicional e ágil
#1 Introdução a metodologias de trabalho tradicional e ágil

Sobre os Riscos

#1 Introdução a metodologias de trabalho tradicional e ágil
#1 Introdução a metodologias de trabalho tradicional e ágil
Aspecto Benefícios Problemas
Estrutura Estrutura clara e linear Rigidez
Gerenciamento Fácil gerenciamento de projetos Atraso na detecção de problemas
Documentação Documentação abrangente Dependência de documentação pesada
Definição Requisitos e objetivos bem definidos desde o início Falta de flexibilidade
Adequação Adequado para projetos simples e de curto prazo Entrega tardia ao cliente
Experiência do usuário (UX) Inicialmente atende a expectativa Quase nunca atende as necessidades exigidas após o uso além de erros serem tardiamente identificados e muitas vezes catastróficos

Resumo do Cascata - Benefícios e Problemas

#1 Introdução a metodologias de trabalho tradicional e ágil

Construção de um avião de papel


1. Em grupo de até 5 pessoas

2. Crie um documento com a análise do avião de papel especificando os detalhes como tamanho dos componentes, autonomia de voo, processo de montagem e restrições

Atividade 1

10 Minutos

#1 Introdução a metodologias de trabalho tradicional e ágil

Construção de um avião de papel

 

1. Com o mesmo grupo da atividade anterior

2. Execute o processo de montagem do avião conforme a especificação que possui em mãos

3. Tome nota das dificuldades encontradas no processo de montagem e entendimento do documento

4. Elabore uma apresentação em slide

Atividade 2

30 Minutos

#1 Introdução a metodologias de trabalho tradicional e ágil

Segundo PRESSMAN (2002), a Prototipagem é uma estratégia utilizada tanto na área da Engenharia de Software (ES) quanto na Interação Humano-Computador (IHC), porém para cada uma há uma finalidade distinta em sua utilização. Na ES, a preocupação está em como o software será desenvolvido do ponto de vista tecnológico, compreendendo os requisitos do sistema e as funcionalidades necessárias. Já na IHC a preocupação está relacionada com o modelo de interação entre o usuário e o sistema, ou seja, quais tarefas serão realizadas por meio do sistema, como elas serão apresentadas, se as opções existentes estão relacionadas com o mapeamento natural do usuário etc.

Modelo de Prototipagem

#1 Introdução a metodologias de trabalho tradicional e ágil
Aspecto Descrição
Origem Surgiu após a metodologia Cascata.
Objetivo Permite a criação de uma aplicação protótipo para validar conceitos e interações.
Formas de Protótipo 1. Protótipo em papel ou no computador para retratar a interação homem-máquina.
2. Implementação de uma funcionalidade específica do escopo do software.
3. Uso de um software já pronto com funcionalidades desejadas que precisam ser incrementadas ou melhoradas.
Aplicação Comum Usado frequentemente para softwares que necessitam de melhorias ou incrementos em funcionalidades já existentes.

Modelo de Prototipagem - Resumo

#1 Introdução a metodologias de trabalho tradicional e ágil
  1. Criado por Barry Boehm em 1988, o Modelo em Espiral é uma melhoria do Modelo Incremental
  2. Processo evolucionário
  3. Mais iterativo e tenta fazer sucessivos refinamentos
  4. Adotou a prototipação
  5. Mapeamento de risco também foi introduzido

 

Modelo de Espiral

#1 Introdução a metodologias de trabalho tradicional e ágil

Modelo de Espiral - Detalhado

#1 Introdução a metodologias de trabalho tradicional e ágil
Aspecto Benefícios Problemas
Estrutura Estrutura iterativa e incremental que permite revisões contínuas. Complexidade na gestão devido à natureza iterativa.
Análise de Riscos Foco na identificação e mitigação de riscos em cada ciclo. Requer tempo e recursos adicionais para realizar análises de risco.
Flexibilidade Alta adaptabilidade a mudanças nos requisitos ao longo do desenvolvimento. Pode ser difícil de implementar e controlar em projetos menores.
Feedback Feedback contínuo do cliente em cada ciclo, garantindo alinhamento com as expectativas do cliente. Necessidade de envolvimento constante do cliente, o que pode ser difícil de gerenciar.
Melhoria Contínua Permite melhorias contínuas e incrementais no produto final. Custo potencialmente elevado devido à natureza repetitiva dos ciclos.
Documentação - Fornece um registro detalhado e estruturado de todas as fases do projeto.
- Facilita a comunicação e o alinhamento entre a equipe e o cliente.
- Pode ser demorado e consumir recursos significativos. - - Pode tornar o processo mais burocrático.

Modelo de Espiral - Detalhado

#1 Introdução a metodologias de trabalho tradicional e ágil

Vejamos contar uma historinha para reforçar o aprendizado

#1 Introdução a metodologias de trabalho tradicional e ágil
#1 Introdução a metodologias de trabalho tradicional e ágil

O Produto

#1 Introdução a metodologias de trabalho tradicional e ágil

Conheçam José Formal e seu time! Eles são adeptos à metodologia Waterfall

#1 Introdução a metodologias de trabalho tradicional e ágil

Planejamento

#1 Introdução a metodologias de trabalho tradicional e ágil

Desenvolvimento (Fase 1)

Para desenvolvê-lo, primeiramente, o time investe alguns meses em ...

Documentação de requisitos

#1 Introdução a metodologias de trabalho tradicional e ágil

Desenvolvimento (Fase 2)

Em seguida, mais algum tempo...

Projetando

#1 Introdução a metodologias de trabalho tradicional e ágil

Desenvolvimento (Fase 3)

Após tudo isso, porém com total segurança no escopo extremamente detalhado e, inclusive, assinado pelo cliente!

Finalmente...

Começaram a produzir

Fonte: Linkedin

#1 Introdução a metodologias de trabalho tradicional e ágil

No dia a dia

Lugar onde o time do José trabalha

#1 Introdução a metodologias de trabalho tradicional e ágil

No dia a dia

Raramente, o time se reúne para discutir problemas e soluções de desenvolvimento...

#1 Introdução a metodologias de trabalho tradicional e ágil

No dia a dia

Todos tem suas metas individuais traçadas e acompanhadas pelo Gerente de Projeto

#1 Introdução a metodologias de trabalho tradicional e ágil

No dia a dia

Outros colegas de empresa constantemente demandam a presença do José...

#1 Introdução a metodologias de trabalho tradicional e ágil

O Gerente do Projeto

É adepto ao comando e controle

coMandar

#1 Introdução a metodologias de trabalho tradicional e ágil

E o cliente? 

Relaxando! Afinal, a fase de requisitos já estava concluída ...

Onde estava?

#1 Introdução a metodologias de trabalho tradicional e ágil

Mas durante o desenvolvimento...

Alguns clientes tiveram novas ideias...

Ótimas ideias!

Mas....

Existe um contrato e não podiam fazer mudanças

#1 Introdução a metodologias de trabalho tradicional e ágil

Logo....

Alguns meses de desenvolvimento depois....

#1 Introdução a metodologias de trabalho tradicional e ágil

Conclusão do 1º Módulo!

  • Realizada a primeira entrega do produto!
  • 1º Módulo completo!
  • Projeto em dia!

Mas ao implantar o produto...

Percebe-se que há necessidade de corrigir e adaptar partes do produto. Senão, não seria implantado...

A realidade do cliente mudou!

#1 Introdução a metodologias de trabalho tradicional e ágil

Se a realidade do cliente mudou?

De quem foi a culpa?

Ele deveria ter comunicado com 6 meses de antecedência sobre essa mudança...

Do cliente! Claro!

#1 Introdução a metodologias de trabalho tradicional e ágil

Mas tá tudo certo!

Nos temos o contrato e os requisitos

#1 Introdução a metodologias de trabalho tradicional e ágil

Solicitação de mudança

  • O nome disso é Alteração de Escopo!
  • O cliente deve pagar pelas alterações nos requisitos ou...
  • arcar com o prejuízo de perder o produto.
  • Tudo previsto em contrato \o/
#1 Introdução a metodologias de trabalho tradicional e ágil
  • Isso que é projeto bem planejado, meu amigo...
  • Está pensando que vai chegar aqui e vai bagunçando tudo...
  • Ah, não.. Aqui tem gerente de projeto...
  • Sucesso a documentação valeu a pena!
#1 Introdução a metodologias de trabalho tradicional e ágil

Solicitação de mudança

As correções precisariam ser feitas... e o cliente arcou com tudo.

Mais algum tempo e dinheiro depois...

#1 Introdução a metodologias de trabalho tradicional e ágil

Finalmente

Somente um ano depois do início do projeto!

#1 Introdução a metodologias de trabalho tradicional e ágil

Opa! Já temos uma entrega!

Sem dúvida, uma Grande entrega!

#1 Introdução a metodologias de trabalho tradicional e ágil
#1 Introdução a metodologias de trabalho tradicional e ágil

Enquanto isso...

O time do José está:

#1 Introdução a metodologias de trabalho tradicional e ágil

Mas, e o cliente?

Bom, o cliente estava...

#1 Introdução a metodologias de trabalho tradicional e ágil

Se já passaram por isso...

#1 Introdução a metodologias de trabalho tradicional e ágil

Resultado do projeto

#1 Introdução a metodologias de trabalho tradicional e ágil

Resultado do projeto

#1 Introdução a metodologias de trabalho tradicional e ágil

E o José?

#1 Introdução a metodologias de trabalho tradicional e ágil

Mas, lições foram aprendidas!

Mas tarde demais....

#1 Introdução a metodologias de trabalho tradicional e ágil

Projeto fracassado!

Não é culpa do time do José.

Eles realmente não conheciam nada melhor..

#1 Introdução a metodologias de trabalho tradicional e ágil

Dinâmica

O que colaborou para que seus projetos tenham sido bem sucedidos?

O que colaborou para que seus projetos tenham sido mal sucedidos?

5 Minutos

#1 Introdução a metodologias de trabalho tradicional e ágil
#1 Introdução a metodologias de trabalho tradicional e ágil

Principais Causas

A comunicação entre as partes envolvidas nos projetos é muito fraca;

#1 Introdução a metodologias de trabalho tradicional e ágil
#1 Introdução a metodologias de trabalho tradicional e ágil
#1 Introdução a metodologias de trabalho tradicional e ágil
#1 Introdução a metodologias de trabalho tradicional e ágil
#1 Introdução a metodologias de trabalho tradicional e ágil

Principais Causas

  • A comunicação entre as partes envolvidas nos projetos é muito fraca;
  • A visibilidade do andamento real nos projetos é muito fraca;
  • A visibilidade dos problemas existentes é muito fraca;
  • Clientes sempre pedem mais do que realmente precisam.

 

#1 Introdução a metodologias de trabalho tradicional e ágil
#1 Introdução a metodologias de trabalho tradicional e ágil

Uso de funcionalidades

#1 Introdução a metodologias de trabalho tradicional e ágil

Principais Causas

  • A comunicação entre as partes envolvidas nos projetos é muito fraca;
  • A visibilidade do andamento real nos projetos é muito fraca;
  • A visibilidade dos problemas existentes é muito fraca;
  • Clientes sempre pedem mais do que realmente precisam;
  • Muita gente envolvida e pouca gente comprometida.

 

#1 Introdução a metodologias de trabalho tradicional e ágil

Envolvimento vs Comprometimento

#1 Introdução a metodologias de trabalho tradicional e ágil

Conheçam a Maria e seu time!

#1 Introdução a metodologias de trabalho tradicional e ágil

No início do projeto...

O cliente em colaboração com o time ...

 

#1 Introdução a metodologias de trabalho tradicional e ágil

No início do projeto...

#1 Introdução a metodologias de trabalho tradicional e ágil

No início do projeto...

#1 Introdução a metodologias de trabalho tradicional e ágil

No início do projeto...

O time da Maria compromete-se com o planejamento que ele mesmo fez...

#1 Introdução a metodologias de trabalho tradicional e ágil

Quando o time começa a produzir?

Imediatamente!

#1 Introdução a metodologias de trabalho tradicional e ágil

A cada dia...

#1 Introdução a metodologias de trabalho tradicional e ágil

O Líder do Projeto

#1 Introdução a metodologias de trabalho tradicional e ágil

No dia a dia...

Este é o lugar onde o time da Maria trabalha

#1 Introdução a metodologias de trabalho tradicional e ágil

E o cliente?

#1 Introdução a metodologias de trabalho tradicional e ágil

A cada duas semanas...

  • O cliente recebe uma entrega com as desejos priorizados!
  • O Time da Maria recebe feedback do Cliente..

 

#1 Introdução a metodologias de trabalho tradicional e ágil

No dia a dia do cliente...

Novas ideias vão surgindo...

 

#1 Introdução a metodologias de trabalho tradicional e ágil

A cada duas semanas...

#1 Introdução a metodologias de trabalho tradicional e ágil

Até o fim do projeto...

#1 Introdução a metodologias de trabalho tradicional e ágil

6 meses depois...

#1 Introdução a metodologias de trabalho tradicional e ágil

Mas, e o cliente?

#1 Introdução a metodologias de trabalho tradicional e ágil

O Time da Maria estava...

#1 Introdução a metodologias de trabalho tradicional e ágil

Resultado do Projeto

#1 Introdução a metodologias de trabalho tradicional e ágil

Ao final do projeto

#1 Introdução a metodologias de trabalho tradicional e ágil

De que time você gostaria de participar?

#1 Introdução a metodologias de trabalho tradicional e ágil
#2 Histórico de métodos convencionais para modelagem de sistemas

Modelagem de Sistema

A modelagem de sistemas é o processo de desenvolvimento de modelos abstratos de um sistema, de maneira que cada modelo apresenta uma visão ou perspectiva diferente do sistema.

#2 Histórico de métodos convencionais para modelagem de sistemas

Modelagem de Sistema

A modelagem ajuda o analista a entender a funcionalidade do sistema e os modelos que serão usados para compreensão e comunicação com o cliente.

#2 Histórico de métodos convencionais para modelagem de sistemas

O que é considerado durante uma modelagem de um sistema ?

  • Requisitos dos usuários;
  • Funcionalidades Desejadas:
  • Limitações Técnicas:
  • Segurança:;
  • Escalabilidade;
  • Manutenabilidade;
  • Que são os Stakeholders do sistema;
  • Personas/KeyUsers
#2 Histórico de métodos convencionais para modelagem de sistemas

Histórico dos Métodos Convencionais

  • Os métodos convencionais de modelagem de sistemas começaram a surgir e se desenvolver principalmente a partir da década de 1980.
  • Podemos dizer que surgimento e a evolução dos métodos convencionais de modelagem de sistemas ocorreram principalmente nesta década.
#2 Histórico de métodos convencionais para modelagem de sistemas

Modelagem Convencional - DFD

Diagramas de Fluxo de Dados (DFD): Representam o fluxo de informações e as transformações aplicadas aos dados à medida que se movem de entrada para saída no sistema.

#2 Histórico de métodos convencionais para modelagem de sistemas

Modelagem Convencional - ER

Modelagem Entidade-Relacionamento (ER): Utilizada para descrever a estrutura de dados de um sistema de banco de dados. Ela define entidades, atributos e relacionamentos.

#2 Histórico de métodos convencionais para modelagem de sistemas

Modelagem Convencional - Diagrama de Estrutura

Mostram a hierarquia e a organização dos componentes de um sistema.

#2 Histórico de métodos convencionais para modelagem de sistemas

Modelagem Convencional - BPM

Representa os processos de negócios de uma organização de forma gráfica.

#2 Histórico de métodos convencionais para modelagem de sistemas

Case

  1. Descrição do Sistema: Como o sistema de Venda atual gerencia os pedidos de compra?

  2. Processos: Quais são os principais processos de negócio que o sistema suporta?

  3. Modelagem: Que tipo de diagramas foram utilizados para modelar o sistema? (Ex.: DFD, ER)

  4. Documentação: A documentação do sistema é clara e detalhada o suficiente para entender a estrutura e o funcionamento do sistema?

  5. Flexibilidade: O sistema permite mudanças rápidas em caso de alterações nas leis sobre venda (ex: taxas)?

  6. Eficiência: O sistema atual é eficiente em termos de tempo de resposta e uso de recursos?

  7. Integração: Como o sistema se integra com outros sistemas, como fornecedores e sistemas de saúde?

  8. Usuário Final: Qual é o nível de satisfação dos usuários finais (vendedores, varejista) com o sistema?

  9. Pontos Fortes: Quais são os pontos fortes do sistema de Venda atual baseado em métodos tradicionais?

 

#2 Histórico de métodos convencionais para modelagem de sistemas

Atividade 3

Descrição do Sistema: 

Processos: 

Modelagem: BPM

Documentação: 

Flexibilidade: 

Eficiência:

Integração:

Usuário Final: 

Pontos Fortes: 

 

Utilizem:

#2 Histórico de métodos convencionais para modelagem de sistemas

Desafios dos Métodos Tradicionais

  1. Os métodos tradicionais de modelagem de sistemas enfrentam vários desafios, principalmente devido à sua natureza rígida e linear. Aqui estão alguns dos principais desafios:

    • Complexidade crescente: Sistemas modernos são cada vez mais complexos, tornando a modelagem tradicional menos adaptável às necessidades dinâmicas.

    • Mudança de requisitos: Projetos reais raramente seguem um fluxo sequencial, e os métodos tradicionais têm dificuldade em acomodar mudanças após o início do projeto.

    • Comunicação efetiva: A comunicação entre stakeholders é crucial, e métodos tradicionais podem falhar em facilitar uma comunicação clara e eficiente.

    • Escolha de técnicas e ferramentas: Determinar as melhores técnicas e ferramentas para cada contexto pode ser desafiador, especialmente quando se lida com sistemas legados ou requisitos específicos de domínio.

 

#2 Histórico de métodos convencionais para modelagem de sistemas

Métodos ágeis - Genesis

No ano de 2001, alguns veteranos de desenvolvimento de software decidiram se reunir em uma estação de esqui.

#2 Histórico de métodos convencionais para modelagem de sistemas

Métodos ágeis - Genesis

#2 Histórico de métodos convencionais para modelagem de sistemas

Métodos ágeis - Genesis

#2 Histórico de métodos convencionais para modelagem de sistemas

Métodos ágeis - Genesis

#2 Histórico de métodos convencionais para modelagem de sistemas

Métodos ágeis - Genesis

#2 Histórico de métodos convencionais para modelagem de sistemas

Dessa forma, passaram a valorizar...

#2 Histórico de métodos convencionais para modelagem de sistemas

Princípios Ágeis

#2 Histórico de métodos convencionais para modelagem de sistemas

Princípios Ágeis

#2 Histórico de métodos convencionais para modelagem de sistemas

Princípios Ágeis

#2 Histórico de métodos convencionais para modelagem de sistemas

Assim se fez o Manifesto Ágil

#2 Histórico de métodos convencionais para modelagem de sistemas

Métodos Tradicionais vs. Métodos Ágeis

#2 Histórico de métodos convencionais para modelagem de sistemas

Métodos Tradicionais vs. Métodos Ágeis

Fonte: Linkedin

#2 Histórico de métodos convencionais para modelagem de sistemas

Iterativo vs. Incremental

Fonte: Linkedin

#2 Histórico de métodos convencionais para modelagem de sistemas
#2 Histórico de métodos convencionais para modelagem de sistemas
Aspecto XP (Extreme Programming) Scrum Kanban
Origem Criado por Kent Beck na década de 1990. Desenvolvido por Ken Schwaber e Jeff Sutherland em 1995. Originado no sistema de produção da Toyota nos anos 1940-50.
Foco Melhorar a qualidade do software e a capacidade de resposta a mudanças através de práticas técnicas rigorosas. Gerenciamento de projetos e processos de desenvolvimento de forma iterativa e incremental. Melhoria contínua e visualização do fluxo de trabalho, sem papéis fixos ou sprints.
Ciclos de Trabalho Curto, com iterações de 1 a 2 semanas. Sprints de 2 a 4 semanas. Fluxo contínuo, sem ciclos de tempo definidos.
Práticas Chave - Programação em par
- Testes automatizados
- Refatoração contínua
- Integração contínua
- Papéis bem definidos: Product Owner, Scrum Master, e Time de Desenvolvimento
- Reuniões diárias (Daily Standup)
- Revisões de Sprint e Retrospectivas
- Limite de WIP (Work in Progress)
- Quadro Kanban para visualização do fluxo de trabalho
- Melhoria contínua através da análise do fluxo
Flexibilidade Alta, com adaptação contínua às mudanças de requisitos. Moderada, com adaptação ao final de cada sprint. Alta, com ajuste contínuo sem necessidade de sprints.
Documentação Leve, com foco em código e comunicação direta. Moderada, com foco na documentação necessária para o backlog e os sprints. Mínima, com ênfase na visualização do fluxo e no controle de tarefas.
Medição de Progresso Baseada na entrega de funcionalidades funcionando (software funcionando). Progresso medido por histórias de usuários completadas durante o sprint. Medido pelo tempo de ciclo (cycle time) e fluxo contínuo de tarefas.
Escalabilidade Pode ser difícil escalar para grandes equipes sem ajustes. Facilmente escalável com a criação de múltiplos times Scrum. Escalável através da aplicação de Kanban em níveis diferentes do processo.
Adoção Comum Projetos que exigem alta qualidade técnica e entregas frequentes de funcionalidades. Projetos com foco em gerenciamento iterativo, onde é importante ter papéis e responsabilidades bem definidos. Ambientes onde a visualização do fluxo de trabalho e a redução de gargalos são essenciais.
Benefícios - Alta qualidade de código
- Resposta rápida a mudanças
- Colaboração intensa
- Estrutura clara e papéis bem definidos
- Foco em entregas regulares
- Adaptável a mudanças após cada sprint
- Flexibilidade e simplicidade
- Foco na melhoria contínua
- Redução de desperdícios e gargalos
Desafios - Requer alta disciplina na aplicação das práticas técnicas
- Pode ser difícil para grandes equipes
- Pode ser burocrático em ambientes muito dinâmicos
- Depende da colaboração constante do time
- Requer uma cultura de melhoria contínua <br> - Limitação de WIP pode ser desafiadora em ambientes voláteis

Comparação entre Métodos Ágeis: XP, Scrum e Kanban

#2 Histórico de métodos convencionais para modelagem de sistemas

Métodos Ágeis % Adoção

#2 Histórico de métodos convencionais para modelagem de sistemas

Métodos Ágeis

#2 Histórico de métodos convencionais para modelagem de sistemas

Métodos Ágeis

#3 Conceitos de Lean Inception e MVP

Princípios do Lean

  1. Valor: Identifique o que é valor para o cliente.
    • Ex. Um aplicativo de entrega de comida, o valor pode ser a rapidez da entrega.
  2. Fluxo de Valor: Mapeie o fluxo de valor e elimine o que não agrega valor.
    • Ex. Como eliminar etapas desnecessárias
  3. Fluxo Contínuo: Garanta que o produto flua sem interrupções.
    • Ex. desenvolvimento para operações em um pipeline de CI/CD.
  4. Produção Puxada: Produza apenas o que é necessário, quando é necessário.
  5. Perfeição: Busque a melhoria contínua.
    • Ex. Feedbacks de clientes para aprimorar um produto.

 

Origens do Lean Manufactoring

  • Histórico: Surgimento no Sistema Toyota de Produção após a Segunda Guerra Mundial para melhorar a eficiência e qualidade.
  • Papel de Taiichi Ohno: Desenvolvimento dos princípios do Lean.
    • Ex. Reduzir desperdício e melhorar processos

  • Influências: Filosofias de qualidade e eficiência, como o TQM (Total Quality Management) e o Six Sigma.

 

#3 Conceitos de Lean Inception e MVP

Lean no Desenvolvimento de Software

  • Adaptação dos Princípios: Aplicação do Lean ao contexto de software.

    • Ex. Reuniões desnecessárias.

  • Eliminação de Desperdícios: Identificação e remoção de atividades que não agregam valor.

    • Ex. Documentação Excessiva.

  • Melhoria Contínua: Implementação de feedbacks rápidos e adaptação.

    • Ex. sprints de duas semanas para avaliar progresso.

 

#3 Conceitos de Lean Inception e MVP

Benefícios do Lean para Modelagem de Sistemas

  • Redução de Complexidade: Simplificação de processos.

    • Ex. Usar UML para modelar sistemas de forma clara.

  • Aumento de Eficiência: Melhor uso dos recursos.

    • Ex. reutilização de código para evitar retrabalho.

  • Foco no Cliente: Entrega de valor de acordo com as necessidades do cliente.

    • Ex. personalizar funcionalidades com base no feedback do usuário.

 

#3 Conceitos de Lean Inception e MVP

O que é Lean Inception?

  • Uma técnica colaborativa para definir o Produto Mínimo Viável (MVP) de um projeto.

  • Foca em entregar valor ao cliente de forma rápida e eficiente.

 

#3 Conceitos de Lean Inception e MVP

O que é MVP?

Eric Ries em seu livro The Lean Startup (2011), define um MVP como uma versão de um novo produto, que permite que times coletem a maior quantidade de aprendizado validado sobre seus consumidores, empregando o mínimo esforço.

 

Hipóteses de solução!

Problema

#3 Conceitos de Lean Inception e MVP

Objetivos da Lean Inception

  • Alinhamento de Equipe e Visão
  • Criar um entendimento comum sobre o produto e suas funcionalidades.
  • Definir claramente o MVP para iniciar o desenvolvimento.

 

#3 Conceitos de Lean Inception e MVP

Etapas de um Lean Inception

  1. Kickoff: Overview da iniciativa a ser trabalhada
  2. Visão do Produto: O propósito e os objetivos do produto.
  3. É - não é, Faz - Não Faz: Define os limites de escopo ou restrições. 
  4. Personas: Os usuários e clientes potenciais do produto.
  5. Jornadas do usuário: Passos do usuário para alcançar um objetivo,  podem representar diferentes contatos com o produto.
  6. Funcionalidades: As características e funcionalidades que compõem o MVP.
  7. Revisão técnica, negócio e UX: Captar a confiança da equipe frente as funcionalidades
  8. Sequenciador: Validar os incrementos do produto e pontos de MVP.
  9. Canvas MVP: A ferramenta visual para mapear o MVP e suas funcionalidades.

 

#3 Conceitos de Lean Inception e MVP

Facilitando uma Lean Inception

#3 Conceitos de Lean Inception e MVP

Facilitando uma Lean Inception

#3 Conceitos de Lean Inception e MVP

Facilitando uma Lean Inception

#3 Conceitos de Lean Inception e MVP

Vamos a mão na massa!

#4 Executando o Lean Inception de um produto. 

Mas...

#4 Executando o Lean Inception de um produto. 

Problema 1 - Experiência de Turismo Segura e Enriquecedora para um Extraterrestre na Terra

Um extraterrestre, curioso sobre a cultura, história e belezas naturais da Terra, deseja realizar uma viagem turística ao planeta. No entanto, sua biologia, percepção sensorial, e compreensão cultural são muito diferentes das dos humanos. Ele quer aproveitar ao máximo sua visita, mas precisa de soluções que lhe permitam explorar o planeta com segurança e entender as experiências de maneira significativa.

#4 Executando o Lean Inception de um produto. 

Problema 2 - Transformação de Ideias e Sonhos em Ações Concretas para Pessoas com Dificuldade de Organização

Muitas pessoas têm grandes ideias ou sonhos que gostariam de realizar, como iniciar um negócio, escrever um livro, ou mudar de carreira. No entanto, elas frequentemente enfrentam dificuldades em organizar seus pensamentos, planejar os próximos passos, e manter a motivação ao longo do processo. A falta de clareza, sobrecarga mental e falta de ferramentas práticas para estruturar seus objetivos transformam esses sonhos em frustração.

#4 Executando o Lean Inception de um produto. 

Problema 3 - Gestão Eficiente de Inventário para Revendedoras Autônomas com Produtos de Diversas Empresas

Revendedores(as) autônomas muitas vezes trabalham com produtos de várias empresas ao mesmo tempo, o que pode resultar em uma desorganização do estoque. Elas precisam acompanhar os produtos disponíveis, os itens vendidos, e os pedidos pendentes, mas geralmente não possuem uma ferramenta eficiente para gerenciar tudo isso. Além disso, o orçamento limitado dificulta a aquisição de sistemas de gestão sofisticados, deixando-as vulneráveis a erros, perdas de vendas e dificuldades na reposição de estoque.

#4 Executando o Lean Inception de um produto. 

Agenda da Lean Inception

#4 Executando o Lean Inception de um produto. 
#4 Executando o Lean Inception de um produto. 

 

  1. Criem grupos de 5 até 10 pessoas para as atividades da Lean Inception
  2. Alguém da equipe realiza o Kickoff do problema (próprio ou um dos sugeridos)
  3. Utilizando o Pitch, ou visão do produto, construir conforme modelo ao lado.
  4. Venda o produto apresentando o Modelo Pitch para a turma

Atividade 4 - Identificando

problema

10 Minutos

#4 Executando o Lean Inception de um produto. 

Agenda da Lean Inception

Essa atividade busca classificações sobre o produto seguindo as quatro diretrizes, indagando, especificamente, cada aspecto positivo e negativo sobre o produto ser ou fazer algo.

#4 Executando o Lean Inception de um produto. 
  1. Todos os integrantes da equipe fazem um levantamento dos itens
    • É, FAZ
    • Não É, Não Faz
  2. Após a escrita agrupem os itens iguais categorizando ou por sua similaridade

Atividade 5 - É - Não é, Faz - Não Fa 

30 Minutos

Características ou comportamentos que definem o objeto em questão

Características ou comportamentos que não se aplicam ao objeto.

Ações ou funcionalidades que o objeto realiza.

Ações ou funcionalidades que o objeto não realiza.

#4 Executando o Lean Inception de um produto. 

Agenda da Lean Inception

Esta atividade busca o objetivo para o negócio, e os vários pontos de vista devem ser discutidos para chegar a um consenso sobre o que é realmente importante. Esta atividade  também auxilia no levantamento e esclarecimento dos objetivos.

#4 Executando o Lean Inception de um produto. 

Se você tiver que resumir o produto em três objetivos para o negócio, quais seriam eles?

  1. Cada pessoa da equipe que escreve, individualmente, três respostas para a pergunta acima.
  2. Os participantes compartilhem o que escreveram, agrupando-os por similaridade nos 'clusters'.
  3. Defina um título para cada um dos 'clusters'.

Atividade 6 - Objetivos do Produto

30 Minutos

Cluster

#4 Executando o Lean Inception de um produto. 

Agenda da Lean Inception

Uma persona cria uma representação realista de usuários, auxiliando o time a descrever funcionalidades do ponto de vista de quem vai interagir com o produto final.

#4 Executando o Lean Inception de um produto. 
  1. Dividam a equipe em 3 grupos
  2. Cada grupo cria 1 persona seguindo o modelo
  3. Cada grupo apresenta a sua persona para os demais integrantes do time

Atividade 7 - Personas

30 Minutos

#4 Executando o Lean Inception de um produto. 

Personas - Modelo

#4 Executando o Lean Inception de um produto. 

Agenda da Lean Inception

A jornada descreve o percurso de um usuário por uma sequência de passos para alcançar um objetivo. Alguns destes passos representam diferentes pontos de contato com o produto, caracterizando a interação da pessoa com ele.

#4 Executando o Lean Inception de um produto. 
  1. Dividam a equipe em 3 grupos
  2. Cada grupo cria 1 jornada seguindo o modelo
  3. Cada grupo apresenta a sua jornada para os demais integrantes do time

Atividade 8 - Jornadas

Qual objetivo a persona quer alcançar? Descreva passo a passo da jornada até a persona alcançá-lo.

30 Minutos

#4 Executando o Lean Inception de um produto. 
#4 Executando o Lean Inception de um produto. 

Agenda da Lean Inception

Uma funcionalidade representa uma ação ou interação de um usuário com o produto, por exemplo: imprimir nota fiscal, consultar extrato detalhado e convidar amigos do Facebook. A descrição de uma funcionalidade deve ser o mais simples possível, visando atender um objetivo de negócio, uma necessidade da persona, e/ou contemplando um passo da jornada.

#4 Executando o Lean Inception de um produto. 
  1. Leia uma jornada e observando alguma funcionalidade que pode colaborar, insira no papel um postit
  2. Repita isso para as demais jornadas

Atividade 9 - Funcionalidades

O usuário está tentando fazer uma coisa, então o produto deve ter uma funcionalidade para isso. Que funcionalidade é essa?

30 Minutos

#4 Executando o Lean Inception de um produto. 

Agenda da Lean Inception

Esta revisão tem o objetivo de discutir como a equipe se sente em relação ao entendimento técnico, o de negócio e o de UX para cada funcionalidade.

#4 Executando o Lean Inception de um produto. 
  1. Leia uma funcionalidade por vez passando no gráfico e tabela
  2. Defina a cor de acordo com o nível de confiança e faça as marcações (em uma escala de 1 a 3) de valor de negócio, esforço e valor de UX -- $, E e ♥.

Atividade 9 - Revisão

A cor e a marcação vão ajudar a equipe nas atividades subsequentes para priorizar, estimar e planejar.

30 Minutos

#4 Executando o Lean Inception de um produto. 

Agenda da Lean Inception

O Sequenciador de funcionalidades auxilia na organização e visualização das funcionalidades e da sequência de validação incremental do produto.

#4 Executando o Lean Inception de um produto. 

Sequenciador - Regras

#4 Executando o Lean Inception de um produto. 
  1. Selecione uma primeira funcionalidade.
  2. Pegue mais cartões, encaixando-os no sequenciador. Respeite as regras.
  3. Identifique o MVP e os incrementos do produto.

Atividade 10 - Sequenciador

Defina o MVP e seus incrementos subsequentes.

30 Minutos

#4 Executando o Lean Inception de um produto. 

Agenda da Lean Inception

O Canvas MVP é um quadro visual que auxilia a equipe a alinhar e definir a estratégia do MVP, a versão mais simples do produto que pode ser disponibilizada para o negócio (produto mínimo) e que possa ser efetivamente utilizado e validado pelo usuário final (produto viável).

#4 Executando o Lean Inception de um produto. 
#4 Executando o Lean Inception de um produto. 

Exemplo de Canvas MVP

#4 Executando o Lean Inception de um produto. 
  1. Selecione uma primeira funcionalidade.
  2. Pegue mais cartões, encaixando-os no sequenciador. Respeite as regras.
  3. Identifique o MVP e os incrementos do produto.
  4. Apresentar o MVP 1

Atividade 11 - Canvas MVP

Defina o MVP e seus incrementos subsequentes.

30 Minutos

#5 Prototipação 

Protipação

#5 Prototipação 

Um protótipo é uma amostra de início ou modelo construído para testar um conceito, produto ou processo, algo para se replicar ou aprender com.

O que é?

#5 Prototipação 

Classificação

Baixa fidelidade

  • Baixo nível de detalhamento.
  • Preferencialmente feito com papel e caneta.
  • Representa visualmente as funcionalidades.
  • Baixo custo.
  • Rapidez na prototipação.
  • Descartável.
#5 Prototipação 

Classificação

Média fidelidade (wireframe)

  • Prioriza a hierarquia das informações e o fluxo de navegação.
  • Possui simulações simples de uso (interação com botões, por exemplo).
  • Pode ser feito com o auxílio de um computador, utilizando ferramentas 
#5 Prototipação 

Classificação

Alta fidelidade

  • Foco em aspectos visuais e funcionais da interface.
  • Permite navegação e interação similares à versão final do produto.
  • São desenvolvidos com o auxílio de softwares para criação de interfaces
#5 Prototipação 

Classificação

Os principais elementos de UI incluem uma variedade de componentes visuais e interativos que permitem aos usuários interagir com um aplicativo, site ou sistema de forma eficaz e intuitiva.

#5 Prototipação 

Ferramenta

Balsamiq Mockups

 

  1. Crie uma conta em: https://balsamiq.com/​
  2. Vamos fazer um protótipo de exemplo.
#6 Iteração com Scrum 

Iteração com Scrum

Visibilidade do Fluxo

#6 Iteração com Scrum 

Antes de tudo façam o cadastro em Kanbanx que utilizaremos na próxima dinâmica.

Fluxo do Scrum

#6 Iteração com Scrum 
#6 Iteração com Scrum 

Fluxo do Scrum

#6 Iteração com Scrum 
#6 Iteração com Scrum 

Fluxo do Scrum

#6 Iteração com Scrum 
#6 Iteração com Scrum 

Fluxo do Scrum

#6 Iteração com Scrum 
#6 Iteração com Scrum 

Fluxo do Scrum

#6 Iteração com Scrum 
#6 Iteração com Scrum 

Fluxo do Scrum

#6 Iteração com Scrum 

Quem é o time no Fluxo do Scrum

#6 Iteração com Scrum 

Trabalhando com Backlog

#6 Iteração com Scrum 

Trabalhando com Backlog - Épico

#6 Iteração com Scrum 

Trabalhando com Backlog - Funcionalidade

#6 Iteração com Scrum 

Trabalhando com Backlog - História

#6 Iteração com Scrum 

Narrativa não real contada por uma persona do sistema definindo:

diarista

divulgar os dias de serviço que estou disponível

clientes me localizarem por meio de filtros por período

Trabalhando com Backlog - Critério de aceite

#6 Iteração com Scrum 

o que precisa ser feito para atender ao usuário “são” os critérios de aceite

  • Clientes de diaristas possam filtrar períodos que tenham diaristas disponíveis
  • Permitir que o diarista preencha períodos de dias disponíveis;
  • Não permitir que os períodos sejam lançados para datas passadas
  • Não podem ser inseridos períodos de diárias disponíveis acima de 90 dias do dia atual.
    • Ex: 01/08/2024 - 01/12/2024
  1. Escolha uma funcionalidade para realizar a prototipação (Planning)
  2. Inclua as funcionalidades no board do kanbanx.com
    • Descreva as histórias de usuário
    • Inclua as tarefas em cada card de funcionalidade
  3. A cada 15 minutos pausa para reunião diária (2 minutos)
  4. Utilize Balsamiq para criar o protótipo
  5. Gere um PDF navegável para solução prototipada. (Entregável)
  6. Apresente para o cliente/professor (5 minutos) 
  7. Faça uma rodada de Retrospectiva

Atividade 12 - MVP 1 ShowCase - Com Scrum

90 Minutos

#6 Iteração com Scrum 

Referências

ROCHA, A. R. C.; MALDONADO, J. C.; WEBER, K. C. Qualidade de Software. Teoria e Prática. 1 ed. Prentice Hall, 2001.

https://www.teses.usp.br/teses/disponiveis/55/55134/tde-07052008-170413/publico/dissertacao_bb_digital.pdf

https://martinfowler.com/articles/newMethodology.html#FromNothingToMonumentalToAgile

https://www.semeru.com.br/blog/as-metodologias-tradicionais-de-desenvolvimento-de-software/

PRESSMAN, Roger S. Engenharia de Software : 6 ed. São Paulo: McGraw Hill/Nacional, 2006.

 

Referências

#1 Módulo

Tópico

1.

Sub Tópico

  • Descrição

Sub Tópico

  • Descrição

2.

Sub Tópico

  • Descrição

3.

Sub Tópico

  • Descrição

4.

Modelagem de Sistemas com Métodos Ágeis

By Vanilton Pinheiro

Modelagem de Sistemas com Métodos Ágeis

Breve histórico de métodos de desenvolvimento tradicionais; Um pouco sobre UML; Conceitos básicos de Lean Inception; Conceitos básicos de MVP; Conceitos sobre backlog; Visão de produto; É, não é, faz, não faz; Personas; Jornada de usuários; Visão técnica do negócio; Brainstorming de funcionalidades; Priorização das funcionalidades; Prototipação; Métricas ágeis;

  • 194