Upload
comunidade-netponto
View
2.497
Download
1
Embed Size (px)
DESCRIPTION
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.
Citation preview
Developer 0.0Tiago Pascoal
http://netponto.org
25ª Reunião Lisboa - 17/12/2011
Patrocinadores “Bronze”
Também disponível em vídeo...
Assista!http://www.youtube.com/watch?v=8wDDqYl0d0I
As to dancing, my dear, I never dance, unless I am allowed to do it in my own peculiar way. There is no use trying to describe it: it has to be seen to be believed.
Lewis Carroll
O que a apresentação NÃO é...
Apresentação a ser feita há 36 anos
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
Uma Interpretação
A realidade...Em bom rigor...
A realidade...Em bom rigor...Não é totalmente verdade
A realidade...Em bom rigor...Não é totalmente verdadeTemos brinquedos mais modernos
A realidade...Em bom rigor...Não é totalmente verdadeTemos brinquedos mais modernos
Mas será justo?
• Incapacidade para entregar nos prazos
Mas será justo?
• Incapacidade para entregar nos prazos
Mas será justo?
• Incapacidade para entregar nos prazos• Incapacidade para entregar dentro
do orçamento
Mas será justo?
• Incapacidade para entregar nos prazos• Incapacidade para entregar dentro
do orçamento
Mas será justo?
• Incapacidade para entregar nos prazos• Incapacidade para entregar dentro
do orçamento• Incapacidade para entregar o que o
negócio precisa
Mas será justo?
• Incapacidade para entregar nos prazos• Incapacidade para entregar dentro
do orçamento• Incapacidade para entregar o que o
negócio precisa
Não é por acaso que o movimento ágil surgiu...
• Exactamente para tentar contrabalançar esta necessidade
Não é por acaso que o movimento ágil surgiu...
• Exactamente para tentar contrabalançar esta necessidade
• Individuals and interactions over processes and tools• Working software over comprehensive documentation• Customer collaboration over contract negotiation• Responding to change over following a plan
Não é por acaso que o movimento ágil surgiu...
• Exactamente para tentar contrabalançar esta necessidade
• Mas o movimento ágil por vezes tende a ignorar o mundo em que vivemos...
• Individuals and interactions over processes and tools• Working software over comprehensive documentation• Customer collaboration over contract negotiation• Responding to change over following a plan
Se calhar o problema tem que se resolver a montante...
• Premissa. Enquanto não se resolver este assunto nada de
Isto devia estar embebido no DNA...
Conhecimentos básicos de economia
Mas antes comecemos pela base
Discutível?
Everything is politics Thomas Mann
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...
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
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.
A visão...
Mas....
Escrevemos código para o negócio. O negócio não passa cheques para as nossas masturbações intelectuais
PONTO
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…
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…
Produzir código bonito?Resolver problemas técnicos complexos?Escrever código sem erros?Usar linguagens sexy?
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…
Produzir código bonito?Resolver problemas técnicos complexos?Escrever código sem erros?Usar linguagens sexy?
Isso não são objectivos são meios.
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…
Produzir código bonito?Resolver problemas técnicos complexos?Escrever código sem erros?Usar linguagens sexy?
Isso não são objectivos são meios.
Os objectivos são (tipicamente)
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…
Produzir código bonito?Resolver problemas técnicos complexos?Escrever código sem erros?Usar linguagens sexy?
Isso não são objectivos são meios.
Os objectivos são (tipicamente)
Aumentar lucros, reduzir custos
(Voltando ao) Picasso
Percebia a diferença entre tempo e valor
Se pretendem
• Ser uma commodity?
Se pretendem
• Ser uma commodity?
• Então terão muita companhia
Se pretendem
• Ser uma commodity?
• Então terão muita companhia
Se pretendem
• Ser uma commodity?
• Então terão muita companhia
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/
Vossa Escolha
Commodity
• Race to the bottom
Que compete pelo preço
Escassez• Que combate
com o valor
E recolhe o respectivo prémio
Custo das mudanças de contexto
Custo das mudanças de contexto
Custo das mudanças de contexto
Culpa do gestor obviamente
Como reagiam?
Como reagiam?
15 Minutos == 1/16 dia trabalho
• Cada interrupção pode custar 15 minutos de recuperação
http://www.nytimes.com/2007/03/25/business/25multi.html
15 Minutos == 1/16 dia trabalho
• Cada interrupção pode custar 15 minutos de recuperação
http://www.nytimes.com/2007/03/25/business/25multi.html
15 Minutos == 1/16 dia trabalho
• Cada interrupção pode custar 15 minutos de recuperação
http://www.nytimes.com/2007/03/25/business/25multi.html
15 Minutos == 1/16 dia trabalho
• Cada interrupção pode custar 15 minutos de recuperação
http://www.nytimes.com/2007/03/25/business/25multi.html
15 Minutos == 1/16 dia trabalho
• Cada interrupção pode custar 15 minutos de recuperação
http://www.nytimes.com/2007/03/25/business/25multi.html
Aquilo que era culpa nos outros
Deixa subitamente de ter responsáveis
Não perseguir coisas
brilhantes...
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
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?
Teoria da vantagem comparativa
David Ricardo 1772-1823
Reduz o nosso custo de oportunidade
Fará sentido escrever um parser de XML?
Contexto
VS
Corrida Entre
Quem Ganha?
Depende...50 Km Pista Tartan...
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....
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....
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....
Final Word...
GSD
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
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
Opinião Pessoal
Critério
s para
contra
tação
Takeaways
Para que serve o softwareAnálise custo beneficioCusto de oportunidadeTeoria vantagem comparativaResponsabilização
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
Patrocinador “Lata”
Patrocinadores “Bronze”
Questões?
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! :)
Obrigado!
Tiago [email protected]://pascoal.nethttp://twitter.com/tspascoal