Apresentação do Tiago Pascoal sobre o que todo developer deveria saber antes de 'tocar no teclado' na 25a Reunião Presencial da Comunidade NetPonto ( http://netponto.org ) em Lisboa.
11. Fungíveis....
• É assim que o IT é visto.
• Será isto bom?
• Fungibilidade é o atributo pertencente aos
bens móveis que podem ser substituídos por
outros da mesma espécie, qualidade ou
quantidade.
In http://pt.wikipedia.org/wiki/Fungibilidade
19. Mas será justo?
• Incapacidade para entregar nos
prazos
• Incapacidade para entregar dentro
do orçamento
20. Mas será justo?
• Incapacidade para entregar nos
prazos
• Incapacidade para entregar dentro
do orçamento
21. Mas será justo?
• Incapacidade para entregar nos
prazos
• Incapacidade para entregar dentro
do orçamento
• Incapacidade para entregar o que o
negócio precisa
22. Mas será justo?
• Incapacidade para entregar nos
prazos
• Incapacidade para entregar dentro
do orçamento
• Incapacidade para entregar o que o
negócio precisa
23. Não é por acaso que o movimento ágil
surgiu...
• Exactamente para tentar contrabalançar esta
necessidade
24. Não é por acaso que o movimento ágil
surgiu...
• • Exactamente para tentar contrabalançar esta
Individuals and interactions over processes and tools
• Working software over comprehensive documentation
necessidade
• Customer collaboration over contract negotiation
• Responding to change over following a plan
25. Não é por acaso que o movimento ágil
surgiu...
• • Exactamente para tentar contrabalançar esta
Individuals and interactions over processes and tools
• Working software over comprehensive documentation
necessidade
• Customer collaboration over contract negotiation
• Responding to change over following a plan
• Mas o movimento ágil por vezes
tende a ignorar o mundo em que
vivemos...
27. Se calhar o problema tem que se
resolver a montante...
• Premissa. Enquanto não se
resolver este assunto nada de
28. Isto devia estar embebido no
DNA...
Conhecimentos
básicos de economia
Mas antes comecemos pela base
30. Para que serve o sofware?
Enquanto não se entender isto tudo o resto é
irrelevante...
O software é um meio para
atingir um fim não é um fim
em si mesmo...
31. Isto não é discutível.
• É perfeitamento binário... ( 0|1)
(excepto numa realidade alternativa)
Until your pretty code is in production,
making money, or doing whatever it does,
you've just wasted your time
-- Chris Read
32. Software Business Value
• Uma nova funcionalidade
• Melhoriar uma funcionalidade existente
• Menos bugs
• ...
Business Value é _qualquer_ coisa que
faz com que as pessoas dêem dinheiro
à pessoa/organização que o produz.
34. Mas....
Escrevemos código para o
negócio.
O negócio não passa cheques
para as nossas masturbações
intelectuais
PONTO
35. E agora politicamente correcto
• Os engenheiros são contratados para
criar valor não para programar
coisas.
• Drucker definiu o centro de custos e
o centro de lucros.
–Escolham o vosso lado…
36. E agora politicamente correcto
• Os engenheiros são contratados para
Produzir código bonito?
Resolver problemas técnicos complexos?
Escrever código sem erros?
criar valor não para programar
Usar linguagens sexy?
coisas.
• Drucker definiu o centro de custos e
o centro de lucros.
–Escolham o vosso lado…
37. E agora politicamente correcto
• Os engenheiros são contratados para
Produzir código bonito?
Resolver problemas técnicos complexos?
Escrever código sem erros?
criar valor não para programar
Usar linguagens sexy?
coisas. são objectivos são meios.
Isso não
• Drucker definiu o centro de custos e
o centro de lucros.
–Escolham o vosso lado…
38. E agora politicamente correcto
• Os engenheiros são contratados para
Produzir código bonito?
Resolver problemas técnicos complexos?
Escrever código sem erros?
criar valor não para programar
Usar linguagens sexy?
coisas. são objectivos são meios.
Isso não
• Drucker definiu o centro de custos e
Os objectivos são (tipicamente)
o centro de lucros.
–Escolham o vosso lado…
39. E agora politicamente correcto
• Os engenheiros são contratados para
Produzir código bonito?
Resolver problemas técnicos complexos?
Escrever código sem erros?
criar valor não para programar
Usar linguagens sexy?
coisas. são objectivos são meios.
Isso não
• Drucker definiu o centro de custos e
Os objectivos são (tipicamente)
o centro de lucros. reduzir custos
Aumentar lucros,
–Escolham o vosso lado…
40. (Voltando ao) Picasso
Percebia a diferença
entre tempo e valor
46. E se....
The job of a programmer is not to
write code; it is first and foremost
to think. Don’t skim; read carefully
every change line by line in your
diff tool, and think about them.
in http://altdevblogaday.com/2011/10/04/a-pre-commit-checklist/
47. Vossa Escolha
Commodity Escassez
• Race to the • Que combate
bottom com o valor
E recolhe o
Que compete respectivo
pelo preço prémio
60. Apenas porque brilham.....
• Vamos fazer o upgrade de uma
biblioteca? porquê?
–Quais são os ganhos?
• Muitas vezes nenhuns
–E nem sequer avaliamos que se vai
perder?
• Nem se analisa o que mudou
• E muito menos se testa em condições
61. Custo de oportunidade
Quando fazemos A em vez de B.
Não só o que custa fazer A mas
também as perdas de não fazer
B
Vamos fazer algo porque sim em vez de
trazer valor?
62. Teoria da vantagem comparativa
David Ricardo 1772-1823
Reduz o nosso custo de oportunidade
Fará sentido escrever um parser de
XML?
65. Responsabilização pelo que se faz
• Apesar da qualidade ser uma
responsabilidade da equipa. A
responsabilidade de testar não é de terceiros.
• Os erros acontecem e são constantes com a
dimensão do código, mas a responsabilidade é
nossa.
• Terceiros podem validar mas a
responsabilidade....
66. Responsabilização pelo que se faz
• Apesar da qualidade ser uma
responsabilidade da equipa. A
responsabilidade de testar não é de terceiros.
• Os erros acontecem e são constantes com a
dimensão do código, mas a responsabilidade é
nossa.
• Terceiros podem validar mas a
responsabilidade....
67. Responsabilização pelo que se faz
• Apesar da qualidade ser uma
responsabilidade da equipa. A
responsabilidade de testar não é de terceiros.
• Os erros acontecem e são constantes com a
dimensão do código, mas a responsabilidade é
nossa.
• Terceiros podem validar mas a
responsabilidade....
69. A evitar...
• Falta de sentido de urgência – é preciso é calma...
• Distrair-se fácilmente – falta de foco
• Preguiça
• Começa algo mas nunca acaba
• Falta de comprometimento – compromete-se mas nunca
entrega
• Argumentativo – discussões incessantes em vez de simplesmente fazer
• Lento – demora a fazer coisas
• Perfecionista – tendência para overengineering procura a implementação
perfeita em vez de algo que funciona 95% dos casos
70. A evitar...
• Falta de sentido de urgência – é preciso é calma...
• Distrair-se fácilmente – falta de foco
• Preguiça
• Começa algo mas nunca acaba
• Falta de comprometimento – compromete-se mas nunca
entrega
• Argumentativo – discussões incessantes em vez de simplesmente fazer
• Lento – demora a fazer coisas
• Perfecionista – tendência para overengineering procura a implementação
perfeita em vez de algo que funciona 95% dos casos
71. Takeaways
Para que serve o software
Análise custo beneficio
Custo de oportunidade
Teoria vantagem comparativa
Responsabilização
72. Use only that which works, and take it from
any place you can find it.
Life itself is your teacher, and you are in a
state of constant learning.
In Jeet Kune Do, it's not how much you have
learned, but how much you have absorbed
from what you have learned. It is not how
much fixed knowledge you can accumulate,
but what you can apply livingly that counts.
‘Being' is more valued than doing
77. Próximas reuniões presenciais
• 17/12/2011 – Dezembro
• 21/01/2012 – Janeiro (Lisboa)
• 11/02/2011 – Fevereiro (Coimbra)
• 18/02/2011 – Fevereiro (Lisboa)
Reserva estes dias na agenda! :)