Entorno de CalidadEntorno de Calidadpara Software Librepara Software LibreOctubre 2013Octubre 2013
Ing. Jose Diaz Ing. Jose Diaz DiazDiaz
JOEDAYZJOEDAYZ
Acerca deAcerca de
Ing. José Amadeo Martin Díaz DíazIng. José Amadeo Martin Díaz Díaz
CEO JoeDayz.pe & Docente en EPE UPCCEO JoeDayz.pe & Docente en EPE UPC
Formación Formación
BlueStar Energy (2007)BlueStar Energy (2007)
Bristol Myers Squibb (2006)Bristol Myers Squibb (2006)
Trans Solutions Systems (2003 - 2005)Trans Solutions Systems (2003 - 2005)
Telefonica Servicios Internet (2000 - 2002)Telefonica Servicios Internet (2000 - 2002)
Egresado de la Pontificia Universidad Católica del Perú (1994 - 2000)Egresado de la Pontificia Universidad Católica del Perú (1994 - 2000)
@jamdiazdiaz@jamdiazdiaz
JoeDayz.pe ClientesJoeDayz.pe Clientes
JoeDayz.pe PartnershipJoeDayz.pe Partnership
AgendaAgenda
Situación actualSituación actual
PropuestaPropuesta
ConclusionesConclusiones
Situación ActualSituación Actual
Se genera un Se genera un TDRTDR
Postulan Postulan los los
proveedoreproveedoress
Se Se seleccionaselecciona
un un proveedorproveedor
Proveedor Proveedor aceptaaceptaservicioservicio
Proveedor inicia Proveedor inicia servicioservicio
Proveedor Proveedor trabaja en trabaja en remoto remoto
o de forma localo de forma local
Coordina con Coordina con GestorGestor
por email o por email o telefonotelefono
Se realizan Se realizan presentacionpresentacion
esesparcialesparciales
QA recibeQA recibelos los
releasesreleases
PropuestaPropuesta
Tener un entorno de calidad similar a Tener un entorno de calidad similar a cloudbess.comcloudbess.com
La implementación se realizara con La implementación se realizara con software libresoftware libre
PropuestaPropuesta
Para este servicio no se ha implementado nexus, Para este servicio no se ha implementado nexus, sonar. Eso puede ser una segunda etapa.sonar. Eso puede ser una segunda etapa.
Herramientas como Herramientas como SeleniumSelenium, , MockitoMockito, , JUnit JUnit si si son recomendadas para pruebas unitarias e son recomendadas para pruebas unitarias e integrales. Son entregables que deberá añadir el integrales. Son entregables que deberá añadir el proveedorproveedor
JMeter JMeter es para pruebas de performance y stresses para pruebas de performance y stress
Guías de instalación, uso en un proyecto de Guías de instalación, uso en un proyecto de prueba y capacitaciónprueba y capacitación
Seguimiento de Seguimiento de incidencias, bugs, incidencias, bugs, mejorasmejoras
MantisBT es un producto MantisBT es un producto web que permitirá una mejor web que permitirá una mejor comunicación entre las comunicación entre las partes involucradaspartes involucradas
Flujo de trabajo: abierto, en Flujo de trabajo: abierto, en progreso, cerrado, duplicado progreso, cerrado, duplicado sobre alguna incidenciasobre alguna incidencia
Notificaciones por e-mail a Notificaciones por e-mail a los involucrados los involucrados
Soporte a archivos adjuntosSoporte a archivos adjuntos
Problemas a solucionarProblemas a solucionarLas incidencias encontradas quedaran registradas, a través Las incidencias encontradas quedaran registradas, a través de, Mantis en la base de datos.de, Mantis en la base de datos.
Se sabrá el estado actual de la incidencia: abierta (recién Se sabrá el estado actual de la incidencia: abierta (recién creada), en progreso, cerrada (atendida). Se puede volver creada), en progreso, cerrada (atendida). Se puede volver a abrir una incidencia.a abrir una incidencia.
Seguimiento exhaustivo con fechas, involucrados y/o Seguimiento exhaustivo con fechas, involucrados y/o responsablesresponsables
A cada incidencia se le adjuntara los documentos A cada incidencia se le adjuntara los documentos involucradosinvolucrados
No hay limite de usuarios, limite de proyectos. No hay limite de usuarios, limite de proyectos.
Controlador de Controlador de VersionesVersiones
Git es un controlador de Git es un controlador de versiones distribuidoversiones distribuido
Guarda el histórico de Guarda el histórico de cada proyecto a nivel de cada proyecto a nivel de itemitem
Te permite trabajar Te permite trabajar offline y onlineoffline y online
Manejar diferentes Manejar diferentes versiones del proyecto e versiones del proyecto e integrarlas a demandaintegrarlas a demanda
Problemas a solucionarProblemas a solucionarNo mas CDs para compartir los entregables.No mas CDs para compartir los entregables.
Se tiene la historia de cada item del proyecto: fecha de Se tiene la historia de cada item del proyecto: fecha de creación, creador, fecha de modificación, autor de la creación, creador, fecha de modificación, autor de la modificación.modificación.
En caso se desee regresar a una version anterior de un item En caso se desee regresar a una version anterior de un item del proyecto esto se hace a elección.del proyecto esto se hace a elección.
Se puede manejar versiones del proyecto. Crear ramas del Se puede manejar versiones del proyecto. Crear ramas del proyecto alternativas y luego integrarlas en la rama principal.proyecto alternativas y luego integrarlas en la rama principal.
El repositorio se convertirá en el punto de partida para la El repositorio se convertirá en el punto de partida para la integración continua que se va a proponer.integración continua que se va a proponer.
BitBucketBitBucket
BitBucket es un BitBucket es un servicio en la nube que servicio en la nube que brinda el servicio de brinda el servicio de hosting para hosting para repositorios Gitrepositorios Git
Cero administración y Cero administración y actualizaciónactualización
Seguridad y/o Seguridad y/o privacidad de los privacidad de los fuentesfuentes
Problemas a solucionarProblemas a solucionar
Al tener los repositorios en la nube los proveedores y Al tener los repositorios en la nube los proveedores y la organización podrán tener disponibilidad de los la organización podrán tener disponibilidad de los fuentes las 24 horas del día, los 365 días del añofuentes las 24 horas del día, los 365 días del año
No se necesita adquirir un servidor exclusivo, No se necesita adquirir un servidor exclusivo, aumentar capacidad de almacenamiento, hardware o aumentar capacidad de almacenamiento, hardware o tener colaboradores dedicadostener colaboradores dedicados
Si se debe tener un colaborador que brinde los Si se debe tener un colaborador que brinde los permisos, administre las cuentas. Dedicación al permisos, administre las cuentas. Dedicación al negocio y no distraerse en cuestiones técnicas de negocio y no distraerse en cuestiones técnicas de instalación o actualizacióninstalación o actualización
MavenMaven
Maven es un gestor de Maven es un gestor de proyectoproyecto
No mas gestión de No mas gestión de dependencias, plugins dependencias, plugins manualmente. Maven manualmente. Maven hará ese trabajo por hará ese trabajo por nosotrosnosotros
Arquitectura estándar, Arquitectura estándar, proceso y flujo de trabajo proceso y flujo de trabajo estándar para desarrollo estándar para desarrollo de proyectosde proyectos
Problemas a solucionarProblemas a solucionar
La gestión de dependencias o librerías va a ser La gestión de dependencias o librerías va a ser ordenada y automatizadaordenada y automatizada
Evitar la duplicidad de dependenciasEvitar la duplicidad de dependencias
Arquitectura de proyecto estándar acorde a buenas Arquitectura de proyecto estándar acorde a buenas practicas de la industria y aprendida de tantos practicas de la industria y aprendida de tantos proyectos desarrollados a nivel mundialproyectos desarrollados a nivel mundial
Uso de plugins probados y recomendados que Uso de plugins probados y recomendados que automatizan muchas tareas que manualmente automatizan muchas tareas que manualmente pueden costar díaspueden costar días
JenkisJenkisEs el actor principal de Es el actor principal de nuestra propuestanuestra propuesta
Es el servidor de Es el servidor de integración continuaintegración continua
Es quien toma el código Es quien toma el código fuente de los repositorios y fuente de los repositorios y ejecuta las tareas ejecuta las tareas programadasprogramadas
Brinda información sobre el Brinda información sobre el estado del proyecto en estado del proyecto en línealínea
Problemas a solucionarProblemas a solucionar
La organización podrá ver día a día el trabajo La organización podrá ver día a día el trabajo de los proveedores en un panel central de de los proveedores en un panel central de tareastareas
Podrá ver si el proveedor ejecuta tareas de Podrá ver si el proveedor ejecuta tareas de compilación, prueba y desplieguecompilación, prueba y despliegue
Si utiliza las herramientas relacionadas con el Si utiliza las herramientas relacionadas con el proyectoproyecto
JMeterJMeter
Aplicación diseñada Aplicación diseñada para realizar pruebas para realizar pruebas de performancede performance
Probar el Probar el comportamiento de comportamiento de la aplicación web la aplicación web bajo condiciones de bajo condiciones de carga extrema carga extrema concurrente concurrente
Problemas a solucionarProblemas a solucionar
Esta es una de las pruebas que se detecto que Esta es una de las pruebas que se detecto que no se realizan en la organización no se realizan en la organización
Con esta herramienta se podrá ver los limites Con esta herramienta se podrá ver los limites de la aplicación en condiciones extremas en un de la aplicación en condiciones extremas en un ambiente similar a producción y ver su ambiente similar a producción y ver su capacidad de atencióncapacidad de atención
JUnit, Mockito, SeleniumJUnit, Mockito, Selenium
Dependencias y Dependencias y librerías para hacer librerías para hacer pruebas unitarias e pruebas unitarias e integralesintegrales
De uso exclusivo De uso exclusivo para desarrolladorespara desarrolladores
Selenium si puede Selenium si puede ser realizada por ser realizada por colaboradores de QA colaboradores de QA
Problemas a solucionarProblemas a solucionar
Hoy por hoy buenas practicas de desarrollo es incluir Hoy por hoy buenas practicas de desarrollo es incluir pruebas unitarias e integrales (entre otras pruebas)pruebas unitarias e integrales (entre otras pruebas)
Hay una garantía de que se ha hecho el esfuerzo por Hay una garantía de que se ha hecho el esfuerzo por cumplir los criterios de aceptación de cada historia de cumplir los criterios de aceptación de cada historia de usuario o caso de usousuario o caso de uso
Se recomienda que al menos existan estas pruebas de Se recomienda que al menos existan estas pruebas de caja blanca en los procesos mas importantes del proyectocaja blanca en los procesos mas importantes del proyecto
Estas pruebas luego pueden ser utilizadas por Jenkins Estas pruebas luego pueden ser utilizadas por Jenkins para que de información a los involucrados si las pruebas para que de información a los involucrados si las pruebas no funcionanno funcionan
No hacer pruebas es como No hacer pruebas es como manejar sin manejar sin cinturón de seguridad cinturón de seguridad
ConclusionesConclusiones
El entorno de calidad no dará opción a que una El entorno de calidad no dará opción a que una consultora no utilice un marco de trabajo y consultora no utilice un marco de trabajo y buenas practicas de desarrollo de softwarebuenas practicas de desarrollo de software
Brindara información día a día de lo que pasa Brindara información día a día de lo que pasa con el proyecto y si se esta trabajando con elcon el proyecto y si se esta trabajando con el
Un perfil junior no sabe como hacer pruebas, Un perfil junior no sabe como hacer pruebas, integración continua. Eso implicara que los integración continua. Eso implicara que los proveedores deberán tener buenos equipos proveedores deberán tener buenos equipos
ConclusionesConclusionesSe debe romper el mito de que esto significa mas tiempo. Será Se debe romper el mito de que esto significa mas tiempo. Será si un tiempo controlado y se tendrá la información necesaria si un tiempo controlado y se tendrá la información necesaria para tomar las medidas correctivas en el momento oportunopara tomar las medidas correctivas en el momento oportuno
Romper el mito de que entonces con un entorno como este se Romper el mito de que entonces con un entorno como este se debe pagar el 200% del proyecto. Se debe buscar tener un buen debe pagar el 200% del proyecto. Se debe buscar tener un buen servicio en tiempo y en presupuesto. servicio en tiempo y en presupuesto.
El costo de desarrollar un proyecto no es lo mas caro si uno lo El costo de desarrollar un proyecto no es lo mas caro si uno lo compara con el soporte post producción a lo largo del tiempo. compara con el soporte post producción a lo largo del tiempo.
Un mal trabajo puede hacer que el proyecto sea insostenible y Un mal trabajo puede hacer que el proyecto sea insostenible y en consecuencia se cancele. Un buen proyecto hará que las en consecuencia se cancele. Un buen proyecto hará que las actualizaciones y mejoras sean en tiempos y presupuestos actualizaciones y mejoras sean en tiempos y presupuestos justos.justos.
www.joedayz.pewww.joedayz.peIng. Jose DiazIng. Jose Diaz
Gracias por su atenciónGracias por su atención
JOEDAYZJOEDAYZ
Top Related