Successfully reported this slideshow.
We use your LinkedIn profile and activity data to personalize ads and to show you more relevant ads. You can change your ad preferences anytime.
O Ciclo da Vida
@luizborba
http://borba.blog.br
1
A Visão
SCRUM
de cabo a rabo
Luiz Borba
borba@pitang.com
Uma empresa
C.E.S.A.R
5/4/14
slide 39
Visão
!  Essência
!  Por que esse projeto está sendo feito?
!  Quais os objetivos
!  Investimentos x Retor...
Exemplos
THE LEAN STARTUP
Luiz%Borba%
@luizborba%
h.p://borba.blog.br%
startup is an organization
formed to search for a
repeatable and scalable
business model
Steve Blank
February 1, 2005
http...
Customer)Development!
The!search!for!the!business!model!
The!Search!for!a!Business! The!Growth!of!a!Business!
2
Onde os problemas
começaram
U$ 1.5M
5/4/14
slide 23
Efetividade da Comunicação
The Pragmatic Programmer
Andrew Hunt & David Thomas
Communicate!
•  A good idea is an orphan without effective
communication
–  Know What You Want to Say
–  Know Your Audienc...
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 d...
todas&as&coisas&que&todo&
programador&não&pode&
deixar&de&saber&
(parte&1)&
Luiz&Borba&
h;p://borba.blog.br&
@luizborba&
priorização)
escopo&mínimo&
What I don´t know about startups
Luiz Borba
@luizborba
http://borba.blog.br
Minimum Viable Product (MVP)
The minimum set of features
needed to learn
from early
adopters
Tracer Bullets
•  “Ready, fire, aim…”
•  Tracer Bullets leave pyrotechnic trails from the
gun to whatever they hit
–  Imme...
Tracer Bullets
•  Code That Glows in the Dark
•  TIP 15: Use Tracer Bullets to Find the Target
–  Tracer Bullets let you h...
Speed matters
Reducing time between pivots (fails)
we can increase our odds of success
Minimize the TOTAL time
through the...
itera&vo)e)incremental)
3
Não me venham com a
problemática que eu tenho
a solucionática
Luiz Borba
@luizborba - http://borba.blog.br
Arquitetura Pragmática
"A arquitetura de software de
um programa ou sistema
computacional é a estrutura
(ou estruturas), a qual
envolve os elemen...
Arquitetura
Design
Atributos de Qualidade
• Performance
• Segurança
• Disponibilidade
• Usabilidade
• Confiabilidade
• Manutenibilidade
• Test...
Visões
Principais fatores para
um bom design
Baixo acomplamento Alta coesão
Melhorando a
qualidade do
seu código
com GRASP
Luiz Borba	

