El proceso de desarrollo con
 herramientas Open Source
       José Juan Reyes Zuñiga
Un poco de mí...
Desarrollador Java - Groovy

  9 años de experiencia en desarrollo

Editor en SpringHispano.org

Co-fundador de grails.org.mx

@neodevelop

Trabajo en SynergyJ.com ?:D
Agenda

Back to school

Proceso de desarrollo de software

  Construcción del proyecto

  Codificación

  Integración continua
Regresando a la
       escuela...
Nos enseñaron el ciclo(básico) de vida de los
sistemas de información...

  Análisis

  Diseño

  Desarrollo

  Implementación
Metodologías
Hay varias, pero no hablaremos de eso...
Hablemos de...
Lo que nos ha funcionado....

Lo que nos gusta usar para desarrollar...

Lo que nos ha hecho más productivos...

Los que no da control del proceso de
desarrollo...

Lo que nos permite visualizar el proceso de
desarrollo...
Para...
Proceso de desarrollo



Construcción                  Integración
               Codificación
del proyecto                   Continua
Sistemas operativos
¿Cómo comenzamos un
proyecto de software?
Incluso...
Hay muchas otras herramientas más...

Podríamos incluso escribir la propia, ya que:

  Cada proceso de construcción es ‘único’

  A menudo diferentes proyectos necesitan
  diferentes formas de ser construidos

Sin embargo, nos ayudamos mucho de las ya
existentes...
Lo importante es...

Simplificar la creación del proyecto

Tener una estructura bien definida

Que el equipo de trabajo conozca la
estructura e incluso conozca las convenciones

Distribuir la estructura del proyecto lo más
fácil posible
Una vez construido...
       Let’s code !!!
Codificación
Editores de texto

Control de versiones

   Centralizado

   Distribuido

IDE(Integrated Development Environment)

Navegadores

   Plugins y extensiones
Editores de texto
Control de versiones
IDE
¿Cómo mejoramos la
administración del proyecto?
Integración Continua
Es el proceso de construir software con cada
cambio enviado al repositorio de control de
versiones

Puede ser explicado con patrones y anti-
patrones

El uso convencional de CI se límita a
construir y probar, pero podemos llevarlo un
poco más lejos
Disparando la
Integración Continua
Un escenario breve sería cuando un desarrollador
envía un cambio y debe de contar con:

  Una conexión al repositorio de cambios

  Un script de construcción automático

  Un mecanismo de retroalimentación

  Un proceso para integrar los cambios en el
  código fuente
Algunos patrones y anti
       patrones
 Private Workspace   Continous feedback

 Repository          Scripted database

 Mainline            Automated tests

 Task level commit   Unified deployment

 Automated build     Algunos más...

 Binary Integrity
¿Y las herramientas...?
Pero aún faltan...


Issue tracker

Virtualization

Testing tools

Otras más...
Son varias
herramientas...
Es cuestión de práctica...
¡¡¡ Gracias !!!
@neodevelop - @synergyj
  http://synergyj.com

El proceso de desarrollo con herramientas Open Source