lunes, 2 de abril de 2018

Requerimientos


La característica principal de este sistema es que se pretende incrementar la venta de los repuestos, aumentar la satisfacción del cliente, seleccionar de forma acertada los técnicos especializados que permitan cumplir con las órdenes, asegurar que los repuestos que estén dentro del almacén sean los requeridos para agilizar la alta rotación del inventario y, asimismo, se intenta diseñar una aplicación que sea agradable al usuario.
El sistema contará con un menú que tendrá los siguientes rubros:
·         DashBoard: estas pantallas contienen cuadros comparativos y graficas de la gestión del servicio mensual y diarias, mostrando los técnicos disponibles y su ubicación.

·         Gestión Clientes: muestra un listado de los clientes registrados con las opciones de registrar nuevo cliente eliminarlos y editarlos.

·         Gestión Proyectos: Muestra un listado del proyecto que están en negociación de los productos que ofrece la empresa.

·         Gestión Contratos: muestra el listado de los contratos por lo que se le está prestando el servicio al cliente, para identificar bajo que modalidad y que tipo de servicio prestarle.

·         Gestión Técnicos: muestra un listado de los técnicos registrado en la empresa que están disponible.


·         Gestión de Horarios: cada técnico tiene un horario asignado y una agenda a seguir la idea es registrar y programar los mantenimientos preventivos de los equipos a diferentes clientes de acuerdo a los equipos que tenga asignados en su haber, en esta pantalla podrán dar de alta o baja a los equipos y editarlos.

·         Gestión de Equipos: muestra un listado de los equipos a la cual la empresa presta el servicio postventas.

·         Asignaciones de Rutas: en esta pantalla el usuario podrá ver los diferentes equipos que han sido reportado podrán ser asignados a los técnicos que estén disponible al momento, se mostrara un mapa para que el usuario pueda identificar la distribución de los equipos reportado vs la ubicación del técnico.

·         Monitoreo del técnico: es una pantalla donde podrán ver el tiempo y ubicación que el técnico tiene en el cliente.

·         Resolución de incidentes: pantalla que muestra el estado en que el técnico encontró el equipo y el estado en que lo dejo si está pendiente por algún repuesto 

·         Reportes de casos asignados: muestra un reporte de los casos que están abiertos y si están o no asignados.

·         Reportes de Casos cerrados: Muestra un reporte de los casos que han sido cerrado su resolución y su detalle de solución.


Metodología


