SlideShare una empresa de Scribd logo
1 de 78
25ª Reunião Lisboa - 17/12/2011     http://netponto.org




                                  Developer 0.0
                                       Tiago Pascoal
Patrocinadores “GOLD”
Patrocinadores “Bronze”
Developer 0.0


Tiago Pascoal
http://pascoal.net
Também disponível em vídeo...


     Assista!
http://www.youtube.com/watch
?v=8wDDqYl0d0I
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 verdade
Temos brinquedos mais modernos
A realidade...
Em bom rigor...
Não é totalmente verdade
Temos 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
  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
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...
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
      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…
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…
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…
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…
(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          Escassez
• Race to the      • Que combate
  bottom             com o valor

                   E recolhe o
Que compete        respectivo
pelo preço         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

       Corrida Entre

               VS


           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...
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
Takeaways
Para que serve o software
Análise custo beneficio
Custo de oportunidade
Teoria vantagem comparativa
Responsabilizaçã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”
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 Pascoal
tiago@pascoal.net
http://pascoal.net
http://twitter.com/tspascoal

Más contenido relacionado

Similar a Developer 0.0 - Tiago Pascoal

Culture Code Coderockr
Culture Code CoderockrCulture Code Coderockr
Culture Code CoderockrCoderockr
 
"Mas eu não tenho experiência..." E daí??? - Como quebrar o ciclo vicioso de...
 "Mas eu não tenho experiência..." E daí??? - Como quebrar o ciclo vicioso de... "Mas eu não tenho experiência..." E daí??? - Como quebrar o ciclo vicioso de...
"Mas eu não tenho experiência..." E daí??? - Como quebrar o ciclo vicioso de...Julio Cesar Nunes de Souza
 
Desenvolvimento Ágil e a mudança de mindset envolvida
Desenvolvimento Ágil e a mudança de mindset envolvidaDesenvolvimento Ágil e a mudança de mindset envolvida
Desenvolvimento Ágil e a mudança de mindset envolvidaCarlos Felippe Cardoso
 
Mitos do Desenvolvimento de Software
Mitos do Desenvolvimento de SoftwareMitos do Desenvolvimento de Software
Mitos do Desenvolvimento de Softwareguest2f8cba
 
Como transformar suas ideias em PROJETOS
Como transformar suas ideias em PROJETOSComo transformar suas ideias em PROJETOS
Como transformar suas ideias em PROJETOSDaniel de Carvalho Luz
 
Agile br2011 lucabastos-prog10x-noiteagilcaelum
Agile br2011 lucabastos-prog10x-noiteagilcaelumAgile br2011 lucabastos-prog10x-noiteagilcaelum
Agile br2011 lucabastos-prog10x-noiteagilcaelumLuca Bastos
 
Investindo em startups
Investindo em startupsInvestindo em startups
Investindo em startupsMarcelo Amorim
 
Generalização prematura e complexidade acidental, a raiz do mal de todo software
Generalização prematura e complexidade acidental, a raiz do mal de todo softwareGeneralização prematura e complexidade acidental, a raiz do mal de todo software
Generalização prematura e complexidade acidental, a raiz do mal de todo softwareLucas Teles
 
PHP Conference 2020 - A eterna luta: compatibilidade retroativa vs. dívida té...
PHP Conference 2020 - A eterna luta: compatibilidade retroativa vs. dívida té...PHP Conference 2020 - A eterna luta: compatibilidade retroativa vs. dívida té...
PHP Conference 2020 - A eterna luta: compatibilidade retroativa vs. dívida té...Jackson F. de A. Mafra
 
XP Conf BR: eXtreme Programming para programadores. Aplicando XP em seu código!
XP Conf BR: eXtreme Programming para programadores. Aplicando XP em seu código!XP Conf BR: eXtreme Programming para programadores. Aplicando XP em seu código!
XP Conf BR: eXtreme Programming para programadores. Aplicando XP em seu código!Mauricio Andreazza
 
Voce sabe o que é Agile ? Eu tambem não !
Voce sabe o que é Agile ? Eu tambem não !Voce sabe o que é Agile ? Eu tambem não !
Voce sabe o que é Agile ? Eu tambem não !Fabiano Milani
 
[DevDay2018] Arquitetura de Software num cenário de incertezas - Arquitetura ...
[DevDay2018] Arquitetura de Software num cenário de incertezas - Arquitetura ...[DevDay2018] Arquitetura de Software num cenário de incertezas - Arquitetura ...
[DevDay2018] Arquitetura de Software num cenário de incertezas - Arquitetura ...André Paulovich
 
Desenvolvimento agil com XP
Desenvolvimento agil com XPDesenvolvimento agil com XP
Desenvolvimento agil com XPDiego Pacheco
 
Desenvolvimento Ágil com XP
Desenvolvimento Ágil com XPDesenvolvimento Ágil com XP
Desenvolvimento Ágil com XPilegra
 
Desenvolvimento de software de forma rápida e sem bugs - Introdução a TDD e S...
Desenvolvimento de software de forma rápida e sem bugs - Introdução a TDD e S...Desenvolvimento de software de forma rápida e sem bugs - Introdução a TDD e S...
Desenvolvimento de software de forma rápida e sem bugs - Introdução a TDD e S...Marcio Miyamoto
 

Similar a Developer 0.0 - Tiago Pascoal (20)

Não São Apenas Sapatos
Não São Apenas SapatosNão São Apenas Sapatos
Não São Apenas Sapatos
 
Scrum, Agilismo e Boas Práticas
Scrum, Agilismo e Boas PráticasScrum, Agilismo e Boas Práticas
Scrum, Agilismo e Boas Práticas
 
Culture Code Coderockr
Culture Code CoderockrCulture Code Coderockr
Culture Code Coderockr
 
"Mas eu não tenho experiência..." E daí??? - Como quebrar o ciclo vicioso de...
 "Mas eu não tenho experiência..." E daí??? - Como quebrar o ciclo vicioso de... "Mas eu não tenho experiência..." E daí??? - Como quebrar o ciclo vicioso de...
"Mas eu não tenho experiência..." E daí??? - Como quebrar o ciclo vicioso de...
 
Desenvolvimento Ágil e a mudança de mindset envolvida
Desenvolvimento Ágil e a mudança de mindset envolvidaDesenvolvimento Ágil e a mudança de mindset envolvida
Desenvolvimento Ágil e a mudança de mindset envolvida
 
Mitos do Desenvolvimento de Software
Mitos do Desenvolvimento de SoftwareMitos do Desenvolvimento de Software
Mitos do Desenvolvimento de Software
 
Como transformar suas ideias em PROJETOS
Como transformar suas ideias em PROJETOSComo transformar suas ideias em PROJETOS
Como transformar suas ideias em PROJETOS
 
Agile br2011 lucabastos-prog10x-noiteagilcaelum
Agile br2011 lucabastos-prog10x-noiteagilcaelumAgile br2011 lucabastos-prog10x-noiteagilcaelum
Agile br2011 lucabastos-prog10x-noiteagilcaelum
 
Investindo em startups
Investindo em startupsInvestindo em startups
Investindo em startups
 
Métodos Ágeis
Métodos ÁgeisMétodos Ágeis
Métodos Ágeis
 
Generalização prematura e complexidade acidental, a raiz do mal de todo software
Generalização prematura e complexidade acidental, a raiz do mal de todo softwareGeneralização prematura e complexidade acidental, a raiz do mal de todo software
Generalização prematura e complexidade acidental, a raiz do mal de todo software
 
PHP Conference 2020 - A eterna luta: compatibilidade retroativa vs. dívida té...
PHP Conference 2020 - A eterna luta: compatibilidade retroativa vs. dívida té...PHP Conference 2020 - A eterna luta: compatibilidade retroativa vs. dívida té...
PHP Conference 2020 - A eterna luta: compatibilidade retroativa vs. dívida té...
 
Métodos ágeis
Métodos ágeisMétodos ágeis
Métodos ágeis
 
Gp g riscos
Gp   g riscosGp   g riscos
Gp g riscos
 
XP Conf BR: eXtreme Programming para programadores. Aplicando XP em seu código!
XP Conf BR: eXtreme Programming para programadores. Aplicando XP em seu código!XP Conf BR: eXtreme Programming para programadores. Aplicando XP em seu código!
XP Conf BR: eXtreme Programming para programadores. Aplicando XP em seu código!
 
Voce sabe o que é Agile ? Eu tambem não !
Voce sabe o que é Agile ? Eu tambem não !Voce sabe o que é Agile ? Eu tambem não !
Voce sabe o que é Agile ? Eu tambem não !
 
[DevDay2018] Arquitetura de Software num cenário de incertezas - Arquitetura ...
[DevDay2018] Arquitetura de Software num cenário de incertezas - Arquitetura ...[DevDay2018] Arquitetura de Software num cenário de incertezas - Arquitetura ...
[DevDay2018] Arquitetura de Software num cenário de incertezas - Arquitetura ...
 
Desenvolvimento agil com XP
Desenvolvimento agil com XPDesenvolvimento agil com XP
Desenvolvimento agil com XP
 
Desenvolvimento Ágil com XP
Desenvolvimento Ágil com XPDesenvolvimento Ágil com XP
Desenvolvimento Ágil com XP
 
Desenvolvimento de software de forma rápida e sem bugs - Introdução a TDD e S...
Desenvolvimento de software de forma rápida e sem bugs - Introdução a TDD e S...Desenvolvimento de software de forma rápida e sem bugs - Introdução a TDD e S...
Desenvolvimento de software de forma rápida e sem bugs - Introdução a TDD e S...
 

Más de Comunidade NetPonto

Continuous Delivery for Desktop Applications: a case study - Miguel Alho & Jo...
Continuous Delivery for Desktop Applications: a case study - Miguel Alho & Jo...Continuous Delivery for Desktop Applications: a case study - Miguel Alho & Jo...
Continuous Delivery for Desktop Applications: a case study - Miguel Alho & Jo...Comunidade NetPonto
 
Criando aplicações para windows phone 8.1 e windows 8.1 com o app studio da...
Criando aplicações para windows phone 8.1 e windows 8.1 com o app studio da...Criando aplicações para windows phone 8.1 e windows 8.1 com o app studio da...
Criando aplicações para windows phone 8.1 e windows 8.1 com o app studio da...Comunidade NetPonto
 
MVVM Light e Cimbalino Toolkits - Sara Silva
MVVM Light e Cimbalino Toolkits - Sara SilvaMVVM Light e Cimbalino Toolkits - Sara Silva
MVVM Light e Cimbalino Toolkits - Sara SilvaComunidade NetPonto
 
Deep dive into Windows Azure Mobile Services - Ricardo Costa
Deep dive into Windows Azure Mobile Services - Ricardo CostaDeep dive into Windows Azure Mobile Services - Ricardo Costa
Deep dive into Windows Azure Mobile Services - Ricardo CostaComunidade NetPonto
 
The power of templating.... with NVelocity - Nuno Cancelo
The power of templating.... with NVelocity - Nuno CanceloThe power of templating.... with NVelocity - Nuno Cancelo
The power of templating.... with NVelocity - Nuno CanceloComunidade NetPonto
 
ASP.Net Performance – A pragmatic approach - Luis Paulino
ASP.Net Performance – A pragmatic approach - Luis PaulinoASP.Net Performance – A pragmatic approach - Luis Paulino
ASP.Net Performance – A pragmatic approach - Luis PaulinoComunidade NetPonto
 
NoSQL em Windows Azure Table Storage - Vitor Tomaz
NoSQL em Windows Azure Table Storage - Vitor TomazNoSQL em Windows Azure Table Storage - Vitor Tomaz
NoSQL em Windows Azure Table Storage - Vitor TomazComunidade NetPonto
 
De Zero a Produção - João Jesus
De Zero a Produção - João JesusDe Zero a Produção - João Jesus
De Zero a Produção - João JesusComunidade NetPonto
 
Como deixar de fazer "copy and paste" entre Windows Store e Windows Phone Apps
Como deixar de fazer "copy and paste" entre Windows Store e Windows Phone AppsComo deixar de fazer "copy and paste" entre Windows Store e Windows Phone Apps
Como deixar de fazer "copy and paste" entre Windows Store e Windows Phone AppsComunidade NetPonto
 
Case studies about Layout & View States & Scale in Windows 8 Store Apps
Case studies about Layout & View States & Scale in Windows 8 Store AppsCase studies about Layout & View States & Scale in Windows 8 Store Apps
Case studies about Layout & View States & Scale in Windows 8 Store AppsComunidade NetPonto
 
Aspect-oriented Programming (AOP) com PostSharp
Aspect-oriented Programming (AOP) com PostSharpAspect-oriented Programming (AOP) com PostSharp
Aspect-oriented Programming (AOP) com PostSharpComunidade NetPonto
 
Utilização de Mock Objects em Testes Unitários
Utilização de Mock Objects em Testes UnitáriosUtilização de Mock Objects em Testes Unitários
Utilização de Mock Objects em Testes UnitáriosComunidade NetPonto
 
Dinâmica e Motivacao de Equipas de Projecto
Dinâmica e Motivacao de Equipas de ProjectoDinâmica e Motivacao de Equipas de Projecto
Dinâmica e Motivacao de Equipas de ProjectoComunidade NetPonto
 
KnockoutJS com ASP.NET MVC3: Utilização na vida real
KnockoutJS com ASP.NET MVC3: Utilização na vida realKnockoutJS com ASP.NET MVC3: Utilização na vida real
KnockoutJS com ASP.NET MVC3: Utilização na vida realComunidade NetPonto
 
Como ser programador durante o dia e mesmo assim dormir bem à noite
Como ser programador durante o dia e mesmo assim dormir bem à noiteComo ser programador durante o dia e mesmo assim dormir bem à noite
Como ser programador durante o dia e mesmo assim dormir bem à noiteComunidade NetPonto
 
Windows 8: Desenvolvimento de Metro Style Apps - C. Augusto Proiete
Windows 8: Desenvolvimento de Metro Style Apps - C. Augusto ProieteWindows 8: Desenvolvimento de Metro Style Apps - C. Augusto Proiete
Windows 8: Desenvolvimento de Metro Style Apps - C. Augusto ProieteComunidade NetPonto
 
Uma Introdução a ASP.NET Web API
Uma Introdução a ASP.NET Web APIUma Introdução a ASP.NET Web API
Uma Introdução a ASP.NET Web APIComunidade NetPonto
 

Más de Comunidade NetPonto (20)

Continuous Delivery for Desktop Applications: a case study - Miguel Alho & Jo...
Continuous Delivery for Desktop Applications: a case study - Miguel Alho & Jo...Continuous Delivery for Desktop Applications: a case study - Miguel Alho & Jo...
Continuous Delivery for Desktop Applications: a case study - Miguel Alho & Jo...
 
Criando aplicações para windows phone 8.1 e windows 8.1 com o app studio da...
Criando aplicações para windows phone 8.1 e windows 8.1 com o app studio da...Criando aplicações para windows phone 8.1 e windows 8.1 com o app studio da...
Criando aplicações para windows phone 8.1 e windows 8.1 com o app studio da...
 
MVVM Light e Cimbalino Toolkits - Sara Silva
MVVM Light e Cimbalino Toolkits - Sara SilvaMVVM Light e Cimbalino Toolkits - Sara Silva
MVVM Light e Cimbalino Toolkits - Sara Silva
 
Deep dive into Windows Azure Mobile Services - Ricardo Costa
Deep dive into Windows Azure Mobile Services - Ricardo CostaDeep dive into Windows Azure Mobile Services - Ricardo Costa
Deep dive into Windows Azure Mobile Services - Ricardo Costa
 
The power of templating.... with NVelocity - Nuno Cancelo
The power of templating.... with NVelocity - Nuno CanceloThe power of templating.... with NVelocity - Nuno Cancelo
The power of templating.... with NVelocity - Nuno Cancelo
 
ASP.Net Performance – A pragmatic approach - Luis Paulino
ASP.Net Performance – A pragmatic approach - Luis PaulinoASP.Net Performance – A pragmatic approach - Luis Paulino
ASP.Net Performance – A pragmatic approach - Luis Paulino
 
ASP.NET Signal R - Glauco Godoi
ASP.NET Signal R - Glauco GodoiASP.NET Signal R - Glauco Godoi
ASP.NET Signal R - Glauco Godoi
 
NoSQL em Windows Azure Table Storage - Vitor Tomaz
NoSQL em Windows Azure Table Storage - Vitor TomazNoSQL em Windows Azure Table Storage - Vitor Tomaz
NoSQL em Windows Azure Table Storage - Vitor Tomaz
 
HTML5 - Pedro Rosa
HTML5 - Pedro RosaHTML5 - Pedro Rosa
HTML5 - Pedro Rosa
 
De Zero a Produção - João Jesus
De Zero a Produção - João JesusDe Zero a Produção - João Jesus
De Zero a Produção - João Jesus
 
OData – Super Cola W3
OData – Super Cola W3OData – Super Cola W3
OData – Super Cola W3
 
Como deixar de fazer "copy and paste" entre Windows Store e Windows Phone Apps
Como deixar de fazer "copy and paste" entre Windows Store e Windows Phone AppsComo deixar de fazer "copy and paste" entre Windows Store e Windows Phone Apps
Como deixar de fazer "copy and paste" entre Windows Store e Windows Phone Apps
 
Case studies about Layout & View States & Scale in Windows 8 Store Apps
Case studies about Layout & View States & Scale in Windows 8 Store AppsCase studies about Layout & View States & Scale in Windows 8 Store Apps
Case studies about Layout & View States & Scale in Windows 8 Store Apps
 
Aspect-oriented Programming (AOP) com PostSharp
Aspect-oriented Programming (AOP) com PostSharpAspect-oriented Programming (AOP) com PostSharp
Aspect-oriented Programming (AOP) com PostSharp
 
Utilização de Mock Objects em Testes Unitários
Utilização de Mock Objects em Testes UnitáriosUtilização de Mock Objects em Testes Unitários
Utilização de Mock Objects em Testes Unitários
 
Dinâmica e Motivacao de Equipas de Projecto
Dinâmica e Motivacao de Equipas de ProjectoDinâmica e Motivacao de Equipas de Projecto
Dinâmica e Motivacao de Equipas de Projecto
 
KnockoutJS com ASP.NET MVC3: Utilização na vida real
KnockoutJS com ASP.NET MVC3: Utilização na vida realKnockoutJS com ASP.NET MVC3: Utilização na vida real
KnockoutJS com ASP.NET MVC3: Utilização na vida real
 
Como ser programador durante o dia e mesmo assim dormir bem à noite
Como ser programador durante o dia e mesmo assim dormir bem à noiteComo ser programador durante o dia e mesmo assim dormir bem à noite
Como ser programador durante o dia e mesmo assim dormir bem à noite
 
Windows 8: Desenvolvimento de Metro Style Apps - C. Augusto Proiete
Windows 8: Desenvolvimento de Metro Style Apps - C. Augusto ProieteWindows 8: Desenvolvimento de Metro Style Apps - C. Augusto Proiete
Windows 8: Desenvolvimento de Metro Style Apps - C. Augusto Proiete
 
Uma Introdução a ASP.NET Web API
Uma Introdução a ASP.NET Web APIUma Introdução a ASP.NET Web API
Uma Introdução a ASP.NET Web API
 

Developer 0.0 - Tiago Pascoal

  • 1. 25ª Reunião Lisboa - 17/12/2011 http://netponto.org Developer 0.0 Tiago Pascoal
  • 5. Também disponível em vídeo... Assista! http://www.youtube.com/watch ?v=8wDDqYl0d0I
  • 6.
  • 7.
  • 8.
  • 9. O que a apresentação NÃO é...
  • 10. Apresentação a ser feita há 36 anos
  • 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
  • 14. A realidade... Em bom rigor... Não é totalmente verdade
  • 15. A realidade... Em bom rigor... Não é totalmente verdade Temos brinquedos mais modernos
  • 16. A realidade... Em bom rigor... Não é totalmente verdade Temos brinquedos mais modernos
  • 17. Mas será justo? • Incapacidade para entregar nos prazos
  • 18. Mas será justo? • Incapacidade para entregar nos prazos
  • 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...
  • 26.
  • 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
  • 41. Se pretendem • Ser uma commodity?
  • 42. Se pretendem • Ser uma commodity? • Então terão muita companhia
  • 43. Se pretendem • Ser uma commodity? • Então terão muita companhia
  • 44. Se pretendem • Ser uma commodity? • Então terão muita companhia
  • 45.
  • 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
  • 48. Custo das mudanças de contexto
  • 49. Custo das mudanças de contexto
  • 50. Custo das mudanças de contexto Culpa do gestor obviamente
  • 53. 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
  • 54. 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
  • 55. 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
  • 56. 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
  • 57. 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
  • 58. Aquilo que era culpa nos outros Deixa subitamente de ter responsáveis
  • 59. Não perseguir coisas brilhantes...
  • 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?
  • 63. Contexto Corrida Entre VS Quem Ganha?
  • 64. Depende... 50 Km Pista Tartan...
  • 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! :)