Etapas

1. Concepción

  • Consiste en hacer el diseño del producto a entregar.
  • Inicia con el contacto inicial con el cliente, levantamiento inicial de requerimientos y propuesta.
  • Termina con la aprobación del proyecto por parte del cliente.

  • Contacto Inicial.

    • Medios de contacto:
      • Redes Sociales
      • Teléfono (voz)
      • Apps Mensajería (Whatsapp, FB Messenger)
      • Email
      • Referencia Personal
      • Nota: Se recomienda utilizar el mismo medio de contacto con el que el cliente nos contacto de inicio. Posteriormente utilizar un medio mas directo. (Whatsapp, llamadas de voz).
    • Obtener necesidad inicial.
    • Obtener cita, presencial o remota.
  • Levantamiento de Requerimientos Inicial.

    • Obtener información de negocio y de la problemática.
      • Actividad de la empresa.
      • Detalle de los problemas.
      • Descripción del proceso actual:
        • Procedimiento / pasos.
        • Areas / personal involucrado.
        • Pros del proceso actual.
        • Contras del proceso actual.
        • Impacto / Costo en tiempo / dinero del problema / proceso dañado (aprox.).
        • Evidencias del proceso actual (reportes, excel, digital o en papel).
  • Propuesta Inicial.

    • Generar presentación (PPT) basado en template existente.
      • Objetivos del proyecto.
      • Objetivos específico del proyecto.
      • Alcance:
        • Diagramas del nuevo proceso.
        • Funcionalidades con descripción.
        • Necesidades especiales.
        • Integraciones (hardware, software, erp).
        • Mockups (* opcional)
        • Prueba de concepto (* opcional)
      • Plan de trabajo
      • Costo del proyecto.
      • Costo de materiales (* opcional)
      • Condiciones de pago (forma y cantidad de pagos).
      • Diagrama de solución técnica / Diagrama de servicios (* opcional)
      • Necesidades de capacitación (usuarios, puestos clave). Si no se puede identificar, indicar "por definir".
      • Definición de soporte inicial (tiempos y forma) (3, 6 meses)
  • Presentación de Propuesta.

    • Presentar propuesta (reunión física o virtual).
    • Recibir y documentar retroalimentación (Email, nota).
    • Ajuste de propuesta según retroalimentación del cliente.
    • Enviar por correo electrónico.
  • Seguimiento.

    • Comunicación frecuente con el cliente para definir la aceptación o no del proyecto.
    • En caso de aceptación del proyecto:
      • Definición de fecha de arranque del proyecto.
      • Definición y validación de pago inicial.
      • Asignación de recursos humanos y físicos para el proyecto.

2. Construcción

  • Consiste en el desarrollo del producto.
  • Incluye las integraciones de hardware y otros sistemas que se requieran.
  • Se utiliza una metodología basada en desarrollo iterativo. Esto significa que se realizan ciclos cortos de desarrollo (1 o 2 semanas), en donde en cada ciclo se genera funcionalidad adicional útil para el usuario final.

  • Sprint 0.

    • Definición del backlog del producto completo.
    • Definición y captura de actividades en Clickup
    • Configuración de ambiente de desarrollo:
      • Proyectos de Visual Studio / Visual Code / Android Studio:
        • WebAPI (VS)
        • WebApp (VSCode)
        • WinApp (VS)
        • App Android (Android Studio)
      • Ambiente para Sistema de Control de Versiones (visualstudio.com / Azure DevOps):
        • Repositorios GIT (WebApp, App Android)
        • Repositorios TFS (WebAPI, WinApp)
      • Proyecto en Clickup
    • Diseño de entidades
      • Nombre
      • Objetivo
      • Propiedades básicas
      • Metodos básicos
    • Diseño de base de datos inicial
      • Entidades
      • Tablas
      • Catálogos
      • Metodos básicos
    • Definición de perfiles de usuario básicos / permisos
    • Definición de mapa de navegación (pantallas web / forms)
      • Nombre
      • Objetivo
      • Relación entre pantallas
      • Layout general / Mockup
  • Sprint 1.

    • Configuración de elementos gráficos básicos (colores, logos).
    • Implementación de la funcionalidad de login (pantalla de login + pantalla main/dashboard).
    • Configuración de menú principal.
    • Implementación de la funcionalidad de administración de usuarios (pantalla inicial + pantalla de detalle).
    • Implementar funcionalidad de entidades/catálogos genéricos según se requieran en el proyecto:
      • Administración de Clientes.
      • Administración de Proveedores.
      • Administración de Productos.
      • Administración de Plantas.
      • Administración de Sucursales, etc.
  • Sprint 2 al n.

    • Objetivo del sprint (tiempo, funcionalidad para el cliente final).
    • Definición de tareas por sprint.
    • Captura de tareas en ClickUp.
    • Desarrollo / codificación de funcionalidades.
    • Pruebas:
      • Pruebas unitarias y de integración (por equipo de desarrollo).
      • Pruebas funcionales (por equipo de prueba / QA)
      • Correción de funcionalidades con desviaciones.
    • Revisión interna.
    • Liberación en ambiente de prueba / producción.
    • Revisión con el cliente.
    • Peer review de código (complejidad, lógica, comentarios)

