SlideShare ist ein Scribd-Unternehmen logo
1 von 41
Downloaden Sie, um offline zu lesen
BUENAS PRÁCTICAS
 Cómo implantarlas en proyectos tecnológicos...
          y no morir en el intento

        Ricard Clau (@ricardclau)
      Betabeers BCN 25-Enero-2013
RICARD CLAU
      Backend Tech Lead @ SocialPoint
He pasado por Emagister, Ulabox y Privalia
              A veces doy charlas
Y de vez en cuando me aceptan PR en Github
VAMOS A HABLAR DE...

• Nuestra   realidad como desarrolladores

• Nuestra   relación con “negocio”

• Buenas     prácticas (qué son y por dónde empezamos)

• Algunas   herramientas y truquillos

• Todo   lo que queráis preguntar
CONCEPTOS SUELTOS

• Tolerancia    al sufrimiento. ¿Es infinita?

• Deuda    técnica. Hay que pagarla o sufrirla

• Time   to market. La preocupación de negocio

• Resistencia    al cambio. Es humano

• Acción   continua

• #rigor. Siempre   prevalece y acaba venciendo
ESCENARIOS HOSTILES

• Consultoras      y empresas de servicios en general

• Proyectos   freelance muy ajustados de presupuesto

• Equipos   con gente acomodada y resistente al cambio

• Equipos   de sistemas perezosos

• Área   de negocio con poco background técnico
DESARROLLADORES

• Nos   sentimos superhéroes

• Sed   insaciable de conocimiento

• Trabajamos   con lo que nos gusta

• Nos   gusta rodearnos de los mejores

• Es   algo más que un trabajo
NEGOCIO

• Nos    piden “cosas”

• Responsables   de conseguir pasta

• No     les entendemos bien

• Nos    ven como una “commodity”

• Bajo   conocimiento tecnológico
NO SOMOS PERFECTOS

• Estaríamos   siempre refactorizando

• Introducimos   bugs... demasiados

• No   sabemos vender nuestras ideas

• Nos   cuesta comunicarnos

• Perdemos  de vista que lo que importa
 es lo que da pasta
ELLOS TAMPOCO

• Features   que se tiran a la basura

• Time   to market, baja calidad

• No aceptan estimaciones
 largas de tiempo

   relegan temas técnicos hasta
• Se
 que es demasiado tarde
PROBLEMAS

DESARROLLO DICE          NEGOCIO CONTESTA

No se saben explicar     No entienden necesidades

Tonterietas de negocio       Feature monetizadora

No tienen ni idea             No conocen negocio

Metodologías ágiles              Rigidez operativa

Gente de master                            Frikis
NO ES UNA GUERRA
  Estamos todos en el mismo barco
       Confianza bidireccional
BUENAS PRÁCTICAS
“Conjunto coherente de acciones que han rendido buen o excelente
   servicio en un determinado contexto y que se espera que, en
          contextos similares, rindan similares resultados.”
¿POR QUÉ USARLAS?

• Nos      ayudan a trabajar mejor

• Es   divertido y genera entusiasmo

• Es   nuestra responsabilidad promoverlas

• .... y   seguirlas

• Se   puede aplicar gradualmente

• Desarrollo      de mayor calidad
¿POR QUÉ NO SE HACE?

• Desconocimiento

• Jefes   sin conocimientos técnicos

• Complicado   de explicar el retorno

• Entornos   viciados

• Resistencia    al cambio
EJEMPLOS RÁPIDOS

• Metodologías    AGILE

• Comunicación         continua y clara

• Retrospectivas        y mejora continua

• Revisiones      de procesos y código

• Integración   continua, Testing, ...

• El   equipo ha de ser una piña!
¿POR DÓNDE EMPIEZO?

• Busca   apoyos, los necesitarás

• Identifica   cosas que molestan y atácalas

• Itera, reinventa, cuestiona, siempre!

• Pequeñas    demostraciones tienen impacto

• Si   no te ves capaz, contrata a alguien que de el empujón
AGILE
Es MUCHO más que una pared llena de post-its
AGILE VA DE...

• Transparencia     y confianza

• El   product owner prioriza negocio

• El   equipo de desarrollo estima

• El   scrum master negocia

• Status    diario para bloqueos

• Retrospectiva     a fin de sprint
LA COSA NO FLUYE SI...

