O documento discute os principais conceitos do Ciclo de Vida de Desenvolvimento de Software, incluindo:
1. A importância da Visão e Objetivos do projeto para orientar o time.
2. Exemplos de como problemas podem surgir quando os requisitos não são claros ou a tecnologia é desconhecida.
3. A necessidade de evoluir os sistemas incrementalmente através de iterações e deployes frequentes para lidar com mudanças e imprevistos.
24. Communicate!
• A good idea is an orphan without effective
communication
– Know What You Want to Say
– Know Your Audience
– Choose Your Moment
– Choose a Style
– Make it Look Good
– Involve Your Audience
– Be a Listener
– Get Back to People
25. Communicate!
• TIP 10: It’s Both What You Say and the Way You
Say It
– There’s no point in having a great ideas if you don’t
communicate them effectively
• Challenge
– Write an article for a magazine
– Share your ideas in a Presentation for us
29. What I don´t know about startups
Luiz Borba
@luizborba
http://borba.blog.br
30. Minimum Viable Product (MVP)
The minimum set of features
needed to learn
from early
adopters
31. Tracer Bullets
• “Ready, fire, aim…”
• Tracer Bullets leave pyrotechnic trails from the
gun to whatever they hit
– Immediate Feedback
– Equivalent to regular ammunition
• Darkness
– Vague Requirements
– Unfamiliar Technologies
– Unfamiliar Frameworks
– Changes
32. Tracer Bullets
• Code That Glows in the Dark
• TIP 15: Use Tracer Bullets to Find the Target
– Tracer Bullets let you home in on your target by trying
things and seeing how close they land
• Tracer Code is not Disposable
– But not fully-functional
33. Speed matters
Reducing time between pivots (fails)
we can increase our odds of success
Minimize the TOTAL time
through the loop
38. "A arquitetura de software de
um programa ou sistema
computacional é a estrutura
(ou estruturas), a qual
envolve os elementos de
software, as propriedades
desses elementos visíveis
externamente e seus
respectivos inter-
relacionamentos."
47. Coesão é a medida de quão forte estão
relacionadas as responsabilidades de um elemento.
Quanto mais coeso, menor o esforço para realizar
suas responsabilidades. Esta é a razão pela qual o
padrão MVC é considerado uma boa prática.
Reponsabilidades
de GUI ficam aqui Mediação entre
Model eView
Responsabilidade para
alterar os modelos
48. Primeira Lei de Arquitetura
de Software de Borba
(Borba's 1st Software Architecture Law)
Toda arquitetura definida está errada.
50. Segunda Lei de Arquitetura
de Software de Borba
(Borba's 2nd Software Architecture Law)
Toda arquitetura definida que
comprovadamente funciona
estará errada em breve.
51. As coisas mudam
• Tecnologias mudam
• Requisitos/Planos/Negócios mudam
• Pessoas mudam
• Usuários mudam
• TUDO MUDA. O TEMPO TODO.
58. 1. Não existe nada de especial
sobre arquitetura
2. Evite arquiteturas torres de
marfim
3. Todo sistema tem uma
arquitetura
4. Arquitetura viabiliza projetos
grandes
61. Ada Lovelace
“Think of my horror then at just
discovering that the table & diagram
(over which I have been spending
infinite patience & pains) are seriously
wrong, in one or two points”.
1843
64. "There is no program that, given a
description of an arbitrary computer
program, can decide whether the program
finishes running or continues to run
forever".
!
(Alan Turing, 1936)
68. Martin Fowler’s Code Smells
Duplicated Code
Long Method
Large Class
Long Parameter List
Divergent Change
Shotgun Surgery
Feature Envy
Data Clumps
Primitive Obsession
Switch Statements
Parallel Inheritance Hierarchies
Lazy Class
Speculative Generality
Temporary Field
Message Chains
Middle Man
Inappropriate Intimacy
Alternative Classes with Different Interfaces
Incomplete Class Libraries
Data Class
Refused Bequest
Comments