La metodología que se utilizara para el desarrollo de este proyecto es la XP (eXtreme Programming), la cual es una metodología de desarrollo de la ingeniería de software formulada por Kent Beck, autor del primer libro sobre la materia, Extreme Programming Explained: Embrace Change (1999). Es el más destacado de los procesos ágiles de desarrollo de software. Al igual que éstos, la programación extrema se diferencia de las metodologías tradicionales principalmente en que pone más énfasis en la adaptabilidad que en la previsibilidad. La metodología XP tiene un conjunto importante de reglas y prácticas. En forma genérica, se pueden agrupar en:
1. Planificación.
2. Diseño.
3. Desarrollo.
4. Pruebas
Fase I: Planificación
La metodología XP plantea la planificación como un diálogo continuo entre las partes involucradas en el proyecto, incluyendo al cliente, a los programadores y a los coordinadores o gerentes. El proyecto comienza recopilando “Historias de usuarios”, las que sustituyen a los tradicionales “casos de uso”. Una vez obtenidas las “historias de usuarios”, los programadores evalúan rápidamente el tiempo de desarrollo de cada una.
Si alguna de ellas tiene “riesgos” que no permiten establecer con certeza la complejidad del desarrollo, se realizan pequeños programas de prueba (“spikes”), para reducir estos riesgos. Una vez realizadas estas estimaciones, se organiza una reunión de planificación, con los diversos actores del proyecto (cliente, desarrolladores, gerentes), a los efectos de establecer un plan o cronograma de entregas (“Release Plan”) en los que todos estén de acuerdo. Una vez acordado este cronograma, comienza una fase de iteraciones, en dónde en cada una de ellas se desarrolla, prueba e instala unas pocas “historias de usuarios”.
Según Martín Fowler (uno de los firmantes del “Agile Manifesto”), los planes en XP se diferencian de las metodologías tradicionales en tres aspectos:
1. Simplicidad del plan. No se espera que un plan requiera de un “gurú” con complicados sistemas de gerenciamiento de proyectos.
2. Los planes son realizados por las mismas personas que realizarán el trabajo.
3. Los planes no son predicciones del futuro, sino simplemente la mejor estimación de cómo saldrán las cosas. Los planes son útiles, pero necesitan ser 16 cambiados cuando las circunstancias lo requieren. De otra manera, se termina en situaciones en las que el plan y la realidad no coinciden, y en estos casos, el plan es totalmente inútil.
Fase II: Diseño
La metodología XP hace especial énfasis en los diseños simples y claros. Los conceptos más importantes de diseño en esta metodología son los siguientes:
1. Simplicidad: Un diseño simple se implementa más rápidamente que uno complejo. Por ello XP propone implementar el diseño más simple posible que funcione. Se sugiere nunca adelantar la implementación de funcionalidades que no correspondan a la iteración en la que se esté trabajando.
2. Soluciones “spike”: Cuando aparecen problemas técnicos, o cuando es difícil de estimar el tiempo para implementar una historia de usuario, pueden utilizarse pequeños programas de prueba (llamados “spike”), para explorar diferentes soluciones. Estos programas son únicamente para probar o evaluar una solución, y suelen ser desechados luego de su evaluación.
3. Recodificación: La recodificación (“refactoring”) consiste en escribir nuevamente parte del código de un programa, sin cambiar su funcionalidad, a los efectos de hacerlo más simple, conciso y/o entendible. Muchas veces, al terminar de escribir un código de programa, pensamos que, si lo comenzáramos de nuevo, lo hubiéramos hecho en forma diferente, más clara y eficientemente. Sin embargo, como ya está pronto y “funciona”, rara vez es rescrito.
4. Metáforas: Una “metáfora” es algo que todos entienden, sin necesidad de mayores explicaciones. La metodología XP sugiere utilizar este concepto como una manera sencilla de explicar el propósito del proyecto, y guiar la estructura y arquitectura del mismo. Por ejemplo, puede ser una guía para la nomenclatura de los métodos y las clases utilizadas en el diseño del código. Tener nombres claros, que no requieran de mayores explicaciones, redunda en un ahorro de tiempo.
Fase III: Desarrollo o Codificación
El cliente es una parte más del equipo de desarrollo; su presencia es indispensable en las distintas fases de XP. A la hora de codificar una historia de usuario su presencia es aún más necesaria. No olvidemos que los clientes son los que crean las historias de usuario y negocian los tiempos en los que serán implementadas. Antes del desarrollo de cada historia de usuario el cliente debe especificar detalladamente lo que ésta hará y también tendrá que estar presente cuando se realicen los test que verifiquen que la historia implementada cumple la funcionalidad especificada. La codificación debe hacerse ateniendo a estándares de codificación ya creados. Programar bajo estándares mantiene el código consistente y facilita su comprensión y escalabilidad.
Fase IV: Pruebas
Uno de los pilares de la metodología XP es el uso de test para comprobar el funcionamiento de los códigos que vayamos implementando.
El uso de los test en XP es el siguiente:
·         Se deben crear las aplicaciones que realizarán los test con un entorno de desarrollo específico para test. Hay que someter a test las distintas clases del sistema omitiendo los métodos más triviales.
·         Se deben crear los test que pasarán los códigos antes de implementarlos; en el apartado anterior se explicó la importancia de crear antes los test que el código.
·         Un punto importante es crear test que no tengan ninguna dependencia del código que en un futuro evaluará.
·         Como se comentó anteriormente los distintos test se deben subir al repositorio de código acompañados del código que verifican.
·         Test de aceptación. Los test mencionados anteriormente sirven para evaluar las distintas tareas en las que ha sido dividida una historia de usuario.
·         Al ser las distintas funcionalidades de nuestra aplicación no demasiado extensas, no se harán test que analicen partes de las mismas, sino que las pruebas se realizarán para las funcionalidades generales que debe cumplir el programa especificado en la descripción de requisitos.

Objetivos Generales y Específicos


Objetivos Generales:
                Desarrollar una aplicación web para el proceso de gestión de rutas de órdenes de servicio post venta para la empresa Scan Tech del Estado. Carabobo a través de herramientas de programación y manejadores de bases de datos.
    Objetivos Específicos:
       Determinar los requerimientos funcionales y operativos, mediante el desarrollo de una aplicación web para la gestión de rutas de órdenes de servicio post venta para la empresa Scan Tech C.A del Estado. Carabobo.
       Diseñar los lineamientos tecnológicos y metodológicos
       Construir una aplicación web para la gestión de las ordenes de servicio basada en los procesos y estrategias de mejora en la atención a los clientes y servicios.
       Realizar las pruebas pertinentes a fin de medir el comportamiento del sistema y asegurar el comportamiento adecuado de la herramienta, mediante el plan de control de datos y nivel de asertividad del mismo en situación hostil.


Planteamiento de Problema


    La Empresa Scan Tech C.A del Estado Carabobo tras distintos problemas en la prestación de servicios, tales como déficit en las asignaciones de técnico a las órdenes de servicio, multitud de quejas por parte de los clientes, así como también los vendedores realizan ventas vía telefónica y por lo tanto no se lleva un record de las fallas de los equipos o de las más comunes, se ha visto en la necesidad de corregir dichos problemas mediante el uso de la automatización web a fin de corregir los mismos y evitar la reincidencia con el fin de ofrecer un mejor servicio y mantener la calidad en todos ellos y de esta manera lograr una mejor satisfacción de todos sus clientes.