• Hay   tareas unplanned siempre

   interrumpe continuamente al
• Se
 equipo de desarrollo

• Negocio    impone tiempos

• Los   dailys se eternizan

• Las   retrospectivas no arreglan nada
¿POR QUÉ NO SE HACE?

• Miedo   a perder flexibilidad y decisión de timings

• Es   un marco abierto, no hay manual

• Malas   experiencias por mal uso de las metodologías

• Es   muy difícil cambiar un entorno viciado

• Requiere   que gran parte de la empresa lo siga
INTRODUCCIÓN GRADUAL

• Dailys   y retrospectivas

• Listado     de tareas a largo plazo

• Tablón      bien visible

• Generar    y transmitir confianza

         SIEMPRE por qué tardamos
• Explicar
 X días en hacer “esa tontería”
GENTE DE NEGOCIO
    ¿Qué parte os toca?
COMUNICACIÓN

• Habla    con el equipo de desarrollo a menudo

• Cuando   algo es importante para negocio, explica por qué

•Y   cuando algo no lo es, no presiones innecesariamente

• Reconóceles   los méritos cuando han hecho las cosas bien

• Tú   les has fichado, confía en ellos y aprovecha su talento
NO DEBERÍAS...

• Vernos    como un mal necesario

• Ningunearnos    en la estrategia

• No   permitir el desarrollo del equipo

• Temer   que si nos formamos nos
 iremos a la competencia
                                           @empresaurioTIC
• Fichar   a lo loco, en plan cárnica
DESARROLLADORES
   Tenéis mucho que decir y hacer
SI ESTÁS AL PRINCIPIO

• Intenta   elegir tecnologías probadas en marcos similares

• No    te la juegues probando cosas sólo porque son “cool”

• No    confíes en productos mágicos...

• Ni   en consultores de dudosa reputación

• Usa   herramientas open-source

• No    hagas falsas promesas a los que se embarcan contigo
PROYECTOS MADUROS

• Cuesta      mucho cambiar las cosas, pero se puede

• Intenta   introducir algo de Agile

• Intenta   adoptar técnicas de Extreme Programming

• Los   refactors son sanos y necesarios

• El   testing es muy conveniente, aunque sea funcional

• Monitoriza      cuantas más cosas mejor
UTILIZA FRAMEWORKS
   No haces nada tan diferente al resto...
   Ni tu inteligencia supera a la colectiva
EL DÍA A DÍA

• Deja   que cada uno use el IDE / SO que quiera

• Coding    Standards. POR FAVOR

• Control    de versiones moderno (nada anterior a SVN)

• Es   necesario documentar, tanto código como procesos

• Usa   algún issue tracker para gestión de bugs y features

• Entorno     de QA lo más parecido a producción posible
PERFORMANCE

• Minimiza   las requests

• Cachea     todo lo que puedas

• Usa   colas donde puedas

• Lasmicrooptimizaciones
 no valen para nada

• Afina    settings de servidor
EXTREME PROGRAMMING

• Simplicidad, comunicación, retroalimentación, coraje   y respeto

• Pequeñas     mejoras, continuas. Entregas frecuentes

• Programación   en parejas

• Pruebas   unitarias continuas

• El   refactor es bueno

• Propiedad      del código compartida
EXTREME PROGRAMMING
Vale, es una utopía, pero hay cosas que podemos hacer...
TESTING

• Tener   pocos tests es mucho mejor que no tener nada

• Se   puede introducir gradualmente

• Lo   más visual es el testing funcional (Selenium / Sahi)

• Empieza   por lo más crítico (login, pagos, operativa diaria)

• Hasta   el código más oscuro puede ser testeado!
¿POR QUÉ NO TESTEAMOS?

• Desconocimiento

• Prisas    de negocio (no vale como excusa!)

• Es   difícil de explicar en seminarios, charlas, libros, etc...

• Testear   proyectos terminados es una tarea titánica

• Esdifícil justificar las horas invertidas... hasta que
 previenen catástrofes o bajan los bugs
NO SÉ CÓMO EMPEZAR

• Empieza    haciendo macros con Selenium IDE

        instalar Selenium en local, haz una pequeña demo
• Intenta
 y enséñasela a tus jefes

• Si   trabajas con User Stories, considera BDD

