SlideShare una empresa de Scribd logo
1 de 41
Descargar para leer sin conexión
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...

Más contenido relacionado

La actualidad más candente

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? - UNMSMHiroshi Hiromoto
 
Patrones de Scrum orientados al valor
Patrones de Scrum orientados al valorPatrones de Scrum orientados al valor
Patrones de Scrum orientados al valorMarco Avendaño
 
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 1JeremyLuiggi1
 
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 SymfonyZeroJose Antonio Dorado
 
Team Engagement PHP Barcelona 2011
Team Engagement PHP Barcelona 2011Team Engagement PHP Barcelona 2011
Team Engagement PHP Barcelona 2011Carlos Buenosvinos
 
Keikendo: WPF Jutsu!
Keikendo: WPF Jutsu!Keikendo: WPF Jutsu!
Keikendo: WPF Jutsu!Keikendo
 
Importancia del testing en los proyectos
Importancia del testing en los proyectosImportancia del testing en los proyectos
Importancia del testing en los proyectosSoftware Guru
 
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ñoJuan Miguel Palma Vale
 
Desarrollo ágil Webprendedor UC 2010
Desarrollo ágil Webprendedor UC 2010Desarrollo ágil Webprendedor UC 2010
Desarrollo ágil Webprendedor UC 2010Sebastián Gamboa
 
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"Rosa María Orellana Maldonado
 
Agilidad de negocios abordando la incertidumbre
Agilidad de negocios   abordando la incertidumbreAgilidad de negocios   abordando la incertidumbre
Agilidad de negocios abordando la incertidumbreAlex Canizales Castro
 

