Preparando y diseñando un proyecto informático para los Reyes Magos de Oriente - Jorge Serrano - MVP Visual Developer - Visual Basic

Preparando y diseñando un proyecto informático para los Reyes Magos de Oriente

P.D.: Véase Reyes Magos previamente si no está familiarizado con ellos [Reyes Magos de Oriente].

A veces hay que salirse un poco de lo normal y ser un poco friki en sus entradas... sin llegar al rigor extremo de lo que se publica pero con algo de cariño sobre todo por que se acercan las Navidades.
Aunque nos parezca que está lejos, apenas queda 1 mes para Navidad y ese mes pasa volando, y claro, un informático de pro, no puede dejar de pensar en un jefe de proyectos y un equipo de desarrollo navideño. la toma de requerimientos, el diseño técnico, es decir... lo que montaríamos tecnológicamente hablando, para facilitarles la vida a los Reyes Magos y llevar a buen puerto su proyecto navideño cargado de ilusiones y buenos deseos.

¿Cómo empezaría esta historia?. ¿Qué tecnologías entrarían en juego?. ¿Seremos capaces de llevarlo a cabo?

Déjenme que les diga que lo primero de todo es conocer a nuestros 3 Reyes Magos,... sí sí, Melchor, Gaspar y Baltasar, y entrar en una relación de confianza con ellos y saber bien cuales son sus propósitos.
También debemos recordar que deberán implicarse en el desarrollo del proyecto o casi seguro que resultará ser un fracaso.
Nosotros pondremos en juego toda nuestra experiencia y conocimientos, y con eso y algunos truquitos ocultos que siempre son buenos reservárselos para las ocasiones en las que estaríamos dispuestos a llamar al mismísimo McGiver o a los increíbles Equipo A, lograremos cumplir los objetivos en fechas.

Objetivos:

Parece ser que nuestros 3 Reyes Magos, conocedores de todas las tecnologías habidas y por haber, quieren valerse de la tecnología actual de Microsoft para repartir los regalos navideños de un modo eficiente, seguro y adecuado (¿se imaginan regalarle una triste peonza a Jaimito como hizo erróneamente Santa Claus?).
Han elegido Microsoft porque según ellos, es cool (yo sobre eso no tengo nada más que añadir, lo dice el cliente y además tiene razón).
Según sus pronósticos, los 3 Reyes Magos consideran que con las nuevas tecnologías podrán ser más eficientes para repartir los regalos, pudiendo estar en su pais antes de lo que lo han estado en estos últimos 2000 años.

Y yo creo que lo pueden y podemos hacer posible.

¿Cómo llevar a cabo estas tareas?.

Comenzaremos a tomar los requerimientos oportunos del proceso.
Para ello, nos hemos juntado con los Reyes Magos y con un equipo de tres pajes seleccionados por los propios Reyes Magos.
El equipo de trabajo está formado por lo tanto por 6 personas que nos ayudarán a tomar los requerimientos del proyecto.