• No    te frustres si no entiendes qué es un Mock, un Stub, ...

         en cosas que tengan valor, no te obsesiones con
• Céntrate
 la cobertura 100%
INTEGRACIÓN CONTINUA
    Hay que intentar acercarse a ello
COMPLEMENTAN LOS TESTS

• Métricas

• Monitorización       de servidores

• Análisis   de Logs

• Debugging

• Profiling
CONCLUSIONES

• “Negocio”     no es nuestro enemigo

• Depende     de nosotros hacer las cosas bien

• Se   puede mejorar cada día un poquito

• Hay   muchas herramientas para facilitar las cosas

• Un   mundo mejor es posible! :)

•Y   si aún así no nos dejan... hay muchos sitios donde ir!
MUCHÍSIMAS GRACIAS
   ¡Preguntad lo que queráis, no os cortéis!

        Ricard Clau (@ricardclau)
        ricard.clau@gmail.com
CUMPLEAÑOS FELIZ
   Y que cumplas muchos más...

Weitere ähnliche Inhalte

Was ist angesagt?

Diseño de scrum como una propuesta ágil para la gestión de proyectos version 1
Diseño de scrum como una propuesta ágil para la gestión de proyectos version 1Diseño de scrum como una propuesta ágil para la gestión de proyectos version 1
Diseño de scrum como una propuesta ágil para la gestión de proyectos version 1
JeremyLuiggi1
 
Team Engagement PHP Barcelona 2011
Team Engagement PHP Barcelona 2011Team Engagement PHP Barcelona 2011
Team Engagement PHP Barcelona 2011
Carlos Buenosvinos
 
Keikendo: WPF Jutsu!
Keikendo: WPF Jutsu!Keikendo: WPF Jutsu!
Keikendo: WPF Jutsu!
Keikendo
 

Was ist angesagt? (20)

Scrum ¿Qué es y porqué debería interesarme? - UNMSM
Scrum ¿Qué es y porqué debería interesarme? - UNMSMScrum ¿Qué es y porqué debería interesarme? - UNMSM
Scrum ¿Qué es y porqué debería interesarme? - UNMSM
 
La transformacion DevOps
La transformacion DevOpsLa transformacion DevOps
La transformacion DevOps
 
Design Sprint Remoto
Design Sprint RemotoDesign Sprint Remoto
Design Sprint Remoto
 
Patrones de Scrum orientados al valor
Patrones de Scrum orientados al valorPatrones de Scrum orientados al valor
Patrones de Scrum orientados al valor
 
Vol . VIII Introducción a Kanban
Vol . VIII Introducción a KanbanVol . VIII Introducción a Kanban
Vol . VIII Introducción a Kanban
 
Diseño de scrum como una propuesta ágil para la gestión de proyectos version 1
Diseño de scrum como una propuesta ágil para la gestión de proyectos version 1Diseño de scrum como una propuesta ágil para la gestión de proyectos version 1
Diseño de scrum como una propuesta ágil para la gestión de proyectos version 1
 
Php sevilla 014: Presentación de SymfonyZero
Php sevilla 014: Presentación de SymfonyZeroPhp sevilla 014: Presentación de SymfonyZero
Php sevilla 014: Presentación de SymfonyZero
 
Team Engagement PHP Barcelona 2011
Team Engagement PHP Barcelona 2011Team Engagement PHP Barcelona 2011
Team Engagement PHP Barcelona 2011
 
Que es Scrum?
Que es Scrum?Que es Scrum?
Que es Scrum?
 
Transformación Agile
Transformación AgileTransformación Agile
Transformación Agile
 
Keikendo: WPF Jutsu!
Keikendo: WPF Jutsu!Keikendo: WPF Jutsu!
Keikendo: WPF Jutsu!
 
Importancia del testing en los proyectos
Importancia del testing en los proyectosImportancia del testing en los proyectos
Importancia del testing en los proyectos
 
Ser parte de un equipo de alto desempeño
Ser parte de un equipo de alto desempeñoSer parte de un equipo de alto desempeño
Ser parte de un equipo de alto desempeño
 
Desarrollo ágil Webprendedor UC 2010
Desarrollo ágil Webprendedor UC 2010Desarrollo ágil Webprendedor UC 2010
Desarrollo ágil Webprendedor UC 2010
 
