Inspección continua
 ... o sobre cómo hacer mejor software
Yo
        Antonio Muñiz


@amunizmartin
http://amunizmartin.wordpress.com
Trabajando en @klicap
Antecedentes
Integración continua
• 10 años
• Aún en expansión
• La integración continua pretende mejorar la
  calidad del software, y reducir el tiempo
  necesario para desarrollarlo, reemplazando la
  práctica tradicional de aplicar el control de
  calidad tras completar todo el desarrollo
Integración continua


                    ?
Complejidad?

                            Duplicación?

   Cobertura?

                        Formato?
       Documentación?
Revisión de código
Revisión de código
Revisión de código
Automatización
Inspección continua
Inspección continua
Objetivo: control deuda técnica
Inspección continua
Objetivo: control deuda técnica




                  Deuda =
        coste resolver duplicación +
      coste resolver documentación +
         coste resolver cobertura +
       coste resolver complejidad +
          coste resolver mal diseño
Inspección continua
Objetivo: radiador de información
Nada es gratis

• Modelado estándar del proyecto
• Automatizar el proceso de construcción,
  ejecución de tests, empaquetado, etc
• Encontrar un robot
• Configuración
Concretando

• Maven
• Maven plugins
• Sonar
• Jenkins
            Manos a la obra...
El código fuente
http://git.drupal.org/project/google_analytics.git


• Módulo de Drupal
• Código fuente en Git
• No modelado con ninguna herramienta de
   construcción
El código fuente
   • P.O.M
<groupId>org.openspacesev</groupId>
<artifactId>drupal-google-analytics</artifactId>
<name>Drupal Google Analytics Module</name>
<version>1.0-SNAPSHOT</version>
<build>
    <sourceDirectory></sourceDirectory>
</build>
<properties>
    <sonar.language>php</sonar.language>
    <sonar.phpUnit.shouldRun>false</sonar.phpUnit.shouldRun>
    <sonar.phpUnit.coverage.shouldRun>false</sonar.phpUnit.coverage.shouldRun>
</properties>
Herramientas


• Sonar server
• Sonar Maven Plugin
• Sonar PHP Plugin (PHPDepend, PHP Code
  Sniffer, PHPMD, PHPUnit, PHPCPD)
Herramientas


• Jenkins server
• Jenkins Sonar Plugin
• Jenkins Git Plugin
¡En directo!
¡Gracias!




            Antonio Muñiz

Openspacesevilla2012