http://borba.blog.br
1
Aula 4
Baixo Acoplamento
Acoplamento é a medida de o quão forte um
elemento está conectado, tem conhecimento
ou depende de outros elementos
Aula 5
Alta Coesão
Coesão é a medida de quão forte estão
relacionadas as responsabilidades de um elemento.
Quanto mais coeso, menor o esforço...
Primeira Lei de Arquitetura
de Software de Borba
(Borba's 1st Software Architecture Law)
Toda arquitetura definida está err...
Precisa PROVAR!
Segunda Lei de Arquitetura
de Software de Borba
(Borba's 2nd Software Architecture Law)
Toda arquitetura definida que
compr...
As coisas mudam
• Tecnologias mudam
• Requisitos/Planos/Negócios mudam
• Pessoas mudam
• Usuários mudam
• TUDO MUDA. O TEM...
O que fazer então?
Design Incremental
TDD
DIRETO DAS TRINCHEIRAS
Luiz Borba
@luizborba
http://borba.blog.br
Separa o quê do como
TDD é mais importante que tudo
"As melhores arquiteturas,
requisitos e design emergem
de times auto organizados"
(manifesto para desenvolvimento de softw...
1. Não existe nada de especial
sobre arquitetura
2. Evite arquiteturas torres de
marfim
3. Todo sistema tem uma
arquitetura...
4
Merda Acontece
http://borba.blog.br
Merda Acontece
Luiz Borba
Ada Lovelace
“Think of my horror then at just
discovering that the table & diagram
(over which I have been spending
infinit...
Grace Hopper
1952
A-0primeiro compilador já
escrito para um
computador eletrônico
1947
"There is no program that, given a
description of an arbitrary computer
program, can decide whether the program
finishes ru...
Seja empírica ou
matematicamente, já faz
décadas que descobrimos
que MERDA ACONTECE!
1º Ato
Porque a Merda Acontece?
Onde há catinga, há merda
Martin Fowler’s Code Smells
Duplicated Code
Long Method
Large Class
Long Parameter List
Divergent Change
Shotgun Surgery
F...
Merda Acontece porque
deixamos janelas quebradas
O milagre da multiplicação
Cuidado com ORM
Merda Acontece porque
usamos abstrações sem saber
o que acontece por “debaixo
dos panos”
11 HISTÓRIAS E 1 SEGREDO
Luiz Borba	
http://borba.blog.br
“All non-trivial abstractions,
to some degree, are leaky.”
!
- Joel Spolsky
Linguagens de
programação são leaky
abstractions.
Temos obrigação de
conhecer o que a
linguagem que
utilizamos faz por
debaixo dos panos.
“When someone says: ‘I
want a programming
language in which I need
only say what I wish done’,
give him a lollipop.”
!
- A...
As 2 Leis de Borba
Twitter no Início
Twitter Hoje
Merda Acontece porque não
evoluimos nossos sistemas ao
longo do tempo
2º Ato
Como lidar com a Merda?
O Paradoxo do Deploy
Porque temos
medo do Deploy?
O Deploy de 180 Dias
Deploy Frequente minimiza a
chance de dar Merda e
quando acontece, é mais fácil
de detectar o problema
O Caso Facebook
Qual a frequência de deploy
em produção do Facebook?
2 vezes por dia
E o que acontece quando dá
merda?
"Reverting is for losers!"
!
(Chuck Rossi)
IRC para localizar os
desenvolvedores, resolver a
bronca na hora e fazer um
novo deploy
Desenvolvedores
tem karma
Quanto tempo leva o processo
de deploy? (dezenas de
milhares de servidores e um
pacote de 1.5Gb)
3º Ato
Tendências
Um C seguro
“Rust is a general purpose,
multi-paradigm, compiled
programming language
developed by Mozilla Research”
!
- Wikipedia
Exemplos
Obama não conhecia
as Leis de Borba
U.S. Airforce blows
$1 Billion on failed
Enterprise Software
Fornecedor x Integrador
x Cliente
Hierarquia Militar
(troca constante de
comando)
Informatização do
CAOS
5
Quando Desligar
Exemplos
6
Metamorfose Ambulante
“O Futuro”
luiz borba
o mundo era !
mais simples
mas foi ficando !
mais complexo
e os produtos também
o chave para o futuro é a
redução da complexidade
“Change is the process by which !
the future invades our lives”
Alvin Toffler
Coisas que levei
um tempo para
aprender
Luiz Borba
http://borba.blog.br
Primeiro
emprego
1991
1993
Por que você precisa
(re)aprender linguagens
funcionais?
Luiz Borba
Maio-2010
Software is getting slower faster
than hardware becomes
faster (Nicklaus Wirth)
código existente será
obsoleto
As Coisas Mudam
Luiz Borba
http://borba.blog.br
A gente muda mesmo sem querer...
“Eu vou desdizer
Aquilo tudo que eu lhe disse antes
Eu prefiro ser
Essa metamorfose ambulante
Do que ter aquela velha opini...
Coisa 13:
Seja uma
metamorfose
ambulante
what
killed
rup
could
kill
agile,
too
Luiz Borba
COURAGE
Obrigado!
Luiz Borba
http://borba.blog.br
O ciclo da vida
O ciclo da vida
O ciclo da vida
O ciclo da vida
O ciclo da vida
O ciclo da vida
O ciclo da vida
O ciclo da vida
O ciclo da vida
O ciclo da vida
O ciclo da vida
O ciclo da vida
O ciclo da vida
O ciclo da vida
O ciclo da vida
O ciclo da vida
O ciclo da vida
O ciclo da vida
O ciclo da vida
O ciclo da vida
O ciclo da vida
O ciclo da vida
O ciclo da vida
O ciclo da vida
O ciclo da vida
O ciclo da vida
O ciclo da vida
Upcoming SlideShare
Loading in …5
×

O ciclo da vida

2,176 views

Published on

Apresentação sobre Ciclo de Vida de Software. Aula apresentada no dia 05/05/14 na turma de mestrado do Cin/UFPE.

Published in: Technology
  • Be the first to comment

O ciclo da vida

  1. 1. O Ciclo da Vida @luizborba http://borba.blog.br
  2. 2. 1 A Visão
  3. 3. SCRUM de cabo a rabo Luiz Borba borba@pitang.com Uma empresa C.E.S.A.R
  4. 4. 5/4/14 slide 39 Visão !  Essência !  Por que esse projeto está sendo feito? !  Quais os objetivos !  Investimentos x Retorno
  5. 5. Exemplos
  6. 6. THE LEAN STARTUP Luiz%Borba% @luizborba% h.p://borba.blog.br%
  7. 7. startup is an organization formed to search for a repeatable and scalable business model Steve Blank February 1, 2005 http://amzn.to/lPHq10
  8. 8. Customer)Development! The!search!for!the!business!model! The!Search!for!a!Business! The!Growth!of!a!Business!
  9. 9. 2 Onde os problemas começaram
  10. 10. U$ 1.5M
  11. 11. 5/4/14 slide 23 Efetividade da Comunicação
  12. 12. The Pragmatic Programmer Andrew Hunt & David Thomas
  13. 13. 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
  14. 14. 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
  15. 15. todas&as&coisas&que&todo& programador&não&pode& deixar&de&saber& (parte&1)& Luiz&Borba& h;p://borba.blog.br& @luizborba&
  16. 16. priorização)
  17. 17. escopo&mínimo&
  18. 18. What I don´t know about startups Luiz Borba @luizborba http://borba.blog.br
  19. 19. Minimum Viable Product (MVP) The minimum set of features needed to learn from early adopters
  20. 20. 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
  21. 21. 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
  22. 22. Speed matters Reducing time between pivots (fails) we can increase our odds of success Minimize the TOTAL time through the loop
  23. 23. itera&vo)e)incremental)
  24. 24. 3 Não me venham com a problemática que eu tenho a solucionática
  25. 25. Luiz Borba @luizborba - http://borba.blog.br Arquitetura Pragmática
  26. 26. "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."
  27. 27. Arquitetura Design
  28. 28. Atributos de Qualidade • Performance • Segurança • Disponibilidade • Usabilidade • Confiabilidade • Manutenibilidade • Testabilidade • Portabilidade • Integrabilidade • Reusabilidade • Legibilidade • Escalabilidade
  29. 29. Visões
  30. 30. Principais fatores para um bom design Baixo acomplamento Alta coesão
  31. 31. Melhorando a qualidade do seu código com GRASP Luiz Borba http://borba.blog.br 1
  32. 32. Aula 4 Baixo Acoplamento
  33. 33. Acoplamento é a medida de o quão forte um elemento está conectado, tem conhecimento ou depende de outros elementos
  34. 34. Aula 5 Alta Coesão
  35. 35. 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
  36. 36. Primeira Lei de Arquitetura de Software de Borba (Borba's 1st Software Architecture Law) Toda arquitetura definida está errada.
  37. 37. Precisa PROVAR!
  38. 38. Segunda Lei de Arquitetura de Software de Borba (Borba's 2nd Software Architecture Law) Toda arquitetura definida que comprovadamente funciona estará errada em breve.
  39. 39. As coisas mudam • Tecnologias mudam • Requisitos/Planos/Negócios mudam • Pessoas mudam • Usuários mudam • TUDO MUDA. O TEMPO TODO.
  40. 40. O que fazer então?
  41. 41. Design Incremental
  42. 42. TDD DIRETO DAS TRINCHEIRAS Luiz Borba @luizborba http://borba.blog.br
  43. 43. Separa o quê do como
  44. 44. TDD é mais importante que tudo
  45. 45. "As melhores arquiteturas, requisitos e design emergem de times auto organizados" (manifesto para desenvolvimento de software ágil)
  46. 46. 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
  47. 47. 4 Merda Acontece
  48. 48. http://borba.blog.br Merda Acontece Luiz Borba
  49. 49. 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
  50. 50. Grace Hopper 1952 A-0primeiro compilador já escrito para um computador eletrônico
  51. 51. 1947
  52. 52. "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)
  53. 53. Seja empírica ou matematicamente, já faz décadas que descobrimos que MERDA ACONTECE!
  54. 54. 1º Ato Porque a Merda Acontece?
  55. 55. Onde há catinga, há merda
  56. 56. 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
  57. 57. Merda Acontece porque deixamos janelas quebradas
  58. 58. O milagre da multiplicação
  59. 59. Cuidado com ORM
  60. 60. Merda Acontece porque usamos abstrações sem saber o que acontece por “debaixo dos panos”
  61. 61. 11 HISTÓRIAS E 1 SEGREDO Luiz Borba http://borba.blog.br
  62. 62. “All non-trivial abstractions, to some degree, are leaky.” ! - Joel Spolsky
  63. 63. Linguagens de programação são leaky abstractions.
  64. 64. Temos obrigação de conhecer o que a linguagem que utilizamos faz por debaixo dos panos.
  65. 65. “When someone says: ‘I want a programming language in which I need only say what I wish done’, give him a lollipop.” ! - Alan J. Perlis
  66. 66. As 2 Leis de Borba
  67. 67. Twitter no Início
  68. 68. Twitter Hoje
  69. 69. Merda Acontece porque não evoluimos nossos sistemas ao longo do tempo
  70. 70. 2º Ato Como lidar com a Merda?
  71. 71. O Paradoxo do Deploy
  72. 72. Porque temos medo do Deploy? O Deploy de 180 Dias
  73. 73. Deploy Frequente minimiza a chance de dar Merda e quando acontece, é mais fácil de detectar o problema
  74. 74. O Caso Facebook
  75. 75. Qual a frequência de deploy em produção do Facebook?
  76. 76. 2 vezes por dia
  77. 77. E o que acontece quando dá merda?
  78. 78. "Reverting is for losers!" ! (Chuck Rossi)
  79. 79. IRC para localizar os desenvolvedores, resolver a bronca na hora e fazer um novo deploy
  80. 80. Desenvolvedores tem karma
  81. 81. Quanto tempo leva o processo de deploy? (dezenas de milhares de servidores e um pacote de 1.5Gb)
  82. 82. 3º Ato Tendências
  83. 83. Um C seguro
  84. 84. “Rust is a general purpose, multi-paradigm, compiled programming language developed by Mozilla Research” ! - Wikipedia
  85. 85. Exemplos
  86. 86. Obama não conhecia as Leis de Borba
  87. 87. U.S. Airforce blows $1 Billion on failed Enterprise Software
  88. 88. Fornecedor x Integrador x Cliente
  89. 89. Hierarquia Militar (troca constante de comando)
  90. 90. Informatização do CAOS
  91. 91. 5 Quando Desligar
  92. 92. Exemplos
  93. 93. 6 Metamorfose Ambulante
  94. 94. “O Futuro” luiz borba
  95. 95. o mundo era ! mais simples
  96. 96. mas foi ficando ! mais complexo
  97. 97. e os produtos também
  98. 98. o chave para o futuro é a redução da complexidade
  99. 99. “Change is the process by which ! the future invades our lives” Alvin Toffler
  100. 100. Coisas que levei um tempo para aprender Luiz Borba http://borba.blog.br
  101. 101. Primeiro emprego 1991
  102. 102. 1993
  103. 103. Por que você precisa (re)aprender linguagens funcionais? Luiz Borba Maio-2010
  104. 104. Software is getting slower faster than hardware becomes faster (Nicklaus Wirth)
  105. 105. código existente será obsoleto
  106. 106. As Coisas Mudam Luiz Borba http://borba.blog.br
  107. 107. A gente muda mesmo sem querer...
  108. 108. “Eu vou desdizer Aquilo tudo que eu lhe disse antes Eu prefiro ser Essa metamorfose ambulante Do que ter aquela velha opinião Formada sobre tudo”
  109. 109. Coisa 13: Seja uma metamorfose ambulante
  110. 110. what killed rup could kill agile, too Luiz Borba
  111. 111. COURAGE
  112. 112. Obrigado! Luiz Borba http://borba.blog.br

×