Tw ¿Por qué elegir ágil?
Tw   ¿Por qué elegir ágil? Tw   ¿Por qué elegir ágil?
Tw ¿Por qué elegir ágil?
 
Agile Inception
Agile InceptionAgile Inception
Agile Inception
 
Manejo de Equipos Ágiles en Startups - El "Yo" por el "Nosotros"
Manejo de Equipos Ágiles en Startups - El "Yo" por el "Nosotros"Manejo de Equipos Ágiles en Startups - El "Yo" por el "Nosotros"
Manejo de Equipos Ágiles en Startups - El "Yo" por el "Nosotros"
 
Keikendo
KeikendoKeikendo
Keikendo
 
Agilidad de negocios abordando la incertidumbre
Agilidad de negocios   abordando la incertidumbreAgilidad de negocios   abordando la incertidumbre
Agilidad de negocios abordando la incertidumbre
 
Agile Inception
Agile InceptionAgile Inception
Agile Inception
 

Ähnlich wie Betabeers Barcelona - Buenas prácticas

Be agile my friend - Cómo gestionar proyectos y dormir por las noches
Be agile my friend - Cómo gestionar proyectos y dormir por las nochesBe agile my friend - Cómo gestionar proyectos y dormir por las noches
Be agile my friend - Cómo gestionar proyectos y dormir por las noches
Álvaro Agea Herradón
 
Exposicion capitulo 10
Exposicion capitulo 10Exposicion capitulo 10
Exposicion capitulo 10
Yare LoZada
 
Introducción a TDD
Introducción a TDDIntroducción a TDD
Introducción a TDD
Fran Grau
 
520313818-Metodologias-Agiles.pptx
520313818-Metodologias-Agiles.pptx520313818-Metodologias-Agiles.pptx
520313818-Metodologias-Agiles.pptx
ronald flores
 

Ähnlich wie Betabeers Barcelona - Buenas prácticas (20)

Presentación gestión ágil de proyectos v 1.0
Presentación gestión ágil de proyectos v 1.0Presentación gestión ágil de proyectos v 1.0
Presentación gestión ágil de proyectos v 1.0
 
Software Craftsmanship
Software CraftsmanshipSoftware Craftsmanship
Software Craftsmanship
 
Un dia en la vida de un Software Engineer
Un dia en la vida de un Software EngineerUn dia en la vida de un Software Engineer
Un dia en la vida de un Software Engineer
 
Buenas prácticas vs La vida real
Buenas prácticas vs La vida realBuenas prácticas vs La vida real
Buenas prácticas vs La vida real
 
Be agile my friend - Cómo gestionar proyectos y dormir por las noches
Be agile my friend - Cómo gestionar proyectos y dormir por las nochesBe agile my friend - Cómo gestionar proyectos y dormir por las noches
Be agile my friend - Cómo gestionar proyectos y dormir por las noches
 
How to start a tech company (for non-tech CEOs) - In Spanish
How to start a tech company (for non-tech CEOs) - In SpanishHow to start a tech company (for non-tech CEOs) - In Spanish
How to start a tech company (for non-tech CEOs) - In Spanish
 
Mejores prácticas para migración de Bases de Datos
Mejores prácticas para migración de Bases de DatosMejores prácticas para migración de Bases de Datos
Mejores prácticas para migración de Bases de Datos
 
Pruebas de usabilidad, guerrilla style
Pruebas de usabilidad, guerrilla stylePruebas de usabilidad, guerrilla style
Pruebas de usabilidad, guerrilla style
 
Gestión Ágil de Proyectos: Scrum, Kanban y XP
Gestión Ágil de Proyectos: Scrum, Kanban y XPGestión Ágil de Proyectos: Scrum, Kanban y XP
Gestión Ágil de Proyectos: Scrum, Kanban y XP
 
Metodologías ágiles, Scrum, Kanban y eXtreme Programming
Metodologías ágiles, Scrum, Kanban y eXtreme ProgrammingMetodologías ágiles, Scrum, Kanban y eXtreme Programming
Metodologías ágiles, Scrum, Kanban y eXtreme Programming
 
Scrum y craftsmanship
Scrum y craftsmanshipScrum y craftsmanship
Scrum y craftsmanship
 
Porque estudiar computacion? Experiencias personales
Porque estudiar computacion? Experiencias personalesPorque estudiar computacion? Experiencias personales
Porque estudiar computacion? Experiencias personales
 
