Sem resumo de edição
Sem resumo de edição
Linha 26: Linha 26:
* Clientes x Desenvolvedores
* Clientes x Desenvolvedores
* O que é Scrum?
* O que é Scrum?
<br>
= Abordagem Interativa e Incremental =
<br>
* Segundo Schauber ??:
** O Scrum é baseado na teoria de controle dos processos empíricos emprega uma Abordagem Interativa e Incremental para otimizar a previsibilidade e reduzir riscos:
* Devido à complexidade, 3 pilares sustentam essa teoria:
** Tamanho
** Mudança de requisitos
** Urgência e necessidade de demonstrar mais valor rapidamente
* É inconcebível, desenvolver sistemas usando o modelo cascata que implementa todo o software de uma única vez
* Abordagem incremental
** Permite desenvolver o software em pedaços, em partes
** Sozinhas não faz muito sentido mas através dela temos noção de como ficará o resto
* Abordagem iterativa
** Começa com um esboço, um rabisco e aos poucos adiciona-se novas camadas até que se chegue ao produto final
** No caso do software, pode-se começar desenhando o blueprint de uma tela, depois um protótipo e em seguida, o frontend para depois adicionar as funcionalidades
* Desenvolvimento iterativo e incremental é uma estratégia de planejamento que segue a linnha: "Dividir para conquistar"
** O software é construído em partes, em ciclos
** A cada iteração tem um novo incremento
* Duarte (2015)
** Explica que é o produto que deve estar pronto após o sprint podendo ainda ser aperfeiçoado no próximo sprint
** Importante que o incremento seja algo concreto e utilizável, uma demo ou uma página navegável
* Qual o propósito do Scrum?
** Scrum vem sendo utilizado para o desenvolvimento de produtos complexo desde o início dos anos 90
** Scrum não é um processo e nem uma técnica e sim um framework dentro do qual você pode usar várias técnicas ou processos
* Papel do Scrum:
** Fazer transparecer a eficiência relativa de suas práticas de desenvolvimento para que você possa melhorá-las enquanto provê um framework através do qual os produtos complexos possam ser desenvolvidos
* Teoria do Scrum:
** Fundamentado na teoria de controle de processos empíricos emprega uma abordagem iterativa e incremental para otimizar a previsibilidade e controlar riscos
* Diferentemente de processos de linha de produção onde se tem um processo produtivo padrão, o Scrum é apropriado para processos empíricos onde não temos fórmulas e receitas prontas pois no meio do processo, desvios podem acontecer assim como em um processo artesanal
* Processo definido:
** São processos onde se conhece todas as variáveis pois tem poucas ou nenhuma mudança ao longo do processo
** São repetitivos e previsíveis
** Geralmente existe uma documentação aplicada à execução do processo
* Processos empíricos
** Processos onde não se conhece todas as variáveis, não são repetitivos e são imprevisíveis
** Geralmente baseado no conhecimento e experiência
** Às vezes, quando desenvolvemos um software não conhecemos todos os requisitos e os que são conhecidos mudam com certa frequência
** Geralmente todas as estimativas são baseadas no conhecimento das pessoas
** Isto quer dizer que no mesmo trabalho feito por equipes diferentes a duração pode varias pois a equipe mais experiente deve realizar o trabalho mais rápido
* O desenvolvimento de software é um problema complexo e se comporta de maneira imprevisível

Edição das 11h41min de 27 de julho de 2016

Desafios do Desenvilvimento de Software


  • 1. Responder ao cliente
  • 2. Falta na comunicação das equipes
  • 3. Entender as necessidades do cliente
  • Exercício:
    • Pause o vídeo e analise a figura:
    • Figura da árvore e do balanço
  • 4. Compreender porque os projetos falham
  • 5. Aumentar a produtividade da equipe de desenvolvimento
    • Lei de Brooks
  • 6. Escolher o framework certo para desenvolver o software
    • Metodologias ágeis mais comuns:
      • Extreme Programming
      • Scrum
      • Lean
      • Feature Drive-Programming (FDD)
      • Kanban
      • RUP
      • OpenUp
  • Desenvolvimento ágil:
    • Scrum é de longe o mais simples e mais fácil
  • 7. Como reter bons profissionais?
  • Clientes x Desenvolvedores
  • O que é Scrum?



Abordagem Interativa e Incremental


  • Segundo Schauber ??:
    • O Scrum é baseado na teoria de controle dos processos empíricos emprega uma Abordagem Interativa e Incremental para otimizar a previsibilidade e reduzir riscos:
  • Devido à complexidade, 3 pilares sustentam essa teoria:
    • Tamanho
    • Mudança de requisitos
    • Urgência e necessidade de demonstrar mais valor rapidamente
  • É inconcebível, desenvolver sistemas usando o modelo cascata que implementa todo o software de uma única vez
  • Abordagem incremental
    • Permite desenvolver o software em pedaços, em partes
    • Sozinhas não faz muito sentido mas através dela temos noção de como ficará o resto
  • Abordagem iterativa
    • Começa com um esboço, um rabisco e aos poucos adiciona-se novas camadas até que se chegue ao produto final
    • No caso do software, pode-se começar desenhando o blueprint de uma tela, depois um protótipo e em seguida, o frontend para depois adicionar as funcionalidades
  • Desenvolvimento iterativo e incremental é uma estratégia de planejamento que segue a linnha: "Dividir para conquistar"
    • O software é construído em partes, em ciclos
    • A cada iteração tem um novo incremento
  • Duarte (2015)
    • Explica que é o produto que deve estar pronto após o sprint podendo ainda ser aperfeiçoado no próximo sprint
    • Importante que o incremento seja algo concreto e utilizável, uma demo ou uma página navegável
  • Qual o propósito do Scrum?
    • Scrum vem sendo utilizado para o desenvolvimento de produtos complexo desde o início dos anos 90
    • Scrum não é um processo e nem uma técnica e sim um framework dentro do qual você pode usar várias técnicas ou processos
  • Papel do Scrum:
    • Fazer transparecer a eficiência relativa de suas práticas de desenvolvimento para que você possa melhorá-las enquanto provê um framework através do qual os produtos complexos possam ser desenvolvidos
  • Teoria do Scrum:
    • Fundamentado na teoria de controle de processos empíricos emprega uma abordagem iterativa e incremental para otimizar a previsibilidade e controlar riscos
  • Diferentemente de processos de linha de produção onde se tem um processo produtivo padrão, o Scrum é apropriado para processos empíricos onde não temos fórmulas e receitas prontas pois no meio do processo, desvios podem acontecer assim como em um processo artesanal
  • Processo definido:
    • São processos onde se conhece todas as variáveis pois tem poucas ou nenhuma mudança ao longo do processo
    • São repetitivos e previsíveis
    • Geralmente existe uma documentação aplicada à execução do processo
  • Processos empíricos
    • Processos onde não se conhece todas as variáveis, não são repetitivos e são imprevisíveis
    • Geralmente baseado no conhecimento e experiência
    • Às vezes, quando desenvolvemos um software não conhecemos todos os requisitos e os que são conhecidos mudam com certa frequência
    • Geralmente todas as estimativas são baseadas no conhecimento das pessoas
    • Isto quer dizer que no mesmo trabalho feito por equipes diferentes a duração pode varias pois a equipe mais experiente deve realizar o trabalho mais rápido
  • O desenvolvimento de software é um problema complexo e se comporta de maneira imprevisível