- Metodología de desarrollo,
- Prácticas de ingeniería.
Comenzamos con las prácticas de ingeniería para luego avanzar en lo metodológico ya que las primeras puede implementarse en un plazo más corto y tienen por objetivo mejorar la calidad de los entregables. Comenzamos con la implementación de quality gates poco intrusivos (revisión de código, análisis estático de código y testing funcional)
- Daily meetings.
- Versionado (
- Llevar a trabajo por versiones.
- Versiones de base de datos.
- Changelog script.
- Tagging.
- Llevar a trabajo por versiones.
- [Siguiente paso] Iteraciones.
- [Siguiente paso] planning.
- [Siguiente paso] proceso.
- Proceso de mejora continua - Retrospectivas.
- [Siguiente paso] Estimaciones vs compromiso. (depende de la versión)
- [Siguiente paso] Unificación de herramientas. (TFS / Jira)
capturar mejor las necesidades del cliente, quién lo necesita, qué nos piden, por qué nos lo piden (valor para el client)
- Aprobación historias de usuario luego de etapa de entendimiento.
- Redacción con formato estandar.
- Criterio de aceptación.
- Criterio de finalización.
- [En progreso] Negociar cierres.
- [En progreso] Unificación de herramienta de seguimiento.
- [Siguiente paso] Planificación/Estimación.
- Revisión de código por pares.
- Análisis estático de código.
- Selección de reglas. (Por el momento utilizamos Basic Correctness Design Rules & Globalization)
- Política de comienzo. (Para comenzar con esto y evitar que el código se degrade hemos deshabilitado todos los warning actuales, de este modo nos aseguramos de no introducir nuevas violaciones)
- Correr durante la compilación.
- [Siguiente paso] Revisión de finding.
- Excepciones (relanzamientos, código de errores, pasaje y retorno de nulos)
- NRE por lo anterior, FirstOrDefault
- [Feedback] Tarda mucho. (revisar) Lo deshabilitamos en local
- [Ongoing] Agregar a la integración continua. Ver qué se ha hecho
- Testing.
- Testing funcional.
- Functional Walkthrough.
- [Siguiente paso] Definición de rol.
- Unit tests.
- Agregar al criterio de finalización.
- Habilitar en el servidor de integración continua.
- Deshabilitar los tests actuales.
- Crear unit tests. Primero revisar lo que tienen y cómo realizan los pruebas actuales.
- Testing automático existente.
- Testing automático. (funcional - Robot framework)???
- Testing funcional.
- Scripts de base de datos despluiegue automáticos.
- Script/tablas definidos.
- [Siguiente paso] Integrar al desarrollo. (versionar, probar)
- [Siguiente paso] Integrar a la integración continua. https://gist.github.com/lontivero/d8e81a98e5e902db1cc596bb9bb12ac3
- Automatización de release notes.
- Script construido.
- Definición de esquema de trabajo.
- [Siguiente paso] Integración continua.
- [Siguiente paso] Integrar al proceso.
- Automatización de subida de reportes durante los despliegues.
- Script disponible y concepto probado.
- Generar script definitivo.
- Integración continua.
- Correr tests automáticos como parte de integración continua.
- Pedir los tests, escoger cuales correr e integrar.
[Definir etapas y objetivos]
- Scripts de base de datos
- Reportes
- Release notes
- Test automáticos - Traerse los tests existentes para detección temprana de probelmas
Capacitar en
- Manejo de Excepciones y,
- Uso de nulos
- Crear DB