Formación Scrum Masters Online alumnos.pptx
Formación Scrum Masters Online alumnos.pptxFormación Scrum Masters Online alumnos.pptx
Formación Scrum Masters Online alumnos.pptx
 
Exposicion capitulo 10
Exposicion capitulo 10Exposicion capitulo 10
Exposicion capitulo 10
 
NoEresTanEspecial-PulpoCon22.pdf
NoEresTanEspecial-PulpoCon22.pdfNoEresTanEspecial-PulpoCon22.pdf
NoEresTanEspecial-PulpoCon22.pdf
 
Eliminando desperdicios en el desarrollo de software
Eliminando desperdicios en el desarrollo de softwareEliminando desperdicios en el desarrollo de software
Eliminando desperdicios en el desarrollo de software
 
Introducción a TDD
Introducción a TDDIntroducción a TDD
Introducción a TDD
 
Cambiando paradigmas
Cambiando paradigmasCambiando paradigmas
Cambiando paradigmas
 
Provocando Crisis para Provocar Innovación
Provocando Crisis para Provocar InnovaciónProvocando Crisis para Provocar Innovación
Provocando Crisis para Provocar Innovación
 
520313818-Metodologias-Agiles.pptx
520313818-Metodologias-Agiles.pptx520313818-Metodologias-Agiles.pptx
520313818-Metodologias-Agiles.pptx
 

Mehr von Ricard Clau

Redis Everywhere - Sunshine PHP
Redis Everywhere - Sunshine PHPRedis Everywhere - Sunshine PHP
Redis Everywhere - Sunshine PHP
Ricard Clau
 
Redis everywhere - PHP London
Redis everywhere - PHP LondonRedis everywhere - PHP London
Redis everywhere - PHP London
Ricard Clau
 

Mehr von Ricard Clau (15)

devopsbcn23.pdf
devopsbcn23.pdfdevopsbcn23.pdf
devopsbcn23.pdf
 
devopsbcn22.pdf
devopsbcn22.pdfdevopsbcn22.pdf
devopsbcn22.pdf
 
DevOps & Infraestructura como código: Promesas Rotas
DevOps & Infraestructura como código: Promesas RotasDevOps & Infraestructura como código: Promesas Rotas
DevOps & Infraestructura como código: Promesas Rotas
 
DevOps Barcelona Conference 2018 - Intro
DevOps Barcelona Conference 2018 - IntroDevOps Barcelona Conference 2018 - Intro
DevOps Barcelona Conference 2018 - Intro
 
Hashicorp at holaluz
Hashicorp at holaluzHashicorp at holaluz
Hashicorp at holaluz
 
What we talk about when we talk about DevOps
What we talk about when we talk about DevOpsWhat we talk about when we talk about DevOps
What we talk about when we talk about DevOps
 
Building a bakery of Windows servers with Packer - London WinOps
Building a bakery of Windows servers with Packer - London WinOpsBuilding a bakery of Windows servers with Packer - London WinOps
Building a bakery of Windows servers with Packer - London WinOps
 
Modern software architectures - PHP UK Conference 2015
Modern software architectures - PHP UK Conference 2015Modern software architectures - PHP UK Conference 2015
Modern software architectures - PHP UK Conference 2015
 
Big Data! Great! Now What? #SymfonyCon 2014
Big Data! Great! Now What? #SymfonyCon 2014Big Data! Great! Now What? #SymfonyCon 2014
Big Data! Great! Now What? #SymfonyCon 2014
 
Speed up your Symfony2 application and build awesome features with Redis
Speed up your Symfony2 application and build awesome features with RedisSpeed up your Symfony2 application and build awesome features with Redis
Speed up your Symfony2 application and build awesome features with Redis
 
Scaling with Symfony - PHP UK
Scaling with Symfony - PHP UKScaling with Symfony - PHP UK
Scaling with Symfony - PHP UK
 
Redis Everywhere - Sunshine PHP
Redis Everywhere - Sunshine PHPRedis Everywhere - Sunshine PHP
Redis Everywhere - Sunshine PHP
 
Redis everywhere - PHP London
Redis everywhere - PHP LondonRedis everywhere - PHP London
Redis everywhere - PHP London
 
