Madrid Management 3.0
Desarrollando Software
OpenSource de calidad:
el día a día de un ingeniero en Liferay
Esther Sanz
Manuel de la Peña
Qué es LIFERAY?
Crecimiento
continuo
Colaboración
Culture
Empresa
Los Angeles, 2004
17 offices, 2014
Desde 2000
Open Source
Software
Project
Aplicación JEE.
Embebe un
contenedor OSGi
Liferay Portal 7.0
JSR-168, JSR-286,
JSR-362
y aplicaciones/
microservicios OSGi
Liferay Plugins
JDK7
JVM
PostgreSQL,
MySQL, Oracle, MS
SQL Server, Sybase,
DB2
Base de Datos
Apache Tomcat,
JBoss, GlasshFish,
Resin, JonAS,
Weblogic,
WebSphere
App Server
LIFERAY Stack
GARTNER: De Visionarios a Líderes
Niche Players! Visionaries!
Leaders!Challengers! Leaders
Visionaries
Challengers
Niche players
150+personas
Liferay Engineering
Principios Lean
Los ingenieros tienen voz
Buscando el talento en cualquier parte del mundo
Personas ALTAMENTE MOTIVADAS
y de granTALENTO
Ingenieros junto con la colaboración de nuestra Comunidad
Equipo muy ÁGIL y PRODUCTIVO
LIFERAY engineering en el mundo
ISO 25000 Software Quality Requirement Evaluation
QUÉ ES CALIDAD PARA NOSOTROS?
No es sólo una cuestión de errores encontrados
Eficiente
Producto con gran rendimiento y
alta compatibilidad con los entornos
más comunes
Fiable
Calidad percibida por nuestros
clientes
Usable
Fácil de aprender a usar
Contiene las funcionalidad más
demandadas por el mercado
Mantenible
Fácil de mantener y
evolucionar.
Fácil de actualizar
Producto
Excelente
Calidad como algo intrínseco al
software
Calidad, ¿el “último paso”?
Proceso de desarrollo inicial
Desarrollo
Revisiones de
código
Merge
to Master Build OK?
PM review
OK?
QA test manual
QA test
automatizado
Portal Repository
Si Si
No
CI Server: ejecuta
los test unitarios
y de integración
No -> Rollback
Documentación
Integrando el proceso de calidad
en el proceso de desarrollo
Buscando un ritmo Sostenible
Aumentando la responsabilidad a través de la
autonomía
Cross-functional teams
Responsabilidad
clara
Definir claramente
cuales son las
responsabilidades de
cada equipo. Cada
equipo debe ser
totalmente responsable
de su producto
Multidisciplinar
Organización en equipos
que contienen todos los
perfiles necesarios para
desarrollar el producto:
UX designer, developer,
tester, product manager,
documentation.
Controles
adecuados
Definir políticas que
ayuden a los miembros
del equipo a priorizar el
trabajo y tomar decisiones
informadas que estén en
concordancia con el
objetivo global
La calidad es responsabilidad
de todos
Cada equipo es responsable de la calidad de sus
productos
El sentimiento de
propiedad es la
clave para impulsar
las mejoras
Autonomía + Responsabilidad = PROPIEDAD
Construyendo
nuestra
red de
seguridad
Construyendo
nuestra
red de seguridad
Paso 1: del roll back al Pull
Request tester y la Integración
Continua
http://nathaliagomes.deviantart.com/art/Jon-Snow-from-the-Wall-397431314
Vigilante de la salud
del build
The build WATCHER
Proceso de desarrollo inicial
Desarrollo
Revisiones de
código
Merge
to Master Build OK?
PM review
OK?
QA test manual
QA test
automatizado
Portal Repository
Si Si
No
Encargado de
mantener la build
en verde
CI Server: ejecuta
los test unitarios
y de integración
No -> Rollback
Documentación
Proceso de desarrollo con PR tester
Desarrollo
Revisiones
de código
Merge
to Master
PR Tester
OK?
PM review
OK?
QA test
manual
QA test
automatizado
Portal Repository
Si
No
CI Server: ejecuta
los test unitarios
y de integración
Documentación
No
Si
Pull Request Tester
Paso 2: Continuos Delivery &
Continuous Deployment
Paso 3: de las pruebas
funcionales manuales al
Exploratory Testing
Proceso de desarrollo anterior
Desarrollo
Revisiones
de código
Merge
to Master
PR Tester
OK?
PM review
OK?
QA test
manual
QA test
automatizado
Portal Repository
Si
No
CI Server: ejecuta
los test unitarios
y de integración
Documentación
No
Si
Proceso de desarrollo actual
Desarrollo
Revisiones
de código
Merge
to Master
PR Tester
OK?
PM review
OK?
QA test
manual
QA test
automatizado
Portal Repository
Si
No
CI Server: ejecuta
los test unitarios
y de integración
Exploratory
test
Documentación
No
Si
El equipo decide
que casos de uso se
automatizan
¿Qué dicen los datos?
Historias desarrolladas en 2014
Tiempo invertido en desarrollar una historia = 13 semanas de media
Este tiempo comprende desde el estado Selected for Development hasta Closed
Tiempo invertido en Testing (2014)
Tiempo invertido en testing = 7 semanas de media
46% del tiempo total se invierte en probar la nueva funcionalidad
Historias desarrolladas en 2015
Tiempo invertido en desarrollar una historia = 9 semanas de media
El tiempo de entrega de una historia se ha reducido en un 30%
Tiempo invertido en Testing (2015)
Tiempo invertido en testing = 3 semanas de media
El tiempo invertido en probar la nueva funcionalidad se ha reducido en un 50%
Paso 4: Impulsando la
colaboración de nuestra
comunidad
Contribuciones
Se puede contribuir
con una idea de
mejora, resolviendo un
bug o mejorando la
documentación,
contestando a una
pregunta del foro, o
haciendo traducciones.
Aquellas personas que
se descargan las
versiones de nuestro
producto y prueban
nuestras nuevas
funcionalidades y nos
dan feedback sobre
ellas
Liferay Community
Expedition
Iniciativas para la Comunidad
Bug Squad
Equipo voluntario de
miembros de la
comunidad que nos da
feedback para mejorar
la calidad y usabilidad
de nuestro producto
Mirando al futuro
Seguir mejorando: foco en CALIDAD
Test funcionales
automatizados
antes del commit
Git flow y
Repositorios por
equipos
Modularización del
Producto (OSGI)
Herramientas de
análisis estáticos
de código (SONAR)
Preguntas
Síguenos: @mdelapenya
Gracias
Thanks
@esthersanzp
Esther Sanz Pastor
Lean Project Manager
Esther Sanz trabaja en Liferay como Lean Project Manager,
en su día a día ayuda a los equipos del departamento de
Ingeniería a mejorar de forma continúa para desarrollar
software con alta calidad, para ello usa metodologías Lean.
Previamente, estuvo trabajando como consultora de lean en
diversos proyectos alrededor del mundo, ayudando a
proyectos de software con graves problemas a mejorar su
eficiencia y el bienestar de las personas implicadas.
Está convencida que Lean va más allá de un conjunto de
herramientas a aplicar allá donde haya problemas, para ella
es una filosofía que te conduce a mejorar cada día aplicable
en todos los aspectos de la vida (personal y profesional)
@estheranzp
https://es.linkedin.com/in/esthersanzp
www.liferay.com/web/esther.sanz/blog
Acerca de Nosotros
Manuel de la Peña
Software Engineer
Manuel trabaja como Ingeniero de Software en el equipo de
Infraestructura de Tests, donde está mejorando los procesos
de desarrollo en testing mediante automatización en contextos
de Integración y Entrega Continua.
Antes de unirse a Liferay en el 2011, Manuel trabajaba para
Indra como consultor Liferay, desarrollando portales para la
Administración Pública española.
Manuel es Ingeniero Técnico en Informática de Gestión, por la
Universidad Nacional de Educación a Distancia, España y
cursa un master de Investigación en Ingeniería del Software y
Sistemas Informáticos.
@mdelapenya
https://es.linkedin.com/in/mdelapenya
www.liferay.com/web/manuel.delapenya/blog
Acerca de Nosotros
Madrid Management 3.0

