O documento discute os problemas associados com a abordagem "Big Design Up Front" (BDUF) para projetos de desenvolvimento de software, onde todos os requisitos e design são planejados no início do projeto. A abordagem BDUF tem alta taxa de falha de projetos devido a mudanças frequentes de requisitos, expectativas irrealistas e falta de envolvimento do usuário. Uma abordagem evolutiva e incremental é defendida, começando pequeno e permitindo que o design evolua conforme o projeto progride.
3. Sobre @gpupo
• Desenvolvedor e consultor em GTI
• Dependente de documentação, bookmarks e
anotações
• Doctrine ORM, Symfony, Perl, Bash, Linux,
jQuery e o que funcionar...
• Membro e co-fundador do #maisagil
• Empreendedor no @hotellinux
www.gilmar.eti.br www.gpupo.com
Times ágeis. @gpupo
9. BDUF/BRUF
“The
Project
Management
Triangle”
Ou
“Iron triangle”
Times ágeis. @gpupo
10. BDUF/BRUF
“The
Previsibilidade
Project
Management
Triangle”
Ou
“Iron triangle”
Risco reduzido Garantia de entrega
Times ágeis. @gpupo
11. BDUF/BRUF
Pontes normalmente são entregues no
prazo, dentro do orçamento e “não caem”
Times ágeis. @gpupo
12. BDUF/BRUF
Pontes normalmente são entregues no
prazo, dentro do orçamento e “não caem”
X
Softwares raramente são entregues no prazo
ou dentro do orçamento. E normalmente eles
tem bugs
Times ágeis. @gpupo
13. Pesquisa do The
Standish Group
Foco de identificar:
● As falhas dos projetos de software
● Os maiores fatores que influenciam estas falhas
● Os pontos chave que podem reduzir estas falhas
Times ágeis. @gpupo
15. BDUF/BRUF
Projetos cancelados Projeto dentro do prazo,
ou não utilizados dentro do orçamento e
com boa parte do escopo
Projeto funcionando, mas entregue
sem atender ou custo, ou esforço ou
com o escopo parcial
The Standish Group Chaos Report
Times ágeis. @gpupo
16. Standish Group EUA
• > 250 bilhões de dólares cada ano
no desenvolvimento de software
• custo médio de um projeto em uma
grande empresa é de 2.3 milhões
de dólares
Times ágeis. @gpupo
17. Standish Group EUA
• custo médio de um projeto em uma
empresa média é de 1.4 milhões de
dólares
• 434 mil dólares para uma empresa
pequena
Times ágeis. @gpupo
18. E a grande maioria destes
projetos falha.
Os projetos de
desenvolvimento de software
estão no caos
19. E a grande maioria destes
projetos falha.
Os projetos de
desenvolvimento de software
estão no caos
21. trocam-se processos e nomes
E os os projetos de
desenvolvimento de software
continuam no caos
22. BDUF – BRUF
Uma década e os mesmos erros.
Tem algo errado?
Times ágeis. @gpupo
23. BDUF – BRUF Fatores de fracasso
● Requisitos Incompletos: 13.1%
● Falta de envolvimento do usuário: 12.4%
● Falta de recursos: 10.6%
● Expectativas não realistas 9.9%
● Falta de apoio executivo: 9.3%
● Mudanças de requisitos: 8.7%
● Falta de planejamento: 8.1%
● Não precisa mais daquilo: 7.5%
● Falta de gestão da TI: 6.2%
● Analfabetismo tecnológico: 4.3%
Times ágeis. @gpupo
24. BDUF Fatores médio de fracasso
●Falta de insumos do usuário: 12.8%
●Requisitos & Especificações incompletas: 12.3%
●Mudanças nos requisitos & especificações: 11.8%
●Falta de apoio executivo: 7.5%
●Ambiente tecnológico incompleto: 7.0%
●Falta de recursos: 6.4%
●Expectativas irrealistas: 5.9%
●Objetivos nebulosos: 5.3%
●Ciclos (tempo) irrealistas: 4.3%
●Novas tecnologias: 3.7%
Times ágeis. @gpupo
26. Evolutionary design
“There's no design at the
beginning. You begin by coding
a small amount of
functionality, adding more
functionality, and letting the
design shift and shape!”
Martin Fowler
29. BDUF – BRUF // motivos
1)Mistakenly compare software development to civil
engineering
2)Get motivated to do so by the business
3)Think comprehensive requirements documentation
means something
4)Don't know any better
5)Are overly specialized
6)Believe programmers don't have the skills to model
themselves
7)They got sidetracked by traditional data
professionals.
Times ágeis. @gpupo
30. BDUF – BRUF // impacto
1)It reduces your willingness to embrace
evolving requirements
2)It increases the chance of poor decisions
3)It increases the chance your vision will be
ignored
4)It decreases morale
Times ágeis. @gpupo
32. Escopo fechado
• A incompetência sempre é do
desenvolvedor (?!)
Times ágeis. @gpupo
33. Escopo fechado
• Garantias geram desperdícios
• Software não é igual
• Software não é prédio
• Você não sabe o tempo
Times ágeis. @gpupo
34. BDUF Fatores Sucesso
●Envolvimento do usuário: 15.9%
●Apoio executivo: 13.9%
●Declaração de requisitos clara e limpa: 13%
●Planejamento apropriado: 9.6%
●Expectativas realistas: 8.2%
●Milestones pequenos: 7.7%
●Equipe competente: 7.2%
●Propriedade: 5.3%
●Visão e objetivos claros: 2.9%
●Trabalho duro e equipe focada: 2.4%
Times ágeis. @gpupo
35. BDUF – BRUF // solução
1)You still need to do some initial envisioning up front,
including both requirements envisioning and
architectural envisioning
2)You're still doing some initial up front modeling, it's
just that you are doing so in an effective and agile
manner.
3)You should create very slim, high-level models early
in the project which overview the scope of the effort
and identify a likely architectural strategy.
Times ágeis. @gpupo
42. Lean
● Levar a tomada de decisão para o chão da fábrica
● Empowerment
● Autonomia
Times ágeis. @gpupo
43. Lean
● Levar a tomada de decisão para o chão da fábrica
● Empowerment
● Autonomia
Times ágeis. @gpupo
44. Escopo aberto
• Princípio de Pareto
• 20% entregue,
• Menor frustação na quebra de
espectativas
Times ágeis. @gpupo
45. Some Design Up Front is
Good
Like a horse with blinders on,
avoiding some degree of Big
Design Up Front (BDUF) can
force your team and project into
tunnel vision, because… If you
don’t look at what you’re building
in its entirety, it is harder to see
the big picture, to have to that ah-
hah moment that leads to a break
through, to maintain conceptual
integrity, or have a successful
project.
Times ágeis. @gpupo
46. Design
●
Faça o justo necessário:
não faça aquém nem além do
que deve ser feito na iteração
● Refatoração : sempre que
puder melhore o código
Times ágeis. @gpupo
47. Big problem
“When you're up against a big
problem it's easy to get stuck
— you'll overthink the problem,
spend days or weeks worrying
about it and sketching out
solution after solution.”
48. Big problem
“Sketching is great, but at the
end of the day we've found it's
better to get something done.
That means focusing on
something small. “
Jonathan Smiley - ZURB
51. Design
● Foco nas tarefas que
agregam valor na visão do
cliente
● Fazer o simples e depois
evoluir o código de acordo
com a necessidade
Times ágeis. @gpupo
52. Estimativas
building a plan
you and your
customer can
work with and
believe in
Times ágeis. @gpupo
53.
54. Estimativas
parar de tentar obter algo que as estimativas iniciais
não pode dar (precisão e exatidão) e focar no que
realmente importa:
a construção de um plano que você
e seu cliente pode trabalhar e
acreditar dentro
Times ágeis. @gpupo