Escalabilidad y alto rendimiento con Symfony2
Escalabilidad y alto rendimiento con Symfony2Escalabilidad y alto rendimiento con Symfony2
Escalabilidad y alto rendimiento con Symfony2
 
Desymfony - Servicios
Desymfony  - ServiciosDesymfony  - Servicios
Desymfony - Servicios
 

Kürzlich hochgeladen

redes informaticas en una oficina administrativa
redes informaticas en una oficina administrativaredes informaticas en una oficina administrativa
redes informaticas en una oficina administrativa
nicho110
 

Kürzlich hochgeladen (12)

investigación de los Avances tecnológicos del siglo XXI
investigación de los Avances tecnológicos del siglo XXIinvestigación de los Avances tecnológicos del siglo XXI
investigación de los Avances tecnológicos del siglo XXI
 
EVOLUCION DE LA TECNOLOGIA Y SUS ASPECTOSpptx
EVOLUCION DE LA TECNOLOGIA Y SUS ASPECTOSpptxEVOLUCION DE LA TECNOLOGIA Y SUS ASPECTOSpptx
EVOLUCION DE LA TECNOLOGIA Y SUS ASPECTOSpptx
 
pruebas unitarias unitarias en java con JUNIT
pruebas unitarias unitarias en java con JUNITpruebas unitarias unitarias en java con JUNIT
pruebas unitarias unitarias en java con JUNIT
 
Buenos_Aires_Meetup_Redis_20240430_.pptx
Buenos_Aires_Meetup_Redis_20240430_.pptxBuenos_Aires_Meetup_Redis_20240430_.pptx
Buenos_Aires_Meetup_Redis_20240430_.pptx
 
PROYECTO FINAL. Tutorial para publicar en SlideShare.pptx
PROYECTO FINAL. Tutorial para publicar en SlideShare.pptxPROYECTO FINAL. Tutorial para publicar en SlideShare.pptx
PROYECTO FINAL. Tutorial para publicar en SlideShare.pptx
 
How to use Redis with MuleSoft. A quick start presentation.
How to use Redis with MuleSoft. A quick start presentation.How to use Redis with MuleSoft. A quick start presentation.
How to use Redis with MuleSoft. A quick start presentation.
 
redes informaticas en una oficina administrativa
redes informaticas en una oficina administrativaredes informaticas en una oficina administrativa
redes informaticas en una oficina administrativa
 
Resistencia extrema al cobre por un consorcio bacteriano conformado por Sulfo...
Resistencia extrema al cobre por un consorcio bacteriano conformado por Sulfo...Resistencia extrema al cobre por un consorcio bacteriano conformado por Sulfo...
Resistencia extrema al cobre por un consorcio bacteriano conformado por Sulfo...
 
Avances tecnológicos del siglo XXI 10-07 eyvana
Avances tecnológicos del siglo XXI 10-07 eyvanaAvances tecnológicos del siglo XXI 10-07 eyvana
Avances tecnológicos del siglo XXI 10-07 eyvana
 
Avances tecnológicos del siglo XXI y ejemplos de estos
Avances tecnológicos del siglo XXI y ejemplos de estosAvances tecnológicos del siglo XXI y ejemplos de estos
Avances tecnológicos del siglo XXI y ejemplos de estos
 
Innovaciones tecnologicas en el siglo 21
Innovaciones tecnologicas en el siglo 21Innovaciones tecnologicas en el siglo 21
Innovaciones tecnologicas en el siglo 21
 
EL CICLO PRÁCTICO DE UN MOTOR DE CUATRO TIEMPOS.pptx
EL CICLO PRÁCTICO DE UN MOTOR DE CUATRO TIEMPOS.pptxEL CICLO PRÁCTICO DE UN MOTOR DE CUATRO TIEMPOS.pptx
EL CICLO PRÁCTICO DE UN MOTOR DE CUATRO TIEMPOS.pptx
 