Desarrollando software open source de calidad

  • 1.
  • 2.
    Desarrollando Software OpenSource decalidad: el día a día de un ingeniero en Liferay Esther Sanz Manuel de la Peña
  • 4.
    Qué es LIFERAY? Crecimiento continuo Colaboración Culture Empresa LosAngeles, 2004 17 offices, 2014 Desde 2000 Open Source Software Project
  • 5.
    Aplicación JEE. Embebe un contenedorOSGi Liferay Portal 7.0 JSR-168, JSR-286, JSR-362 y aplicaciones/ microservicios OSGi Liferay Plugins JDK7 JVM PostgreSQL, MySQL, Oracle, MS SQL Server, Sybase, DB2 Base de Datos Apache Tomcat, JBoss, GlasshFish, Resin, JonAS, Weblogic, WebSphere App Server LIFERAY Stack
  • 10.
    GARTNER: De Visionariosa Líderes Niche Players! Visionaries! Leaders!Challengers! Leaders Visionaries Challengers Niche players
  • 11.
    150+personas Liferay Engineering Principios Lean Losingenieros tienen voz Buscando el talento en cualquier parte del mundo Personas ALTAMENTE MOTIVADAS y de granTALENTO Ingenieros junto con la colaboración de nuestra Comunidad Equipo muy ÁGIL y PRODUCTIVO
  • 12.
  • 13.
    ISO 25000 SoftwareQuality Requirement Evaluation
  • 14.
    QUÉ ES CALIDADPARA NOSOTROS? No es sólo una cuestión de errores encontrados Eficiente Producto con gran rendimiento y alta compatibilidad con los entornos más comunes Fiable Calidad percibida por nuestros clientes Usable Fácil de aprender a usar Contiene las funcionalidad más demandadas por el mercado Mantenible Fácil de mantener y evolucionar. Fácil de actualizar Producto Excelente
  • 15.
    Calidad como algointrínseco al software
  • 16.
  • 19.
    Proceso de desarrolloinicial Desarrollo Revisiones de código Merge to Master Build OK? PM review OK? QA test manual QA test automatizado Portal Repository Si Si No CI Server: ejecuta los test unitarios y de integración No -> Rollback Documentación
  • 20.
    Integrando el procesode calidad en el proceso de desarrollo Buscando un ritmo Sostenible
  • 21.
    Aumentando la responsabilidada través de la autonomía Cross-functional teams Responsabilidad clara Definir claramente cuales son las responsabilidades de cada equipo. Cada equipo debe ser totalmente responsable de su producto Multidisciplinar Organización en equipos que contienen todos los perfiles necesarios para desarrollar el producto: UX designer, developer, tester, product manager, documentation. Controles adecuados Definir políticas que ayuden a los miembros del equipo a priorizar el trabajo y tomar decisiones informadas que estén en concordancia con el objetivo global
  • 22.
    La calidad esresponsabilidad de todos Cada equipo es responsable de la calidad de sus productos
  • 23.
    El sentimiento de propiedades la clave para impulsar las mejoras Autonomía + Responsabilidad = PROPIEDAD
  • 25.
  • 26.
    Paso 1: delroll back al Pull Request tester y la Integración Continua
  • 27.
  • 29.
    Proceso de desarrolloinicial Desarrollo Revisiones de código Merge to Master Build OK? PM review OK? QA test manual QA test automatizado Portal Repository Si Si No Encargado de mantener la build en verde CI Server: ejecuta los test unitarios y de integración No -> Rollback Documentación
  • 30.
    Proceso de desarrollocon PR tester Desarrollo Revisiones de código Merge to Master PR Tester OK? PM review OK? QA test manual QA test automatizado Portal Repository Si No CI Server: ejecuta los test unitarios y de integración Documentación No Si
  • 31.
  • 32.
    Paso 2: ContinuosDelivery & Continuous Deployment
  • 34.
    Paso 3: delas pruebas funcionales manuales al Exploratory Testing
  • 35.
    Proceso de desarrolloanterior Desarrollo Revisiones de código Merge to Master PR Tester OK? PM review OK? QA test manual QA test automatizado Portal Repository Si No CI Server: ejecuta los test unitarios y de integración Documentación No Si
  • 36.
    Proceso de desarrolloactual Desarrollo Revisiones de código Merge to Master PR Tester OK? PM review OK? QA test manual QA test automatizado Portal Repository Si No CI Server: ejecuta los test unitarios y de integración Exploratory test Documentación No Si El equipo decide que casos de uso se automatizan
  • 37.
  • 38.
    Historias desarrolladas en2014 Tiempo invertido en desarrollar una historia = 13 semanas de media Este tiempo comprende desde el estado Selected for Development hasta Closed
  • 39.
    Tiempo invertido enTesting (2014) Tiempo invertido en testing = 7 semanas de media 46% del tiempo total se invierte en probar la nueva funcionalidad
  • 40.
    Historias desarrolladas en2015 Tiempo invertido en desarrollar una historia = 9 semanas de media El tiempo de entrega de una historia se ha reducido en un 30%
  • 41.
    Tiempo invertido enTesting (2015) Tiempo invertido en testing = 3 semanas de media El tiempo invertido en probar la nueva funcionalidad se ha reducido en un 50%
  • 42.
    Paso 4: Impulsandola colaboración de nuestra comunidad
  • 43.
    Contribuciones Se puede contribuir conuna idea de mejora, resolviendo un bug o mejorando la documentación, contestando a una pregunta del foro, o haciendo traducciones. Aquellas personas que se descargan las versiones de nuestro producto y prueban nuestras nuevas funcionalidades y nos dan feedback sobre ellas Liferay Community Expedition Iniciativas para la Comunidad Bug Squad Equipo voluntario de miembros de la comunidad que nos da feedback para mejorar la calidad y usabilidad de nuestro producto
  • 44.
  • 45.
    Seguir mejorando: focoen CALIDAD Test funcionales automatizados antes del commit Git flow y Repositorios por equipos Modularización del Producto (OSGI) Herramientas de análisis estáticos de código (SONAR)
  • 46.
  • 47.
  • 48.
    Esther Sanz Pastor LeanProject Manager Esther Sanz trabaja en Liferay como Lean Project Manager, en su día a día ayuda a los equipos del departamento de Ingeniería a mejorar de forma continúa para desarrollar software con alta calidad, para ello usa metodologías Lean. Previamente, estuvo trabajando como consultora de lean en diversos proyectos alrededor del mundo, ayudando a proyectos de software con graves problemas a mejorar su eficiencia y el bienestar de las personas implicadas. Está convencida que Lean va más allá de un conjunto de herramientas a aplicar allá donde haya problemas, para ella es una filosofía que te conduce a mejorar cada día aplicable en todos los aspectos de la vida (personal y profesional) @estheranzp https://es.linkedin.com/in/esthersanzp www.liferay.com/web/esther.sanz/blog Acerca de Nosotros
  • 49.
    Manuel de laPeña Software Engineer Manuel trabaja como Ingeniero de Software en el equipo de Infraestructura de Tests, donde está mejorando los procesos de desarrollo en testing mediante automatización en contextos de Integración y Entrega Continua. Antes de unirse a Liferay en el 2011, Manuel trabajaba para Indra como consultor Liferay, desarrollando portales para la Administración Pública española. Manuel es Ingeniero Técnico en Informática de Gestión, por la Universidad Nacional de Educación a Distancia, España y cursa un master de Investigación en Ingeniería del Software y Sistemas Informáticos. @mdelapenya https://es.linkedin.com/in/mdelapenya www.liferay.com/web/manuel.delapenya/blog Acerca de Nosotros
  • 50.