La actualidad más candente (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
 

Similar a Betabeers Barcelona - Buenas prácticas

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 realusitdev
 
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
 
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 SpanishMarsBased
 
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 DatosCarlos Gustavo Ruiz
 
Pruebas de usabilidad, guerrilla style
Pruebas de usabilidad, guerrilla stylePruebas de usabilidad, guerrilla style
Pruebas de usabilidad, guerrilla styleJose Leiva
 
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 XPJose Antonio Dorado
 
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 ProgrammingEmergya
 
Porque estudiar computacion? Experiencias personales
Porque estudiar computacion? Experiencias personalesPorque estudiar computacion? Experiencias personales
Porque estudiar computacion? Experiencias personalesEnrique Almeida
 
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.pptxJoseDelaTorre41
 
Exposicion capitulo 10
Exposicion capitulo 10Exposicion capitulo 10
Exposicion capitulo 10Yare LoZada
 
NoEresTanEspecial-PulpoCon22.pdf
NoEresTanEspecial-PulpoCon22.pdfNoEresTanEspecial-PulpoCon22.pdf
NoEresTanEspecial-PulpoCon22.pdfRicard Clau
 
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 softwareMarco Avendaño
 
Introducción a TDD
Introducción a TDDIntroducción a TDD
Introducción a TDDFran Grau
 
Provocando Crisis para Provocar Innovación
Provocando Crisis para Provocar InnovaciónProvocando Crisis para Provocar Innovación
Provocando Crisis para Provocar InnovaciónJorge Zavala
 
520313818-Metodologias-Agiles.pptx
520313818-Metodologias-Agiles.pptx520313818-Metodologias-Agiles.pptx
520313818-Metodologias-Agiles.pptxronald flores
 

Similar a 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
 

Más de Ricard Clau

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 RotasRicard Clau
 
DevOps Barcelona Conference 2018 - Intro
DevOps Barcelona Conference 2018 - IntroDevOps Barcelona Conference 2018 - Intro
DevOps Barcelona Conference 2018 - IntroRicard Clau
 
Hashicorp at holaluz
Hashicorp at holaluzHashicorp at holaluz
Hashicorp at holaluzRicard Clau
 
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 DevOpsRicard Clau
 
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 WinOpsRicard Clau
 
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 2015Ricard Clau
 
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 2014Ricard Clau
 
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 RedisRicard Clau
 
Scaling with Symfony - PHP UK
Scaling with Symfony - PHP UKScaling with Symfony - PHP UK
Scaling with Symfony - PHP UKRicard Clau
 
Redis Everywhere - Sunshine PHP
Redis Everywhere - Sunshine PHPRedis Everywhere - Sunshine PHP
Redis Everywhere - Sunshine PHPRicard Clau
 
Redis everywhere - PHP London
Redis everywhere - PHP LondonRedis everywhere - PHP London
Redis everywhere - PHP LondonRicard Clau
 
Escalabilidad y alto rendimiento con Symfony2
Escalabilidad y alto rendimiento con Symfony2Escalabilidad y alto rendimiento con Symfony2
Escalabilidad y alto rendimiento con Symfony2Ricard Clau
 
Desymfony - Servicios
Desymfony  - ServiciosDesymfony  - Servicios
Desymfony - ServiciosRicard Clau
 

Más de 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
 

Último

FloresMorales_Montserrath_M1S3AI6 (1).pptx
FloresMorales_Montserrath_M1S3AI6 (1).pptxFloresMorales_Montserrath_M1S3AI6 (1).pptx
FloresMorales_Montserrath_M1S3AI6 (1).pptx241522327
 
Agencia Marketing Branding Google Workspace Deployment Services Credential Fe...
Agencia Marketing Branding Google Workspace Deployment Services Credential Fe...Agencia Marketing Branding Google Workspace Deployment Services Credential Fe...
Agencia Marketing Branding Google Workspace Deployment Services Credential Fe...Marketing BRANDING
 
Slideshare y Scribd - Noli Cubillan Gerencia
Slideshare y Scribd - Noli Cubillan GerenciaSlideshare y Scribd - Noli Cubillan Gerencia
Slideshare y Scribd - Noli Cubillan Gerenciacubillannoly
 
Modelo de Presentacion Feria Robotica Educativa 2024 - Versión3.pptx
Modelo de Presentacion Feria Robotica Educativa 2024 - Versión3.pptxModelo de Presentacion Feria Robotica Educativa 2024 - Versión3.pptx
Modelo de Presentacion Feria Robotica Educativa 2024 - Versión3.pptxtjcesar1
 
LINEA DE TIEMPO LITERATURA DIFERENCIADO LITERATURA.pptx
LINEA DE TIEMPO LITERATURA DIFERENCIADO LITERATURA.pptxLINEA DE TIEMPO LITERATURA DIFERENCIADO LITERATURA.pptx
LINEA DE TIEMPO LITERATURA DIFERENCIADO LITERATURA.pptxkimontey
 
PLANEACION DE CLASES TEMA TIPOS DE FAMILIA.docx
PLANEACION DE CLASES TEMA TIPOS DE FAMILIA.docxPLANEACION DE CLASES TEMA TIPOS DE FAMILIA.docx
PLANEACION DE CLASES TEMA TIPOS DE FAMILIA.docxhasbleidit
 
Guía de Registro slideshare paso a paso 1
Guía de Registro slideshare paso a paso 1Guía de Registro slideshare paso a paso 1
Guía de Registro slideshare paso a paso 1ivanapaterninar
 
Análisis de los artefactos (nintendo NES)
Análisis de los artefactos (nintendo NES)Análisis de los artefactos (nintendo NES)
Análisis de los artefactos (nintendo NES)JuanStevenTrujilloCh
 
CommitConf 2024 - Spring Boot <3 Testcontainers
CommitConf 2024 - Spring Boot <3 TestcontainersCommitConf 2024 - Spring Boot <3 Testcontainers
CommitConf 2024 - Spring Boot <3 TestcontainersIván López Martín
 
GonzalezGonzalez_Karina_M1S3AI6... .pptx
GonzalezGonzalez_Karina_M1S3AI6... .pptxGonzalezGonzalez_Karina_M1S3AI6... .pptx
GonzalezGonzalez_Karina_M1S3AI6... .pptx241523733
 
David_Gallegos - tarea de la sesión 11.pptx
David_Gallegos - tarea de la sesión 11.pptxDavid_Gallegos - tarea de la sesión 11.pptx
David_Gallegos - tarea de la sesión 11.pptxDAVIDROBERTOGALLEGOS
 
Herramientas que posibilitan la información y la investigación.pdf
Herramientas que posibilitan la información y la investigación.pdfHerramientas que posibilitan la información y la investigación.pdf
Herramientas que posibilitan la información y la investigación.pdfKarinaCambero3
 
LUXOMETRO EN SALUD OCUPACIONAL(FINAL).ppt
LUXOMETRO EN SALUD OCUPACIONAL(FINAL).pptLUXOMETRO EN SALUD OCUPACIONAL(FINAL).ppt
LUXOMETRO EN SALUD OCUPACIONAL(FINAL).pptchaverriemily794
 
Documentacion Electrónica en Actos Juridicos
Documentacion Electrónica en Actos JuridicosDocumentacion Electrónica en Actos Juridicos
Documentacion Electrónica en Actos JuridicosAlbanyMartinez7
 
tarea de exposicion de senati zzzzzzzzzz
tarea de exposicion de senati zzzzzzzzzztarea de exposicion de senati zzzzzzzzzz
tarea de exposicion de senati zzzzzzzzzzAlexandergo5
 
Análisis de Artefactos Tecnologicos (3) (1).pdf
Análisis de Artefactos Tecnologicos  (3) (1).pdfAnálisis de Artefactos Tecnologicos  (3) (1).pdf
Análisis de Artefactos Tecnologicos (3) (1).pdfsharitcalderon04
 
Trabajando con Formasy Smart art en power Point
Trabajando con Formasy Smart art en power PointTrabajando con Formasy Smart art en power Point
Trabajando con Formasy Smart art en power PointValerioIvanDePazLoja
 
Red Dorsal Nacional de Fibra Óptica y Redes Regionales del Perú
Red Dorsal Nacional de Fibra Óptica y Redes Regionales del PerúRed Dorsal Nacional de Fibra Óptica y Redes Regionales del Perú
Red Dorsal Nacional de Fibra Óptica y Redes Regionales del PerúCEFERINO DELGADO FLORES
 
certificado de oracle academy cetrificado.pdf
certificado de oracle academy cetrificado.pdfcertificado de oracle academy cetrificado.pdf
certificado de oracle academy cetrificado.pdfFernandoOblitasVivan
 

Último (20)

FloresMorales_Montserrath_M1S3AI6 (1).pptx
FloresMorales_Montserrath_M1S3AI6 (1).pptxFloresMorales_Montserrath_M1S3AI6 (1).pptx
FloresMorales_Montserrath_M1S3AI6 (1).pptx
 
Agencia Marketing Branding Google Workspace Deployment Services Credential Fe...
Agencia Marketing Branding Google Workspace Deployment Services Credential Fe...Agencia Marketing Branding Google Workspace Deployment Services Credential Fe...
Agencia Marketing Branding Google Workspace Deployment Services Credential Fe...
 
Slideshare y Scribd - Noli Cubillan Gerencia
Slideshare y Scribd - Noli Cubillan GerenciaSlideshare y Scribd - Noli Cubillan Gerencia
Slideshare y Scribd - Noli Cubillan Gerencia
 
Modelo de Presentacion Feria Robotica Educativa 2024 - Versión3.pptx
Modelo de Presentacion Feria Robotica Educativa 2024 - Versión3.pptxModelo de Presentacion Feria Robotica Educativa 2024 - Versión3.pptx
Modelo de Presentacion Feria Robotica Educativa 2024 - Versión3.pptx
 
LINEA DE TIEMPO LITERATURA DIFERENCIADO LITERATURA.pptx
LINEA DE TIEMPO LITERATURA DIFERENCIADO LITERATURA.pptxLINEA DE TIEMPO LITERATURA DIFERENCIADO LITERATURA.pptx
LINEA DE TIEMPO LITERATURA DIFERENCIADO LITERATURA.pptx
 
PLANEACION DE CLASES TEMA TIPOS DE FAMILIA.docx
PLANEACION DE CLASES TEMA TIPOS DE FAMILIA.docxPLANEACION DE CLASES TEMA TIPOS DE FAMILIA.docx
PLANEACION DE CLASES TEMA TIPOS DE FAMILIA.docx
 
Guía de Registro slideshare paso a paso 1
Guía de Registro slideshare paso a paso 1Guía de Registro slideshare paso a paso 1
Guía de Registro slideshare paso a paso 1
 
Análisis de los artefactos (nintendo NES)
Análisis de los artefactos (nintendo NES)Análisis de los artefactos (nintendo NES)
Análisis de los artefactos (nintendo NES)
 
CommitConf 2024 - Spring Boot <3 Testcontainers
CommitConf 2024 - Spring Boot <3 TestcontainersCommitConf 2024 - Spring Boot <3 Testcontainers
CommitConf 2024 - Spring Boot <3 Testcontainers
 
GonzalezGonzalez_Karina_M1S3AI6... .pptx
GonzalezGonzalez_Karina_M1S3AI6... .pptxGonzalezGonzalez_Karina_M1S3AI6... .pptx
GonzalezGonzalez_Karina_M1S3AI6... .pptx
 
David_Gallegos - tarea de la sesión 11.pptx
David_Gallegos - tarea de la sesión 11.pptxDavid_Gallegos - tarea de la sesión 11.pptx
David_Gallegos - tarea de la sesión 11.pptx
 
Herramientas que posibilitan la información y la investigación.pdf
Herramientas que posibilitan la información y la investigación.pdfHerramientas que posibilitan la información y la investigación.pdf
Herramientas que posibilitan la información y la investigación.pdf
 
LUXOMETRO EN SALUD OCUPACIONAL(FINAL).ppt
LUXOMETRO EN SALUD OCUPACIONAL(FINAL).pptLUXOMETRO EN SALUD OCUPACIONAL(FINAL).ppt
LUXOMETRO EN SALUD OCUPACIONAL(FINAL).ppt
 
Documentacion Electrónica en Actos Juridicos
Documentacion Electrónica en Actos JuridicosDocumentacion Electrónica en Actos Juridicos
Documentacion Electrónica en Actos Juridicos
 
El camino a convertirse en Microsoft MVP
El camino a convertirse en Microsoft MVPEl camino a convertirse en Microsoft MVP
El camino a convertirse en Microsoft MVP
 
tarea de exposicion de senati zzzzzzzzzz
tarea de exposicion de senati zzzzzzzzzztarea de exposicion de senati zzzzzzzzzz
tarea de exposicion de senati zzzzzzzzzz
 
Análisis de Artefactos Tecnologicos (3) (1).pdf
Análisis de Artefactos Tecnologicos  (3) (1).pdfAnálisis de Artefactos Tecnologicos  (3) (1).pdf
Análisis de Artefactos Tecnologicos (3) (1).pdf
 
Trabajando con Formasy Smart art en power Point
Trabajando con Formasy Smart art en power PointTrabajando con Formasy Smart art en power Point
Trabajando con Formasy Smart art en power Point
 
Red Dorsal Nacional de Fibra Óptica y Redes Regionales del Perú
Red Dorsal Nacional de Fibra Óptica y Redes Regionales del PerúRed Dorsal Nacional de Fibra Óptica y Redes Regionales del Perú
Red Dorsal Nacional de Fibra Óptica y Redes Regionales del Perú
 
certificado de oracle academy cetrificado.pdf
certificado de oracle academy cetrificado.pdfcertificado de oracle academy cetrificado.pdf
certificado de oracle academy cetrificado.pdf
 

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