Betabeers Barcelona - Buenas prácticas

  • 1. BUENAS PRÁCTICAS Cómo implantarlas en proyectos tecnológicos... y no morir en el intento Ricard Clau (@ricardclau) Betabeers BCN 25-Enero-2013
  • 2. RICARD CLAU Backend Tech Lead @ SocialPoint He pasado por Emagister, Ulabox y Privalia A veces doy charlas Y de vez en cuando me aceptan PR en Github
  • 3. VAMOS A HABLAR DE... • Nuestra realidad como desarrolladores • Nuestra relación con “negocio” • Buenas prácticas (qué son y por dónde empezamos) • Algunas herramientas y truquillos • Todo lo que queráis preguntar
  • 4. CONCEPTOS SUELTOS • Tolerancia al sufrimiento. ¿Es infinita? • Deuda técnica. Hay que pagarla o sufrirla • Time to market. La preocupación de negocio • Resistencia al cambio. Es humano • Acción continua • #rigor. Siempre prevalece y acaba venciendo
  • 5. ESCENARIOS HOSTILES • Consultoras y empresas de servicios en general • Proyectos freelance muy ajustados de presupuesto • Equipos con gente acomodada y resistente al cambio • Equipos de sistemas perezosos • Área de negocio con poco background técnico
  • 6. DESARROLLADORES • Nos sentimos superhéroes • Sed insaciable de conocimiento • Trabajamos con lo que nos gusta • Nos gusta rodearnos de los mejores • Es algo más que un trabajo
  • 7. NEGOCIO • Nos piden “cosas” • Responsables de conseguir pasta • No les entendemos bien • Nos ven como una “commodity” • Bajo conocimiento tecnológico
  • 8. NO SOMOS PERFECTOS • Estaríamos siempre refactorizando • Introducimos bugs... demasiados • No sabemos vender nuestras ideas • Nos cuesta comunicarnos • Perdemos de vista que lo que importa es lo que da pasta
  • 9. ELLOS TAMPOCO • Features que se tiran a la basura • Time to market, baja calidad • No aceptan estimaciones largas de tiempo relegan temas técnicos hasta • Se que es demasiado tarde
  • 10. PROBLEMAS DESARROLLO DICE NEGOCIO CONTESTA No se saben explicar No entienden necesidades Tonterietas de negocio Feature monetizadora No tienen ni idea No conocen negocio Metodologías ágiles Rigidez operativa Gente de master Frikis
  • 11. NO ES UNA GUERRA Estamos todos en el mismo barco Confianza bidireccional
  • 12. BUENAS PRÁCTICAS “Conjunto coherente de acciones que han rendido buen o excelente servicio en un determinado contexto y que se espera que, en contextos similares, rindan similares resultados.”
  • 13. ¿POR QUÉ USARLAS? • Nos ayudan a trabajar mejor • Es divertido y genera entusiasmo • Es nuestra responsabilidad promoverlas • .... y seguirlas • Se puede aplicar gradualmente • Desarrollo de mayor calidad
  • 14. ¿POR QUÉ NO SE HACE? • Desconocimiento • Jefes sin conocimientos técnicos • Complicado de explicar el retorno • Entornos viciados • Resistencia al cambio
  • 15. EJEMPLOS RÁPIDOS • Metodologías AGILE • Comunicación continua y clara • Retrospectivas y mejora continua • Revisiones de procesos y código • Integración continua, Testing, ... • El equipo ha de ser una piña!
  • 16. ¿POR DÓNDE EMPIEZO? • Busca apoyos, los necesitarás • Identifica cosas que molestan y atácalas • Itera, reinventa, cuestiona, siempre! • Pequeñas demostraciones tienen impacto • Si no te ves capaz, contrata a alguien que de el empujón
  • 17. AGILE Es MUCHO más que una pared llena de post-its
  • 18. AGILE VA DE... • Transparencia y confianza • El product owner prioriza negocio • El equipo de desarrollo estima • El scrum master negocia • Status diario para bloqueos • Retrospectiva a fin de sprint
  • 19. LA COSA NO FLUYE SI... • Hay tareas unplanned siempre interrumpe continuamente al • Se equipo de desarrollo • Negocio impone tiempos • Los dailys se eternizan • Las retrospectivas no arreglan nada
  • 20. ¿POR QUÉ NO SE HACE? • Miedo a perder flexibilidad y decisión de timings • Es un marco abierto, no hay manual • Malas experiencias por mal uso de las metodologías • Es muy difícil cambiar un entorno viciado • Requiere que gran parte de la empresa lo siga
  • 21. INTRODUCCIÓN GRADUAL • Dailys y retrospectivas • Listado de tareas a largo plazo • Tablón bien visible • Generar y transmitir confianza SIEMPRE por qué tardamos • Explicar X días en hacer “esa tontería”
  • 22. GENTE DE NEGOCIO ¿Qué parte os toca?
  • 23. COMUNICACIÓN • Habla con el equipo de desarrollo a menudo • Cuando algo es importante para negocio, explica por qué •Y cuando algo no lo es, no presiones innecesariamente • Reconóceles los méritos cuando han hecho las cosas bien • Tú les has fichado, confía en ellos y aprovecha su talento
  • 24. NO DEBERÍAS... • Vernos como un mal necesario • Ningunearnos en la estrategia • No permitir el desarrollo del equipo • Temer que si nos formamos nos iremos a la competencia @empresaurioTIC • Fichar a lo loco, en plan cárnica
  • 25. DESARROLLADORES Tenéis mucho que decir y hacer
  • 26. SI ESTÁS AL PRINCIPIO • Intenta elegir tecnologías probadas en marcos similares • No te la juegues probando cosas sólo porque son “cool” • No confíes en productos mágicos... • Ni en consultores de dudosa reputación • Usa herramientas open-source • No hagas falsas promesas a los que se embarcan contigo
  • 27. PROYECTOS MADUROS • Cuesta mucho cambiar las cosas, pero se puede • Intenta introducir algo de Agile • Intenta adoptar técnicas de Extreme Programming • Los refactors son sanos y necesarios • El testing es muy conveniente, aunque sea funcional • Monitoriza cuantas más cosas mejor
  • 28. UTILIZA FRAMEWORKS No haces nada tan diferente al resto... Ni tu inteligencia supera a la colectiva
  • 29. EL DÍA A DÍA • Deja que cada uno use el IDE / SO que quiera • Coding Standards. POR FAVOR • Control de versiones moderno (nada anterior a SVN) • Es necesario documentar, tanto código como procesos • Usa algún issue tracker para gestión de bugs y features • Entorno de QA lo más parecido a producción posible
  • 30. PERFORMANCE • Minimiza las requests • Cachea todo lo que puedas • Usa colas donde puedas • Lasmicrooptimizaciones no valen para nada • Afina settings de servidor
  • 31. EXTREME PROGRAMMING • Simplicidad, comunicación, retroalimentación, coraje y respeto • Pequeñas mejoras, continuas. Entregas frecuentes • Programación en parejas • Pruebas unitarias continuas • El refactor es bueno • Propiedad del código compartida
  • 32. EXTREME PROGRAMMING Vale, es una utopía, pero hay cosas que podemos hacer...
  • 33. TESTING • Tener pocos tests es mucho mejor que no tener nada • Se puede introducir gradualmente • Lo más visual es el testing funcional (Selenium / Sahi) • Empieza por lo más crítico (login, pagos, operativa diaria) • Hasta el código más oscuro puede ser testeado!
  • 34. ¿POR QUÉ NO TESTEAMOS? • Desconocimiento • Prisas de negocio (no vale como excusa!) • Es difícil de explicar en seminarios, charlas, libros, etc... • Testear proyectos terminados es una tarea titánica • Esdifícil justificar las horas invertidas... hasta que previenen catástrofes o bajan los bugs
  • 35. NO SÉ CÓMO EMPEZAR • Empieza haciendo macros con Selenium IDE instalar Selenium en local, haz una pequeña demo • Intenta y enséñasela a tus jefes • Si trabajas con User Stories, considera BDD • No te frustres si no entiendes qué es un Mock, un Stub, ... en cosas que tengan valor, no te obsesiones con • Céntrate la cobertura 100%
  • 36. INTEGRACIÓN CONTINUA Hay que intentar acercarse a ello
  • 37. COMPLEMENTAN LOS TESTS • Métricas • Monitorización de servidores • Análisis de Logs • Debugging • Profiling
  • 38. CONCLUSIONES • “Negocio” no es nuestro enemigo • Depende de nosotros hacer las cosas bien • Se puede mejorar cada día un poquito • Hay muchas herramientas para facilitar las cosas • Un mundo mejor es posible! :) •Y si aún así no nos dejan... hay muchos sitios donde ir!
  • 39.
  • 40. MUCHÍSIMAS GRACIAS ¡Preguntad lo que queráis, no os cortéis! Ricard Clau (@ricardclau) ricard.clau@gmail.com
  • 41. CUMPLEAÑOS FELIZ Y que cumplas muchos más...