Developer 0.0

Post on 24-May-2015

2.497 views 1 download

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.

Transcript of Developer 0.0

Developer 0.0Tiago Pascoal

http://netponto.org

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

Developer 0.0

Tiago Pascoalhttp://pascoal.net

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 “GOLD”

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 Pascoaltiago@pascoal.nethttp://pascoal.nethttp://twitter.com/tspascoal