3. Implementación

  • Consiste en hacer lo necesario para hacer disponible el sistema al usuario, y pueda ser utilizado.
  • No se realiza necesariamente al final de la etapa de construcción, puede realizarse de manera simultanea dependiendo de las funcionalidades del sistema y del plan de trabajo
  • Incluye las etapas de liberación del sistema a los servidores y dispositivos necesarios, asi como capacitaciones, seguimiento y soporte inicial del producto.

  • Configuración de Ambiente de Producción.

    • Adquisición / configuración de hosting en la nube.
    • Adquisición / configuración de hosting inhouse (servidor en instalaciones del cliente).
    • Configuración de tienda de apps. (Playstore Android/Google, AppStore iOS/Apple, AppGallery Huawei)
    • Configuración de base de datos
  • Instalación de Producto de SW.

    • Compilación de proyectos / módulos.
    • Liberación al ambiente de producción / tienda de apps, de cada proyecto (Copia de archivos, instalación / ajustes a base de datos).
    • Prueba en ambiente de producción.
  • Instalación de Equipos de HW (* opcional).

    • Plan de Instalación (fechas, requisitos, espacio físico, etc).
    • Instalación física.
    • Prueba en ambiente de producción.
  • Capacitación.

    • Generar plan de capacitación (fechas, personal, lugar, etc).
    • Generar documentación necesaria para la capacitación.
    • Generar presentación.
    • Prueba de funcionalidades del sistema en ambiente de prueba, previa a la capacitación.
    • Generar evidencia de la capacitación.
  • Seguimiento Inicial.

    • Soporte inicial, conforme a las definiciones de la propuesta.
      • Registro de incidentes / solución para seguimiento en ClickUp
    • Resolución de defectos en el sw.
    • Desarrollo e implementacion de ajustes menores, conforme a las definiciones de la propuesta.
  • Documentación.

    • Guía rápida por proceso (transversal). (Online)
    • Manual de usuario por funcionalidad del sistema. (Online)

4. Mantenimiento

  • Consiste en hacer revisiones del producto, para detectar ajustes necesarios.

  • Mantenimiento al Proceso.

    • Detectar funcionalidades obsoletas
    • Identificar reglas de negocio internas que puedan cambiar, mejorar o hacerse obsoletas.
    • Identificar reglas de negocio externas que puedan cambiar (nuevas leyes, impuestos).
    • Identificar cambios en la estructura organizacional o en el personal, para planear posible capacitación adicional.
    • Identificar e investigar sobre nuevas tecnologías que puedan aportar mejoras significativas al proceso.
    • A partir de lo identificado, se debe planear el desarrollo de los ajustes o la generación de un nuevo proyecto de mejora.
  • Mantenimiento al Producto.

    • Detectar funcionalidades que requieran mantenimiento frecuente:
      • Mantenimiento de Base de Datos:
        • Limpieza de log.
        • Creación de nuevos índices y reconstrucción de índices existentes, para mejora de rendimiento.
        • Vigilar crecimiento, límites de almacenamiento y limpieza según se requiera.
      • Archivos de logs generados por el sistema
        • Revisión de eventos registrados.
        • Vigilar crecimiento, límites de almacenamiento y limpieza según se requiera.
      • Archivos de datos generados por el sistema (imagenes, documentos, reportes, temporales)
        • Vigilar crecimiento, límites de almacenamiento y limpieza según se requiera.
    • Generar y ejecutar el plan de mantenimiento.

5. Evaluación

  • Es la etapa final de cierre del proyecto.
  • El objetivo es evaluar en general el comportamiento de la solución implementada, identificar rendimiento del equipo, puntos de mejora internas y respecto al producto.

  • Actividades Finales.

    • Evaluación del cumplimiento de objetivos del proyecto.
    • Identificar desviaciones del proyecto contra la planeación.
    • Identificar desviaciones del proceso contra el plan.
    • Detección de nuevas oportunidades.
    • Obtener testimonio del cliente.

Herramientas

  • Visual Studio

  • Visual Code

  • Android Studio

  • SQL Server Manager Studio

  • SQL Server
    2014

  • SQL Server
    2014 SP3

  • SQL Server
    2019

  • Azure DevOps

  • GIT

  • TortoiseGIT

  • Ionic Framework

  • Capacitor

  • ClickUp

  • Insomnia

  • JSON Formatter

  • ionicons

  • flaticons

  • Font Awesome

  • Unsplash

  • PixCut

  • Colormind

Visual Code Extensions

Extension Developer
Angular Language Service Angular
Angular Essentials John Papa
Angular Snippets John Papa
Bracket Pair Colorizer 2 CoenraadS
Color Highlight Sergii N
EditorConfig for VS Code EditorConfig
ESLint Microsoft
GIT History Don Jayamanne
Image Preview Kiss Tamás
ident-rainbow oderwat
Intellicode Microsoft
Intellicode API Usage Examples Microsoft
IntelliSense for CSS class names Zignd
Ionic Ionic
Ionic Essentials Anit Kumar
Live Server Ritwick Dey
Package JSON Upgrade codeandstuff
Paste JSON as Code quicktype
Path Intellisense Christian Kohler
Peacock John Papa
Prettier Prettier
Pretty XML Prateek MAhendrakar
XML Formatter Fabian Laurer
XML Tools Josh Johnson