Requerimientos:

  • Sólo se admitirán las cartas fechadas entre el día 7 de enero del año en el que se celebra la Navidad y el 6 de enero del año siguiente (año nuevo) [por ejemplo, del 07/01/2010-06/01/2011].

  • Se recogerán todas las notificaciones recibidas por los Reyes Magos:
    * Correos electrónicos.
    * Cartas y postales.
    * Sms.
    * Sobres que los niños van dejando en los centros comerciales y cabalgatas fundamentalmente.

  • Un escáner potente se encargará de leer cada una de las cartas y postales y mediante un proceso OCR de reconocimiento muy potente, se encargará de obtener la información que cada niño ha rellenado.
    Para ello, cada niño deberá haber escrito la carta en letra legible (no es válida la "letra de médico" ya que el sistema no podría reconocerla).
    Si no se reconoce la carta, se eliminará.
    También se entenderá que el niño habrá escrito bien sus datos personales (nombre, apellidos, dirección y edad).
    En caso contrario, la carta se eliminará igualmente.

  • En el caso de los correos electrónicos, esa información será leída por un proceso interno que estará operando durante todo el año.

  • Si un niño envía dos notificaciones, se entenderá que la última es la que tiene valor, suprimiéndose así la anterior.

  • Se deberá crear una base de datos relacional que permita tener bien identificados a los niños.
    El censo adecuado nos facilitará la identificación de la vivienda, dirección, etc del niño.
    En el caso de no disponer de esta dirección, se solicita una dirección alternativa como la dirección de los abuelos, los primos, los tíos o algún amigo o familiar que conozca a los niños en cuestión.

  • Se utilizarán los mapas electrónicos y de satélite para establecer un enlace de la vivienda en la que se pueden dejar los regalos del niño.
    Estos datos se incluirán junto al registro de cada niño (referencia: base de datos relacional anterior).
    Adicionalmente, se identificarán también las coordenadas de GPS de cada vivienda que irá incluida en la ficha del niño.

  • Cada Rey Mago llevará un dispositivo electrónico que identificará en todo momento su situación por GPS y le mostrará un aviso luminoso para que actúe adecuadamene.
    Para facilitar la labor, se le presentará en el dispositivo las coordenadas exactas de la casa en la que debe dejarlos y un listado de los regalos.
    Adicionalmente le mostrará si es posible, un mapa de la casa y una fotografía del edificio en el que debe realizar la entrega.

  • En el caso de que la casa disponga de alarma, se le notificará a uno de sus pajes el pin adecuado para neutralizarla y volverla a activar una vez termine el proceso (el proceso suele durar medio segundo entre que llega el Rey Mago y se realiza la entrega de regalos y sale corriendo, por lo que la alarma apenas percibirá la desconexión y conexión de la misma. Esto se realizará como motivo de seguridad).

  • Si existe algún animal o mascota que pueda poner la misión en peligro, le enviará a uno de sus pajes una señal lumínica de aviso para que le entretenga mientras el Rey Mago realiza sus acciones.

  • Según se vayan entregando los regalos, la aplicación permitirá enviar una marca o flag al gestor de contenido para que indique que la entrega ha quedado realizada.

  • Todos los Reyes Magos y pajes dispondrán de un canal seguro que permita una comunicación entre ellos por medio de algún programa de chateo, mensajes, voz, etc.

    Diseño Técnico:

    Una vez atendidos los requerimientos, vamos a ponernos manos a la obra.

    Sin entrar en demasiados detalles, debemos resumir nuestras tareas de la siguiente forma:

  • Se preparará un sistema con Windows 2008 Server y una base de datos en SQL Server 2008 R2 ó SQL Azure (esto dependerá en buena manera a los estudios económicos que todavía quedan pendientes con el departamento comercial).
    Habrá una base de datos por año.
    Cada información recibida se irá almacenando en su base de datos.
    Así, una petición recibida el 10 de Enero de 2011, irá a la base de datos del 2011 y no a la del 2010.
    El modelo de datos contendrá una tabla con el listado o censo de cada niño en el mundo.

    Esa tabla contendrá los siguientes datos generales:
    * Id
    * Nombre
    * Apellidos
    * Dirección
    * Número
    * Portal
    * Puerta
    * Ciudad
    * Provincia
    * Pais
    * Código Postal
    * Posición GPS de la vivienda
    * Pin Alarma
    * Tiene mascota

    Habrá otra tabla relacionada con la anterior y que contendrá la lista de regalos asociados a cada niño:
    * Id
    * Regalos
    * Flag (entregado, no entregado, imposible entregar)
    * Causa (si procede)

  • Otro sistema dotado con Windows 7 estará conectado a un escáner HP de última generación, capaz de reconocer más de 100 hojas y escritor OCR por minuto.
    Se creará una aplicaión Windows con WPF en Visual Studio 2010 que se encargará de lanzar el proceso de escaneado y de realizar a cabo toda la gestión del proceso.
    La inserción de datos a la base de datos se realizará a través de los servicios del servidor de aplicaciones.
    Para no entorpecer la acción de escaneado y reconocimiento OCR, se creará un servicio Windows en Visual Studio 2010 que se encargará de leer los correos electrónicos y realizar la misma acción de reconocimiento y escritura de datos en el modelo de datos.
    Se abordará un proyecto con WF y Visual Studio 2010 que permita establecer un flujo de trabajo con notificaciones, aprobaciones, etc., del proceso de reconocimiento.

  • Existirá otro sistema operativo Windows 2008 Server que tendrá alojados todos los servicios de la aplicación.
    Todos los servicios del servidor de aplicaciones será desarrollado con orientación a la nube. En este caso se abordará todo el desarrollo pensando en Windows Azure asumiendo las ventajas que nos aporta y la alta disponibilidad a la que tiene que estar el sistema.
    Uno de los servicios desarrollados en WCF y Visual Studio 2010 se encargará de realizar las acciones de registro de los datos escaneados y reconocidos por OCR de los niños con la base de datos.
    Este servicio recibirá tanto los datos de correos electrónicos como escaneados y reconocidos por el OCR de HP.

  • A cada Rey Mago y cada paje, se le suministrará un Windows Phone 7 con un desarrollo a medida para llevar a cabo las tareas encomendadas.
    La aplicación de Windows Phone 7 deberá conectarse con un servicio desarrollado con WCF y que le mostrará la siguiente información general:
    * Un mapa con Bing Maps de la zona en la que se encuentra y con puntos rojos que indican las viviendas en las que aún no ha realizado las entregas o en las que faltan por realizar entregas.
    * Seleccionará un punto rojo y aparecerá las coordenadas de la vivienda, una fotografía de la vivienda y un pequeño listado de las viviendas a visitar.
    * Al hacer clic sobre una vivienda, aparecerá un mapa de la misma y un listado de los regalos a entregar.
    * A cada paje, se le enviará una notificación de si la vivienda tiene alarma y el pin de seguridad de la misma, y si hay alguna mascota, con el fin de que colabore con el Rey Mago en la entrega de regalos sin ningún imprevisto.
    * Cuando el paje active nuevamente la alarma, deberá enviar un aviso de que la entrega se ha llevado a cabo. Es posible que la entrega no se pueda llevar a cabo, por lo que el paje deberá indicar no sólo que la entrega no se pudo llevar a cabo, sino incluso el motivo, para que el comité de seguimiento pueda estudiar el caso con el fin deque no se repita en el futuro.

  • Otro servicio desarrollado en WCF proveerá los servicios que serán consumidos por los dispositivos Windows Phone 7.
    Estos servicios utilizarán en todo momento un acceso y canal seguro para establecer la comunicación.
    Estos servicios registrarán además cada una de las acciones realizadas tal y como veremos más adelante.

  • Con el fin de que cada Rey Mago y los pajes se puedan comunicar entre ellos (por ejemplo, que un niño se despierte antes de tiempo o se haya levantado al servicio dentro de la casa), se habilitará en la aplicación un icono que cambiará de color y que permite idenficar rápidamente lo que ocurre.
    Un icono de color verde indicará que todo está tranquilo.
    Un icono de color naranja, que alguien quiere hablar o enviar un mensaje al Rey Mago o al paje.
    Un icono de color rojo, indica alarma y precaución.
    Cada Rey Mago y paje tendrán un usuario que les identifique entre ellos (a establecer por el cliente).
    Para la comunicación, se utilizará Windows Live Messenger para Windows Phone 7.

  • En todo momento, el servicio WCF principal recogerá un log de registro de sucesos.
    Un servicio de Windows se encargará de recoger la información del log y de alimentar unas tablas que van alojadas a la información anual de la base de datos.
    Ese log será estudiado posteriormente para aplicar mejoras de calidad en los procesos y estudiar posibles problemas y aquellas tareas que se han hecho según lo previsto.
    Para llevar a cabo esta tarea, existirá una aplicación desarrollada en Silverlight 4 que estará disponible en el servidor de aplicaciones.
    Esta aplicación se alimentará de datos extraídos en una minería de datos de la base de datos de SQL Server 2008 R2 y con informes elaborados con Reporting Services, mostrará la información de acuerdos a los filtros establecidos en la aplicación.

    Otros detalles:

  • Como metodología se ha decidido usar Scrum.

  • En todo momento se utilizará Visual Studio Team Foundation Server 2010. Todo lo referente a la metodología de Scrum se gestionará a través del TFS 2010.

  • Como herramientas de desarrollo se utilizará Visual Studio 2010.

  • Se desarrollará todo a través de .NET Framework 4.0.

  • Evidentemente, se llevarán a cabo todas las pruebas unitarias pertinentes.

  • Adicionalmente se preparará un checklist de pruebas funcionales para que sean aceptadas por la parte cliente.

  • Se ha ofrecido la casa de los programadores para la entrega de regalos en las pruebas unitarias, pero el cliente ha desestimado el ofrecimiento, así que ya se nos notificará como se llevarán a cabo esas pruebas cuando llegue el momento.

    Tecnologías utilizadas:

    Atentamente... el equipo de desarrollo de los Reyes Magos Inc.

    Published 22/11/2010 21:00 por Jorge Serrano
    Archivado en: ,
    Comparte este post:
  • Comentarios

    Monday, November 22, 2010 9:28 PM por Javier Torrecilla

    # re: Preparando y diseñando un proyecto informático para los Reyes Magos de Oriente

    Jajajaja que buena entrada!!!

    Pintado así el proyecto me animo!!! :D

    Monday, November 22, 2010 11:16 PM por Juan Irigoyen

    # re: Preparando y diseñando un proyecto informático para los Reyes Magos de Oriente

    y cuando Windows Phone se ponga azul o se quede sin batería o el GPS con el error de 1 a 10 metros provoque que los camellos se tiren por el acantilado, entonces que...., deja a los pobrecitos que sigan con la estrella (principio kiss), que a este paso nos quedamos todos sin regalos...

    Creo que has pedido demasiados regalos y solo te van a traer Visual Basic 6 SP 35 :)

    Tuesday, November 23, 2010 9:47 AM por Alberto Diaz Martin

    # re: Preparando y diseñando un proyecto informático para los Reyes Magos de Oriente

    Muy buenos, si señor!!!! para escribir un libro.

    Como te comenté, yo incluiría una gestión de riesgos, veo muchos en el proyecto. No me gustaría que tengamos un problema con el OCR y los niños se queden sin regalos. :)

    Tuesday, November 23, 2010 10:18 AM por Jorge Morán

    # re: Preparando y diseñando un proyecto informático para los Reyes Magos de Oriente

    Que bueno!!!!!, me pongo ahora mismo a escribir mi carta a los reyes, jajajaja.

    Thursday, November 25, 2010 3:22 PM por Samuel

    # re: Preparando y diseñando un proyecto informático para los Reyes Magos de Oriente

    Estas loco, pero buena entrada.

    Saludos,

    Thursday, December 29, 2011 10:41 PM por El Baúl Geeks de Kiquenet

    # La Navidad de Geeks: Inocentadas, regalos, mensajes navideños

    Viendo el último post de Lluis Franco en Geeks me vienen a la mente algunas de las “Inocentadas