Download pptx - Developer 0.0

Transcript
Page 1: Developer 0.0

Developer 0.0Tiago Pascoal

http://netponto.org

25ª Reunião Lisboa - 17/12/2011

Page 4: Developer 0.0

Developer 0.0

Tiago Pascoalhttp://pascoal.net

Page 6: Developer 0.0

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

Page 7: Developer 0.0
Page 8: Developer 0.0
Page 9: Developer 0.0

O que a apresentação NÃO é...

Page 10: Developer 0.0

Apresentação a ser feita há 36 anos

Page 11: Developer 0.0

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

Page 12: Developer 0.0

Uma Interpretação

Page 13: Developer 0.0

A realidade...Em bom rigor...

Page 14: Developer 0.0

A realidade...Em bom rigor...Não é totalmente verdade

Page 15: Developer 0.0

A realidade...Em bom rigor...Não é totalmente verdadeTemos brinquedos mais modernos

Page 16: Developer 0.0

A realidade...Em bom rigor...Não é totalmente verdadeTemos brinquedos mais modernos

Page 17: Developer 0.0

Mas será justo?

• Incapacidade para entregar nos prazos

Page 18: Developer 0.0

Mas será justo?

• Incapacidade para entregar nos prazos

Page 19: Developer 0.0

Mas será justo?

• Incapacidade para entregar nos prazos• Incapacidade para entregar dentro

do orçamento

Page 20: Developer 0.0

Mas será justo?

• Incapacidade para entregar nos prazos• Incapacidade para entregar dentro

do orçamento

Page 21: Developer 0.0

Mas será justo?

• Incapacidade para entregar nos prazos• Incapacidade para entregar dentro

do orçamento• Incapacidade para entregar o que o

negócio precisa

Page 22: Developer 0.0

Mas será justo?

• Incapacidade para entregar nos prazos• Incapacidade para entregar dentro

do orçamento• Incapacidade para entregar o que o

negócio precisa

Page 23: Developer 0.0

Não é por acaso que o movimento ágil surgiu...

• Exactamente para tentar contrabalançar esta necessidade

Page 24: Developer 0.0

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

Page 25: Developer 0.0

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

Page 26: Developer 0.0
Page 27: Developer 0.0

Se calhar o problema tem que se resolver a montante...

• Premissa. Enquanto não se resolver este assunto nada de

Page 28: Developer 0.0

Isto devia estar embebido no DNA...

Conhecimentos básicos de economia

Mas antes comecemos pela base

Page 29: Developer 0.0

Discutível?

Everything is politics Thomas Mann

Page 30: Developer 0.0

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...

Page 31: Developer 0.0

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

Page 32: Developer 0.0

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.

Page 33: Developer 0.0

A visão...

Page 34: Developer 0.0

Mas....

Escrevemos código para o negócio. O negócio não passa cheques para as nossas masturbações intelectuais

PONTO

Page 35: Developer 0.0

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…

Page 36: Developer 0.0

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?

Page 37: Developer 0.0

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.

Page 38: Developer 0.0

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)

Page 39: Developer 0.0

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

Page 40: Developer 0.0

(Voltando ao) Picasso

Percebia a diferença entre tempo e valor

Page 41: Developer 0.0

Se pretendem

• Ser uma commodity?

Page 42: Developer 0.0

Se pretendem

• Ser uma commodity?

• Então terão muita companhia

Page 43: Developer 0.0

Se pretendem

• Ser uma commodity?

• Então terão muita companhia

Page 44: Developer 0.0

Se pretendem

• Ser uma commodity?

• Então terão muita companhia

Page 45: Developer 0.0
Page 46: Developer 0.0

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/

Page 47: Developer 0.0

Vossa Escolha

Commodity

• Race to the bottom

Que compete pelo preço

Escassez• Que combate

com o valor

E recolhe o respectivo prémio

Page 48: Developer 0.0

Custo das mudanças de contexto

Page 49: Developer 0.0

Custo das mudanças de contexto

Page 50: Developer 0.0

Custo das mudanças de contexto

Culpa do gestor obviamente

Page 51: Developer 0.0

Como reagiam?

Page 52: Developer 0.0

Como reagiam?

Page 53: Developer 0.0

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

Page 54: Developer 0.0

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

Page 55: Developer 0.0

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

Page 56: Developer 0.0

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

Page 57: Developer 0.0

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

Page 58: Developer 0.0

Aquilo que era culpa nos outros

Deixa subitamente de ter responsáveis

Page 59: Developer 0.0

Não perseguir coisas

brilhantes...

Page 60: Developer 0.0

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

Page 61: Developer 0.0

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?

Page 62: Developer 0.0

Teoria da vantagem comparativa

David Ricardo 1772-1823

Reduz o nosso custo de oportunidade

Fará sentido escrever um parser de XML?

Page 63: Developer 0.0

Contexto

VS

Corrida Entre

Quem Ganha?

Page 64: Developer 0.0

Depende...50 Km Pista Tartan...

Page 65: Developer 0.0

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....

Page 66: Developer 0.0

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....

Page 67: Developer 0.0

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....

Page 68: Developer 0.0

Final Word...

GSD

Page 69: Developer 0.0

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

Page 70: Developer 0.0

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

Page 71: Developer 0.0

Takeaways

Para que serve o softwareAnálise custo beneficioCusto de oportunidadeTeoria vantagem comparativaResponsabilização

Page 72: Developer 0.0

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

Page 73: Developer 0.0

Patrocinador “Lata”

Page 74: Developer 0.0

Patrocinadores “GOLD”

Page 76: Developer 0.0

Questões?

Page 77: Developer 0.0

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! :)

Page 78: Developer 0.0

Obrigado!

Tiago [email protected]://pascoal.nethttp://twitter.com/tspascoal


Recommended