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
- Metodologias ágeis mais comuns:
- 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