Story Transcript
UNIVERSIDAD DON BOSCO VICERRECTORIA DE ESTUDIOS DE POSTGRADO
TRABAJO DE GRADUACION DISENO DE APLICACIÓN PARA YOURWORKFLOWS.COM
PARA OPTAR AL GRADO DE MAESTRO EN ARQUITECTURA DE SOFTWARE
ASESOR: JUAN CARLOS AQUINO MONTOYA MSC
PRESENTADO POR: GABRIEL ORLANDO BORJA MORENO Y JORGE BARRIENTOS Antiguo Cuscatlán, La Libertad, El Salvador, Centroamérica. Febrero de 2014
Diseño de yourworkflows.com
2
Resumen La correcta gestión de los procesos e información de cualquier organización es vital para su funcionamiento correcto. Muchas empresas, especialmente al iniciar, no tienen una manera sistematizada de llevar estos controles. Yourworkflows.com busca proveer un servicio en la nube para solventar esta necesidad. Para el desarrollo de dicha aplicación, se utilizan conceptos de Workflows1, BPM2 y SaaS3 como modelo de negocio. Basado en la necesidad expuesta, se hace una propuesta de diseño de plataforma tecnológica, arquitectura y aplicación que satisfacen dichas necesidades, siendo suficientemente flexibles para ser adaptables a muchos procesos de negocio de las diferentes organizaciones y a la vez permitir a los usuarios para administrar sus procesos de negocio de manera autónoma.
1
Workflows, o flujos de trabajo, se refiere a las etapas o fases de aprobación o desaprobación por las que pasa un proceso en las tareas administrativo operativas de una organización, el concepto no es exclusivo de los sistemas de información. 2 BPM o Business Process Management por sus siglas en inglés, representan una serie de actividades discretas o pasos de tareas que puede incluir personas, aplicativos, eventos de negocio y organizaciones. 3 Software as a Service, o Software como un servicio por sus siglas en inglés, es un modelo de negocio que se caracteriza por la distribución de aplicaciones a través de un sitio en Internet, también es característico de este modelo, que la tarea de soporte y mantenimiento recae sobre el proveedor del servicio, la manera en la que monetiza el servicio puede ser variada, desde servicios completamente gratuitos (generar tráfico para publicidad) a formas de pago periódicas (mensuales, anuales, etc.), o a manera de monederos o mecanismos parecidos a los sistemas prepago.
Diseño de yourworkflows.com
3
Introducción
Las posibilidades de desarrollo de soluciones con una plataforma global como internet, nos permite ver el mundo como una sola comunidad, en la que todos convergen a través de un navegador web, las fronteras son inexistentes y las posibilidades de comercio ilimitadas. Internet como plataforma para emprender negocios se ha consolidado a partir de empresas pioneras que surgieron en la década de los noventa, organizaciones visionarias con proyectos que inicialmente no visualizaban el impacto y la evolución que tendrían en las próximas décadas, transformando la economía global en menos de veinte años. Actualmente, algunas compañías que operan en internet lideran mercados internacionales, su crecimiento es exponencial y son casos de estudio a nivel global. Obviamente esto no ha sido producto del azar o la espontaneidad, todo lo contrario, de hecho la tasa de fracaso en este tipo de emprendimientos también es extremadamente alta, hasta de un 90% (Vital, 2012). Muchas empresas se crean en internet, pero muy pocas alcanzan el éxito esperado, a finales de los años noventa la euforia de la difusión de internet llevó lo que se denominó como "la burbuja de internet", fue un momento de inflexión que hizo ver a los inversores que se necesita más que dinero y un sitio WEB para tener éxito en un proyecto de este tipo, para alcanzar tal objetivo se requiere principalmente una idea que sea factible de implementar y aceptada por los usuarios (clientes). Ver Internet como semillero de empresas que convergen con la finalidad de generar ingresos a través de sus modelos de negocio es lo que en primer lugar nos motivó a emprender el presente proyecto, otro de los aspectos que más nos motivo fue la ausencia de productos similares, lo cual puede representar un riesgo o una oportunidad para el presente emprendimiento.
Diseño de yourworkflows.com
4
Definición de la aplicación La aplicación brinda servicios de creación y gestión de flujos de trabajo (workflows en inglés) a todo tipo de compañías a través de un sitio en Internet, llamado yourworkflows.com. El servicio será ofrecido a través de una plataforma amigable que permitirá a los usuarios definir sus propios flujos de trabajo y poder utilizarlos de inmediato por las áreas operativas de la organización. El modelo de negocio adoptado es SaaS (Software as a Service), la manera en la que se monetizaría el modelo, seria en función de las transacciones realizadas, una especie de pre-pago de transacciones, las cuales el cliente podrá consumir de acuerdo a su nivel de operaciones. Novedad Se brindara a las empresas usuarias, administración completa de todo lo necesario para operar de manera independiente. Los clientes del servicio extienden su operación a la plataforma, con la cual pueden gestionar la creación de sus propios usuarios, y poder crear sus propias plantillas de procesos, para su posterior uso directamente en las operaciones de la organización. Además permitirá realizar aprobaciones que se tengan que realizarse en otras zonas geográficas, incluso poder interactuar con otras compañías. Beneficio Agilidad en los procesos de los clientes, mejorando los ciclos en sus cadenas de valor. Sin tener una alta inversión inicial que no les permita alcanzar los objetivos establecidos en un corto o mediano plazo. Generando un ahorro que puede ser invertido en otras áreas del negocio, incluyendo un bajo costo de tecnología, ya que en su versión mínima solo se requiere un enlace a Internet y un navegador web instalado en la maquina cliente. Objetivo General
Diseño de yourworkflows.com
5
Proveer una herramienta que permita gestionar los flujos de trabajo a toda empresa que no posea una plataforma tecnológica para la automatización de flujos de trabajo, sencilla de usar, flexible para muchos rubros de trabajo y a un precio accesible para las micro y pequeñas empresas. Objetivos Específicos
Gestionar flujos de trabajo en línea.
Permitir administrar los diferentes usuarios de las empresas usuarias.
Crear plantillas de flujos de trabajo personalizadas.
Generar reportes para monitoreo del uso del servicio.
Consultar estadísticas de los flujos de trabajo en proceso y finalizados.
Alcance Diseñar una herramienta que permita crear, diseñar y utilizar plantillas de flujos de trabajo, con la capacidad de poder registrar organizaciones y usuarios asociados a estas, que puedan interactuar con la solución y que sea la base para un modelo de negocio que permita generar ingresos mediante su uso a través de un mecanismo de prepago. Queda fuera del alcance el desarrollo de la solución, sin embargo se propone la plataforma tecnológica y la metodología de desarrollo recomendada para su implementación. Limitaciones La principal limitación la hemos encontrado en la poca documentación o referencia de trabajos similares, o que se apeguen fielmente al tipo de proyecto que afrontamos, sin embargo se integran en el presente documento, aspectos que se consideran necesarios para el análisis y diseño de la solución propuesta.
Diseño de yourworkflows.com
6
Marco Conceptual Para poder realizar un diseño completo de la solución que yourworkflows.com busca ofrecer, se utilizaran distintas modelos (de desarrollo), metodologías (BPM y Scrum) y tecnologías (Conjunto de soluciones) de diferentes índoles. Todo esto se combinará en el diseño de la solución final. A continuación se presenta una breve descripción de cada una de estas y cómo se utilizará en la aplicación. Flujos de Trabajo Los flujos de trabajo consisten en una serie de pasos (acciones y tareas) conectados en una secuencia específica, para realizar una actividad de trabajo. El flujo de trabajo se puede considerar como una abstracción del trabajo real y es una representación virtual del trabajo para propósitos de control (ISO/TR 16044:2004). Dentro de los controles que ofrecen los flujos de trabajo están: el flujo adecuado de información y la asignación de tareas con lo que se asegura que las actividades se lleven a cabo y la calidad de servicio, con la que se puede controlar el tiempo que se tardan las actividades, además de monitorear las que están fuera del tiempo promedio. En su esencia, yourworkflows.com es un sistema de manejo de flujos de trabajo que busca ofrecer a sus clientes potenciales la plataforma que les facilite llevar el control de sus actividades. Business Process Management (BPM) De acuerdo a AIIM (2014) la Gestión de Procesos de Negocio (BPM por sus siglas en inglés) es una manera de ver y controlar los procesos que están presentes en una organización. Es una metodología efectiva para utilizarse en tiempos de crisis para asegurarse que los procesos son eficientes y eficaces, ya que esto resulta en una organización mejor y más rentable.
Diseño de yourworkflows.com
7
Los flujos de trabajo son una manera sencilla de representar el resultado de la metodología BPM. Aunque no es necesario aplicar el BPM para poder utilizar los flujos de trabajo que yourworkflows.com proveerá, es recomendable optimizar los procesos para obtener mejores resultados. Software as a Service (SaaS) Dentro de la computación en la nube, el término software como servicio, se refiere esencialmente al software residente (instalado) en la nube, donde el usuario no tiene que preocuparse por conocer dónde está alojado el software, qué tipo de sistema operativo se utiliza o en qué lenguaje está escrito. Además, el usuario no tiene que instalar ningún programa de software como sí se hace en el modelo tradicional. Basta con que tenga acceso a un navegador de internet. Una aplicación común de software como servicio son los distintos proveedores de webmail (Hotmail, gmail, yahoo mail, etc.) (Aguilar, 2012). El modelo de yourworkflows.com adoptado es el SaaS, por lo que estará disponible para utilizarse desde cualquier dispositivo conectado a internet. Conjunto de Soluciones Para el desarrollo del proyecto se utilizarán las tecnologías LEMP (Linux, nginx pronunciado "engine-ex" en inglés, MySQL, PHP). El sistema operativo Linux, siendo software libre, está disponible en 9 de cada 10 proveedores de hosting, además de ser considerado uno de los más confiables para ofrecer servicios web (creeves, 2012). Nginx es un servidor web cuyo uso ha estado creciendo paulatinamente (W3Techs, 2013). Hecho para alta escalabilidad, y utilizado por varios sitios web muy visitados (Nginx, 2013). Es la solución ideal para que la empresa pueda estar preparada para un crecimiento rápido.
Diseño de yourworkflows.com
8
MySQL es utilizada por muchas grandes empresas, (MySQL, 2013) y provee muchas ventajas empezando por el bajo costo y alta disponibilidad en los proveedores de hosting. (MySQL, 2013). Por último, PHP es utilizado en más del 80% de los sitios públicos en internet (W3Techs, 2014), por lo que es una solución probada para este tipo de aplicaciones. Modelos de Desarrollo El desarrollo de software es una tarea en extremo complicada, y los riesgos de fracaso siguen siendo bastante altos, en esta área. Para el desarrollo de software se han generado, a lo largo del tiempo, modelos prescriptivos para el desarrollo de proyectos de software. Se les llama “prescriptivos” por que describen conjunto de elementos del proceso: actividades del marco de trabajo, acciones de ingeniería de software, tareas, productos del trabajo, aseguramiento de la calidad, y mecanismos de control de cambio para cada proyecto (Pressman, 2005). Los modelos de desarrollo se adaptan a un modelo genérico que contempla las siguientes fases: Comunicación: Contempla tareas de colaboración y comunicación entre los clientes y los encargados de implementar el software. Planeación: En esta etapa se establece un plan o ruta a seguir para lograr desarrollar el sistema. Se detallan todas y cada una de las actividades necesarias para lograr el objetivo de implementar la solución que requiere el cliente. Modelado: Fase del modelo en la que se diagrama el sistema de manera tal que, tanto el cliente como los programadores comprendan los requisitos del sistema. Construcción: Fase de codificación del sistema, además involucra la realización de pruebas para detectar errores potenciales y/o reales en el código producido.
Diseño de yourworkflows.com
9
Despliegue: Distribución del software a un entorno en el que el usuario lo utilizara. Esta fase puede comprender la liberación parcial o total del software. Modelo de Cascada Se le puede encontrar también con el nombre de ciclo de vida clásico. Este modelo sugiere un proceso sistemático, habitualmente este modelo se toma de manera secuencial, sin embargo es adaptable a interacciones. Uno de los inconvenientes de este modelo es que el cliente no puede identificar avances, sino hasta que se tiene un nivel de avance considerable, además el modelo secuencial que adopta el modelo de cascada, cada vez es más difícil de manejar con la frecuencia con que el software cambia o se adapta en la actualidad.
Figura 1. Modelo cascada.
Modelo de proceso incremental En algunos casos los requisitos iniciales para el desarrollo de un sistema de información, no se encuentran del todo claros, o se requiere una solución inmediata a un problema, con un nivel de funcionalidad menor, y luego desarrollar sobre las piezas ya desarrolladas. Es en estos casos se debe elegir un modelo que permita realizar entregas incrementales, o no completas, pero funcionales de software. El modelo incremental mezcla el modelo de cascada y le adiciona el componente de interacción, básicamente realiza interacciones cuyo objetivo es la entrega de funcionalidad parcial del sistema total, y se realizan interacciones de acuerdo al nivel de avance en el calendario planificado. El orden en el que se desarrollaran las interacciones es crítico, ya
Diseño de yourworkflows.com
10
que se debería de iniciar con aquellos incrementos o porciones del sistema que sirven de base para otros que operan como cliente de servicios o funcionalidad básica del sistema.
Figura 2. Modelo incremental.
Metodologías de Desarrollo Ágil La Metodología Ágil de desarrollo de software se enfoca en el trabajo de cerca entre los responsables del negocio y el desarrollo, además de la entrega de software funcional frecuentemente (Agile Manifesto, 2001). Su estilo iterativo es perfecto para un servicio en internet, ya que permite seguir incrementando las capacidades de la plataforma para que pueda evolucionar según las necesidades y sugerencias de los posibles clientes de yourworkflows.com. Scrum Scrum es un marco de trabajo por el cual las personas pueden acometer problemas complejos adaptativos, y a la vez entregar productos del máximo valor posible productiva y creativamente (Schwaber y Sutherland, 2013). Scrum es una de las metodologías de desarrollo ágil, la cual se seleccionó para el diseño de la aplicación de yourworkflows.com, ya que nos ofrece la ventaja de ser adaptable al poder ajustar el rumbo del proyecto basado en el trabajo completado. Dado que no existen antecedentes de aplicaciones similares, es muy probable que se deban hacer cambios durate el proceso de desarrollo, lo cual no genera mayores problemas con Scrum.
Diseño de yourworkflows.com
11
Diseño Siguiendo la metodología Scrum, para obtener los requerimientos de la aplicación se tuvo un “envisioning sesión”, una reunión en la cual se discutieron las características que yourworkflows.com busca tener en su plataforma de servicio. A partir de las necesidades presentadas se creó la lista de requerimientos en forma del product backlog. Además de los documentos requeridos por Scrum, se incluyen también la recomendación de la arquitectura, el ciclo de vida de la aplicación a alto nivel y el diseño de datos para brindar un diseño más fácil de comprender. Arquitectura Tomando en consideración que se busca ofrecer un servicio en línea, disponible a cualquier hora y en cualquier lugar, no se presenta una recomendación de arquitectura física. Más bien, se recomienda utilizar servicios de hosting ya existentes en la nube para montar la aplicación de yourworkflows.com, como los presentados por Zaborszky (2013), que implementan el conjunto de soluciones LEMP. En cuanto a la arquitectura lógica de la aplicación, se recomienda una arquitectura de tres capas, como se detalla en la figura 3.
Figura 3. Arquitectura Lógica.
Diseño de yourworkflows.com
12
Capa de Presentación: Se utilizará un cliente en javascript para poder brindar la experiencia amigable al usuario con una interfaz rápida. Esta capa se comunica con la capa de lógica de negocios. Capa de Lógica de Negocios: En esta capa se dan las configuraciones y se ejecutan los flujos de trabajo. Además, se utilizarán servicios web para que puedan ser invocados por la capa de presentación, y esta capa a su vez se comunicará con la capa de acceso a datos. Capa de Acceso a Datos: Se utiliza para acceder los datos guardados en la base y guardar nueva información según los cambios que se hagan en la aplicación. Roles de Usuarios Durante el “envisioning session” se identificarion 3 roles de usuario principales para la aplicación: Administrador: El administrador es el rol principal que será utilizado únicamente por los empleados de yourworkflows.com. Este rol tiene un doble propósito: el primero es de verificación, ya que tendrá acceso a los reportes de estado financiero; el segundo es como soporte técnico, ya que al tener acceso a toda la información en el sistema, puede ser utilizado para resolver cualquier duda que algún cliente pueda tener sobre sus flujos de trabajo. Súper Usuario: El súper usuario es, inicialmente, la persona que se registra en el sitio de yourworkflows.com y tiene la capacidad de administrar todo lo relacionado a su cuenta, sus funciones incluyen crear nuevas plantillas de flujos de trabajo, mantenimiento de usuarios y asignar permisos y funciones a estos en las plantillas. Toda la información de un cliente está ligada a la misma cuenta, y un súper usuario no puede ver información de otro cliente o cuenta. Usuario: El usuario es toda persona que da uso a la aplicación creando y ejecutando flujos de trabajo. Según los permisos asignados por el súper usuario, un usuario puede iniciar un flujo
Diseño de yourworkflows.com
13
de trabajo, asignarlo a otro usuario o ser el asignado encargado de llevar a cabo las tareas de un flujo. Ciclo de Vida de la Aplicación El ciclo de vida de la aplicación tendrá 5 grandes etapas, para cada cliente, como se muestra en la figura 4.
Figura 4. Ciclo de Vida.
El inicio del ciclo de vida del cliente es al Registrarse. Luego de que el cliente obtiene su cuenta, debe asignar usuarios y permisos en la Administración de permisos, para poder Crear plantillas que le permitan controlar sus procesos de negocio mediante la Ejecución de Flujos. Al haber agotado el período de prueba, cada cliente deberá hacer un Pago de saldo para ejecutar flujos, con lo que se le permite continuar el uso de la aplicación, ya sea ejecutando solamente flujos de las plantillas ya disponibles o creando nuevas plantillas con sus respectivos permisos.
Diseño de yourworkflows.com
14
Product Backlog El detalle de funcionalidades se hace en forma del Product Backlog, que es uno de los componentes esenciales de Scrum. En el Anexo 1 se encuentra el detalle de las Historias de Usuario, breves notas que detallan una funcionalidad específica según el usuario que la utilizará. Las historias de usuario, que están en el formato estándar “Como quiero para ” de la metodología ágil. Este formato brinda muchas ventajas para que los usuarios describan el requerimiento en lugar de discutir cómo se escriben (Mountain Goat Software, 2014). Luego de cada historia o grupo de historias se muestran, mediante una figura, los diseños de las pantallas para cada funcionalidad. En la Tabla 1 a continuación, se detallan las historias de usuario obtenidas durante el “envisioning session" ya depuradas y categorizadas según el tipo de funcionalidad. Así como por la prioridad para el desarrollo de la aplicación. Sprint
Sprint 1
Sprint 2
Sprint 3
Categoría
Nombre de la Historia
Estimación Prioridad
Configuración Inicial Creación de una Cuenta Creación de una Cuenta Administración de Usuarios Administración de Usuarios
Frameworks, Capas, Diseño, etc. Registro de Nuevo Usuario Generación de Cuenta Mantenimiento de Usuarios Administración de Seguridad de Usuarios
21 5 2 3 3
0 1 2 3 4
Administración de Usuarios Administración de Usuarios Administración de Usuarios
Confirmación de Nuevo Usuario Mantenimiento de Grupos Mantenimiento de Usuarios de Grupo
5 2 3
5 6 7
Creación de Plantillas Creación de Plantillas Creación de Plantillas Creación de Plantillas Creación de Plantillas Creación de Plantillas Creación de Plantillas Creación de Plantillas Creación de Plantillas
Mantenimiento de Plantillas Recargo por Plantilla Diseño Gráfico de Plantilla Tareas de Control Formulario de Entrada Crear Tareas Crear Acciones Formulario de Acción Asignación de Permisos a Plantilla
3 5 34 3 8 13 13 5 5
8 9 10 11 12 13 14 15 16
Diseño de yourworkflows.com
Sprint 4
Sprint 5
Sprint 6
Sprint 7
Sprint 8
15
Creación de Plantillas Creación de Plantillas Creación de Plantillas Creación de Flujos de Trabajo Creación de Flujos de Trabajo Creación de Flujos de Trabajo Ejecución de Flujos de Trabajo Ejecución de Flujos de Trabajo Ejecución de Flujos de Trabajo
Asignación de Permisos por Acción Restringir Acción a Creador Definir Estado de Plantilla Lista de Plantillas Disponibles
5 3 21 3
17 18 19 20
Formulario de Inicio de Flujo
13
21
Cargo por Flujo Creado
3
22
Listado de Flujos Activos
34
23
Filtro de Lista de Flujos
21
24
Formulario de Ejecución de Acciones
21
25
Ejecución de Flujos de Trabajo Reportes Reportes Reportes Reportes
Lista de Asignación
13
26
Filtro de Reportes Reporte de Flujos por Estado Reporte de Flujos por Asignado Reporte de Ejecución de Saldo por Cliente
8 13 13 13
27 28 29 30
Reportes Administración de Usuarios
Reporte de Recargas por Cliente Mantenimiento de Información de Usuario
8 5
31 32
Creación de Plantillas Creación de Plantillas
Cambio de Estado en Acción Definición de Tiempo de Entrega por Defecto
13 3
33 34
Creación de Plantillas
Definición de Mensaje de Ejecución Restringir Acción al Asignado Adjuntar Archivos al Inicio del Flujo Notificación por Saldo Bajo
8
35
8 5
36 37
3
38
Listado de Flujos Creados por Mi
3
39
Listado de Flujos Pendientes de Asignar
3
40
Ejecución de Flujos de Trabajo Ejecución de Flujos de Trabajo
Listado de Flujos Asignados a Mi
3
41
Calendario para Cambiar Tiempo de Entrega
5
42
Reportes
Reporte de Flujos por Usuario
13
43
Creación de Plantillas Creación de Flujos de Trabajo Creación de Flujos de Trabajo Ejecución de Flujos de Trabajo Ejecución de Flujos de Trabajo
Diseño de yourworkflows.com
Sprint 9
Sprint 10
Sprint 11
16
Reportes Creación de una Cuenta Creación de Plantillas Creación de Plantillas
Reporte de Flujos por Plantilla Confirmación de Cuenta Estados Contextuales en Acción Definición de Tiempos de Entrega Variables
5 8 8 21
44 45 46 47
Creación de Plantillas Creación de Plantillas Creación de Flujos de Trabajo Creación de Flujos de Trabajo Ejecución de Flujos de Trabajo
Definir Notificación Requerida Definir Comentario Requerido Visor Gráfico al Inicio del Flujo
8 8 21
48 49 50
Notificación de Nuevo Flujo
3
51
Indicación de Flujos con Calidad de Servicio Fallido
5
52
Ejecución de Flujos de Trabajo
Indicación de Flujos con Calidad de Servicio Marginal
5
53
Ejecución de Flujos de Trabajo Ejecución de Flujos de Trabajo Ejecución de Flujos de Trabajo Reportes
Notificación de Acción Ejecutada
3
54
Notificación de Flujo Asignado
3
55
Cambio de Fecha Límite por Pausa
13
56
Reporte de Calidad de Servicio
21
57
Tabla 1. Product Backlog.
Planeación de Sprints Para la planeación de Sprints, se le asignó a cada historia una estimación de esfuerzo en puntos Scrum, teniendo una línea base de 5 puntos por día. Luego se dividieron las historias por sprints de dos semanas cada uno, basadas en la prioridad asignada. Por lo que el desarrollo de la solución se daría durante 22 semanas o 4 meses y medio. La versión alfa, con los requerimientos mínimos para funcionar, omitiendo algunos reportes de alta prioridad, se estaría finalizando en el Sprint 6. Creación Detallada de una Plantilla de Flujo de Trabajo en el Diseñador Debido a que la creación de las plantillas es el área más compleja del sistema (195 puntos Scrum en total), a continuación se describe el proceso de una manera más detallada, con el propósito de plasmar el detalle del funcionamiento requerido.
Diseño de yourworkflows.com
17
Figura 5. Nuevo flujo en el diseñador.
Al iniciar una nueva plantilla de flujo de trabajo, como se muestra en la figura 5, se visualizan los detalles de la información de la plantilla a la derecha y, al centro en el diseñador, las tareas por defecto de inicio y de fin. Estas tareas no se pueden borrar, al igual que la acción que las une. En este momento es importante llenar los campos del formulario de entrada requeridos y asignar los permisos de Creación, Ejecución y Asignación a los distintos grupos disponibles. El estado de la plantilla tiene una validación que requiere que todo el flujo esté bien configurado, por lo que en este momento no permitirá cambiarlo a activo.
Diseño de yourworkflows.com
18
Figura 6. Nueva tarea en el diseñador.
En la figura 6 se muestra el estado de la plantilla al agregar la primera tarea, en el panel de propiedades se muestra automáticamente las propiedades del objeto que se acaba de agregar. La acción inicial que parte de la tarea de inicio es un caso especial que no requiere de configuración, más bien sirve para indicar en cuál de las tareas se desea iniciar, por lo que se representa como configurada correctamente al crear la primera tarea. Se utiliza un código de colores para que el súper usuario pueda determinar fácilmente que partes aún necesita configurar.
Diseño de yourworkflows.com
19
Figura 7. Nueva acción en el diseñador.
En la figura 7 se muestran 3 tareas ya configuradas y el detalle de la configuración de una acción. El tipo de tarea afecta cómo se ve en la pantalla de ejecución, como se puede ver en las figuras 12 a 14. La opción de “Cambia a Estado” afecta el estado del flujo de trabajo, y según el valor elegido aquí la flecha cambiará de color en el diseñador. Además cabe notar que en la lista de permisos en este momento sólo se muestran los grupos que tienen algún permiso a nivel de plantilla.
Diseño de yourworkflows.com
20
Figura 8. Nueva tarea de flujo alterno en el diseñador.
En la figura 8 se observa cómo se agregan tareas no lineales en el flujo. El diseñador tiene una funcionalidad de ajustar a la cuadrícula, para facilitar el diseño de los flujos de trabajo.
Diseño de yourworkflows.com
21
Figura 9. Crear acciones entre diferentes tareas en el diseñador.
En la figura 9 se encuentra el detalle de la acción Pausar del flujo completamente configurado, el valor de “Cambia a Estado” hace que se dibuje en Azul. En verde se dibujan la acción inicial que sale de la tarea inicio y cualquier acción que llegue a la tarea fin con estado Completado o Aprobado. Las acciones se dibujan en color rojo cuando cambian a estado Cancelado o Rechazado. Dependiendo de la tarea final de cada acción, las opciones de cambio de estado pueden variar; por ejemplo: en una acción que llega al fin no están las opciones de En progreso ni Pausa, mientras que las opciones de Completado, Aprobado, Cancelado y Rechazado Sólo se dan cuando la acción finaliza el flujo. En la notificación que se envía al Usuario Creador del flujo se incluyen los comentarios que el Usuario Asignado ingresó en la acción.
Diseño de yourworkflows.com
22
Figura 10. Formulario de entrada en una acción en el diseñador.
En la figura 10 se detalla cómo solicitar datos adicionales durante la ejecución, adicionales a los ingresados en el formulario de entrada de la plantilla, para flexibilidad del proceso. Una vez el flujo completo se ha configurado, el súper usuario puede regresar a las propiedades de la plantilla (haciendo clic en la pestaña correspondiente) y cambiando el estado a Activo. Con esto ya se permite a los usuarios con el permiso de Crear el iniciar flujos de trabajo bajo esta plantilla. Modelo de Datos Basados en todos los requerimientos analizados, se propone el esquema de modelo de datos, que se muestra en la figura 11, para poder solventar las necesidades de la aplicación de yourworkflows.com.
Diseño de yourworkflows.com
Figura 11. Modelo de Datos.
23
Diseño de yourworkflows.com
24
Nota: Referirse al anexo 2 para el diccionario de datos. Adicionalmente, a todas las tablas se les agregan los campos de creado por, fecha y hora de creación, última modificación por, fecha y hora de última modificación y Estado (activo o inactivo). Este último para mantener la integridad de datos cuando se borre algún usuario, plantilla, etc. Consideraciones de Diseño Para permitir la mayor flexibilidad posible, se tomaron estas consideraciones al realizar el diseño: Modelo Entidad-Atributo-Valor: Debido a la necesidad de que cada flujo pueda tener campos diferentes, se propone una solución con un modelo EAV. La flexibilidad que ofrece este viene con un costo mayor en el momento de desarrollo y una representación no relacional de los datos. Información Mínima en el registro de encabezado del flujo de trabajo: Para permitir la modificación de las plantillas, aun cuando existan flujos de trabajo en ejecución, se optó por ocupar la mínima cantidad de datos para identificar el estado del flujo. Por esto se requiere que la aplicación genere en tiempo de ejecución las opciones que están disponibles para el estado actual del flujo. Teniendo esto en cuenta, debe haber una validación en el diseñador de la plantilla de no permitir borrar las tareas en las que se encuentre un flujo activo. Para quitar una tarea de alguna plantilla que esté activa se puede hacer el rediseño, dejando la tarea actual pero deshabilitando la acción que lleva al flujo hacia esa tarea, de esta manera se evita que nuevos flujos lleguen a esa tarea. Tiempo después cuando los flujos activos se hayan cerrado, se puede quitar la tarea en el diseñador.
Diseño de yourworkflows.com
25
Arquitectura lógica: El diseño de 3 capas se ha sugerido así pensando en una posible reutilización a futuro con aplicaciones para móviles. Modelo de Negocio La generación de ingresos del servicio se hace en base al uso que cada cliente tenga, bajo un modelo estilo prepago, en base a la cantidad de flujos de trabajo iniciados. El cliente precarga su cuenta con una cantidad de flujos de trabajo disponibles y tiene la opción de ser notificado cuando se están acabando o autorizar un cargo automático cuando su saldo esté por expirar. Precios Existirán diferentes planes de pago, y el cliente podrá elegir el que más le convenga según la inversión y uso proyectado del servicio. El administrador de la aplicación tendrá la opción de definir los valores de costo y cantidades de flujos, así como la cantidad de planes que se ofrecen. En la tabla 2 se muestra un ejemplo de cómo podrían ser configurados los diferentes planes. Plan
Costo
Saldo para ejecutar
Básico
$10
80 Flujos
Intermedio
$50
450 Flujos
Premium
$100
1000 Flujos
Tabla 2. Precios por plan.
Adicionalmente al costo por ejecución de flujos de trabajo, también habrá un cargo por la creación de nuevas plantillas de flujos. Se ofrecerá también flujos de trabajo estándares basados en mejores prácticas mundiales para diferentes procesos de negocio, los cuales cada cliente podrá adquirir. Los precios de estos serán configurados por el Administrador. Paquete de Bienvenida Para incentivar el uso de la aplicación se ofrecerá a todo nuevo cliente la opción de probar el servicio sin compromiso. El cual contiene lo siguiente:
Diseño de yourworkflows.com -
26
Plantillas estándares listas para usar, con los procesos básicos comunes en toda empresa.
-
Plantilla personalizada para definir el proceso de negocio central del cliente.
-
Saldo para ejecutar X cantidad de flujos.
El detalle de cuántas plantillas, estándares y personalizadas, así como el saldo inicial también será configurado por el administrador.
Diseño de yourworkflows.com
27
Ventajas de Uso El utilizar una herramienta como la que propone yourworkflows.com trae muchas ventajas a las empresas, especialmente aquellas que no tienen ningún tipo de control sobre sus procesos. Entre ellas podemos resaltar: Establecimiento de procesos estándares: al tener los procesos documentados como flujos de trabajo se asegura que todas las personas involucradas en el proceso se apeguen al estándar, además de contribuir a la continuidad de negocio cuando una persona sale de la organización, ya que todas sus acciones están documentadas. Conocer la utilización de los procesos: Cuando una empresa está iniciando, pocas veces se lleva el control de todo lo que se hace y de cuantas veces se repiten ciertos procesos. Utilizar yourworkflows.com para documentar todas las incidencias de los distintos procesos de la organización puede brindar una percepción única de cuánto tiempo se está invirtiendo en cada área de negocio, y utilizar esta información para enfocarse mejorar lo que más impacta los resultados. Satisfacción del cliente: La gestión de procesos mediante los flujos de trabajo ayuda a asegurarse que todas las solicitudes, ya sea externas e internas, sean atendidas. Muchas veces los correos electrónicos se pueden quedar olvidados en medio de la saturación de información. De hacer esta aplicación una herramienta de trabajo diario se puede asegurar que todos los clientes reciban respuesta. Además de mejorar la calidad de servicio al poder dar resultados dentro de los tiempos establecidos, incluso se puede utilizar como forma de comunicación con los clientes si así se desea. Reducción de tiempos de entrenamiento: Si los procesos de la empresa funcionan bajo la misma plataforma, el proceso de inducción de un nuevo empleado se vuelve más sencillo.
Diseño de yourworkflows.com
28
Independencia total de la herramienta al proceso: Debido a que la herramienta es capaz de adaptarse a casi cualquier tipo de proceso, es posible utilizarse en todas las áreas de la organización. Y al ser auto-administrada, los usuarios no tienen que estar dependiendo de una persona de soporte para adaptar la herramienta al proceso que quieren documentar.
Diseño de yourworkflows.com
29
Conclusión Existen necesidades que toda empresa u organización debe cubrir, sin importar el tamaño de la misma. Una de ellas es el control de sus procesos, cuan variables puedan ser estos. Muchas empresas optan por crear soluciones a la medida para cada uno de sus procesos de negocio, pero no todas tienen los recursos ni infraestructura tecnológica para hacerlo sistematizadamente. Es a estas empresas que yourworkflows.com busca proveer valor para mejorar su competitividad en el mercado. A diferencia de una solución a la medida, el diseño de una solución para un servicio tan variable que pueda ser utilizado en una gran gama de empresas de distintos rubros y cuyos procesos son variables es un reto significativo, por lo que la solución tiene un nivel de complejidad mayor que el de soluciones comúnmente utilizadas para sistematizar procesos específicos. Aun así, esta es la más grande ventaja que tiene yourworkflows.com. Al ser una solución para todos los procesos de negocios, enfocado a las empresas pequeñas, se puede establecer una relación de confianza entre los clientes y yourworkflows.com, la fidelización de los clientes es clave, por lo tanto la calidad y el soporte en el servicio brindado es vital para resguardar la confianza de los clientes. Además de esto, el uso de una metodología de desarrollo ágil, y un diseño robusto dejan abiertas las puertas para agregar características y funciones, a medida que más clientes expresen la necesidad de adaptar sus procesos de negocios en la aplicación, fuera de la concepción inicial. Siendo un servicio en la nube, yourworkflows.com debe actualizarse y mejorarse constantemente para mantener su relevancia en el mundo siempre cambiante del internet.
Diseño de yourworkflows.com
30
Referencias
Agile Manifesto. (2001, Febrero 17). Principios del Manifiesto Ágil. Tomado de Agile Manifesto: http://agilemanifesto.org/iso/es/principles.html Aguilar, L. J. (2012). Computación en la Nube. Estrategias de Cloud Computingen las Empresas. México: Alfaomega Grupo Editor S.A. de C.V. AIIM. (2014, Enero 19). What is Business Process Management (BPM)? Tomado de AIIM - The Global Community of Information Professionals: http://www.aiim.org/what-is-bpmbusiness-process-management creeves. (2012, 6). Linux hosting comes out tops in industry usage survey. Tomado de AN Hosting: http://www.anhosting.com/blog/2012/06/linux-hosting-comes-out-tops-inindustry-usage-survey/ ISO/TR 16044:2004. (2004). ISO/TR 16044:2004. Tomado de ISO: http://www.iso.org/iso/home/store/catalogue_tc/catalogue_detail.htm?csnumber=39506 Mountain Goat Software. (2014, Febrero 1). User Stories. Tomado de Mountain Goat Software: http://www.mountaingoatsoftware.com/agile/user-stories MySQL. (2013, Octubre 9). MySQL Customers. Tomado de MySQL: http://www.mysql.com/customers/ MySQL. (2013, Octubre 9). Top Reasons to Use MySQL. Tomado de MySQL: http://www.mysql.com/why-mysql/topreasons.html Nginx. (2013, Octubre). Nginx. Tomado de Nginx: http://wiki.nginx.org/Main Pressman, R. (2005). Ingeniería del Software: Un Enfoque Práctico (Sexta Edición ed.). McGraw-Hill. Sutherland, K. S. (2013, Julio). La Guía de Scrum. Tomado de Scrum.org: https://www.scrum.org/Portals/0/Documents/Scrum%20Guides/2013/Scrum-GuideES.pdf Vital, A. (2012, Julio 5). Will I Succeed With My Startup? The odds of making it. Tomado de Funder and Founders: http://fundersandfounders.com/will-i-succeed-with-my-startup-theodds-of-making-it/ W3Techs. (2013, Noviembre). Historical trends in the usage of web servers for websites. Tomado de W3Techs: http://w3techs.com/technologies/history_overview/web_server W3Techs. (2014, Enero). Usage of server-side programming languages for websites. Tomado de W3Techs: http://w3techs.com/ Zaborszky, P. (2013, Agosto 12). 5 Best Nginx Hosting. Tomado de Best Hosting: http://www.besthosting.org/5-best-nginx-hosting/
Diseño de yourworkflows.com
i
Anexo 1. Detalle de Historias de Usuario Creación de una Cuenta. Registro de Nuevo Usuario Como Súper Usuario quiero poder registrarme en yourworkflows.com con usuario y contraseña para poder acceder a la aplicación.
Figura 12. Pantalla de creación de cuenta.
Generación de Cuenta Como Administrador quiero que al registrarse un súper usuario se genere una cuenta de cliente con el paquete de bienvenida, para que el súper usuario pueda probar el servicio ofrecido. Confirmación de Cuenta Como Súper Usuario quiero recibir un correo de confirmación al registrarme, con la información del paquete de bienvenida para poder aprender de los beneficios que me ofrece yourworkflows.com.
Administración de Usuarios Mantenimiento de Usuarios Como Súper Usuario quiero poder agregar nuevos usuarios a mi cuenta para que mi empresa pueda utilizar los distintos flujos de trabajo. Criterio de aceptación: El correo debe ser único globalmente.
Diseño de yourworkflows.com
ii
Administración de Seguridad de Usuarios Como Súper Usuario quiero poder administrar el nivel de seguridad de mis usuarios para poder designar a otros usuarios como súper usuarios de mi cuenta. Criterio de Aceptación: siempre debe haber al menos un súper usuario por cuenta.
Figura 13. Pantalla de Administración de Usuarios.
Confirmación de Nuevo Usuario Como Súper Usuario quiero que se envíe un correo de registro al agregar un nuevo usuario para que éste pueda establecer su contraseña.
Diseño de yourworkflows.com
iii
Mantenimiento de Grupos Como Súper Usuario quiero dar mantenimiento a los grupos de usuarios para poder facilitar la administración de permisos de mis flujos de trabajo.
Figura 14. Pantalla de Administración de Grupos.
Diseño de yourworkflows.com
iv
Mantenimiento de Usuarios de Grupo Como Súper Usuario quiero dar mantenimiento a los usuarios que pertenecen a mis distintos grupos para poder administrar los permisos de mis flujos de trabajo.
Figura 15. Pantalla de Administración de Miembros de Grupo.
Mantenimiento de Información de Usuario Como Usuario quiero dar mantenimiento a mi información básica de usuario para poder cambiar mi nombre, correo y contraseña cuando sea necesario.
Diseño de yourworkflows.com
v
Creación de Plantillas de Flujos de Trabajo Mantenimiento de Plantillas Como Súper Usuario quiero crear nuevas plantillas de flujo de trabajo para poder llevar el control de mis procesos de negocio. Recargo por Plantilla Como Administrador quiero que el saldo del cliente se reduzca por el monto configurado cuando se cree una nueva plantilla de flujo de trabajo para poder generar ingresos con mi aplicación.
Figura 16. Pantalla de Administración de Plantillas.
Tareas de Control Como Administrador quiero que los flujos de trabajo tengan tareas de inicio y fin obligatoriamente para que la ejecución del flujo sea coherente.
Diseño de yourworkflows.com
vi
Formulario de Entrada Como Súper Usuario quiero definir los campos de entrada con sus tipos de dato para que el usuario que inicie el flujo de trabajo me provea con la información necesaria. Crear Tareas Como Súper Usuario quiero definir tareas en mis flujos de trabajo para representar los pasos de mi proceso adecuadamente. Crear Acciones Como Súper Usuario quiero definir acciones entre las tareas de mi flujo de trabajo para que los usuarios puedan moverse entre los diferentes pasos del proceso. Formulario de Acción Como Súper Usuario quiero definir campos de entrada con sus tipos de dato en las acciones para que los usuarios provean la información necesaria para los siguientes pasos del proceso. Cambio de Estado en Acción Como Súper Usuario quiero poder definir si una acción afecta el estado del flujo de trabajo para poder reflejar las consecuencias distintas acciones de mis procesos en el flujo. Estados Contextuales en Acción Como Administrador quiero que los estados de flujo de trabajo disponibles en una acción sean sensibles al contexto, para que el flujo cambie a un estado finalizado (Completado, Aprobado, Denegado o Cancelado) al llegar a la tarea de fin. Asignación de Permisos a Plantilla Como Súper Usuario quiero poder asignar los permisos (Crear, Ejecutar o Asignar) a los distintos grupos de usuarios que he creado anteriormente para administrar la seguridad de mis procesos. Definición de Tiempo de Entrega por Defecto Como Súper Usuario quiero poder definir el tiempo de entrega de mi flujo de trabajo para que el usuario que cree el flujo tenga un estimado de cuándo estará completado. Definición de Tiempos de Entrega Variables Como Súper Usuario quiero poder definir diferentes tiempos de entrega basado en la selección del usuario en uno de los campos de entrada para poder medir la calidad de servicio de mis procesos.
Diseño de yourworkflows.com
vii
Definición de Mensaje de Ejecución Como Súper Usuario quiero poder definir el texto que se envía en la notificación de ejecución de un flujo de trabajo para que el usuario que crea el flujo de trabajo reciba un mensaje más relevante. Definir Notificación Requerida Como Súper Usuario quiero poder definir si, al realizar una acción, la notificación al creador del flujo de trabajo es requerida u opcional para que el creador del flujo esté informado del estado de su proceso. Definir Comentario Requerido Como Súper Usuario quiero poder definir si el comentario del usuario que ejecuta la acción es requerido para que el usuario justifique la acción o provea de información importante al proceso. Asignación de Permisos por Acción Como Súper Usuario quiero poder asignar los permisos de ejecutar acciones a los distintos grupos de usuario asignados a la plantilla anteriormente para poder administrar la seguridad de mis procesos. Restringir Acción a Creador Como Súper Usuario quiero poder restringir una acción al creador del flujo únicamente para poder administrar la seguridad de mis procesos. Restringir Acción al Asignado Como Súper Usuario quiero poder restringir una acción al asignado del flujo únicamente para poder administrar la seguridad de mis procesos. Definir Estado de Plantilla Como Súper Usuario quiero poder cambiar el estado de la plantilla de flujo de trabajo para definir si la plantilla es visible para que los usuarios puedan crear nuevos flujos de la misma o no. Diseño Gráfico de Plantilla Como Súper Usuario quiero hacer el diseño del flujo de trabajo de manera gráfica para facilitar la creación de las plantillas.
Diseño de yourworkflows.com
viii
Figura 17. Pantalla de Creación de Plantilla de Flujo.
Para las próximas categorías de historias de usuario se hace una distinción en el rol de usuario según los permisos otorgados por el súper usuario en la configuración de la plantilla, y los roles se llamarán Usuario Creador, Usuario Asignado y Usuario Asignador para los permisos de Crear, Ejecutar y Asignar respectivamente. Creación de Flujos de Trabajo Lista de Plantillas Disponibles Como Usuario Creador quiero poder listar todas las plantillas de flujo de trabajo que tengo disponible para crear nuevos flujos de trabajo según el proceso que quiero ejecutar.
Diseño de yourworkflows.com
ix
Figura 18. Pantalla de Selección de Nuevo Flujo.
Formulario de Inicio de Flujo Como Usuario Creador quiero ver un formulario con todos los campos de entrada definidos en la plantilla para poder proveer la información requerida para el proceso. Adjuntar Archivos al Inicio del Flujo Como Usuario Creador quiero poder adjuntar archivos al iniciar un flujo de trabajo para poder proveer la información requerida para el proceso. Visor Gráfico al Inicio del Flujo Como Usuario Creador quiero ver de manera gráfica la plantilla del flujo de trabajo que voy a iniciar para tener una idea del proceso que se llevará a cabo.
Diseño de yourworkflows.com
x
Figura 19. Pantalla de Inicio de nuevo Flujo.
Notificación de Nuevo Flujo Como Usuario Creador quiero recibir una notificación con la información del nuevo flujo creado para poder darle seguimiento a mi proceso. Cargo por Flujo Creado Como Administrador quiero que el saldo del cliente se actualice cuando el Usuario cree un nuevo flujo de trabajo para poder generar ingresos con mi aplicación. Notificación por Saldo Bajo Como Súper Usuario quiero recibir una notificación cuando mi saldo de flujos a ejecutar esté por terminarse para poder comprar más flujos y mantener mis procesos de negocio funcionando.
Ejecución de Flujos de Trabajo Listado de Flujos Activos
Diseño de yourworkflows.com
xi
Como Usuario (todo tipo) quiero tener una lista de flujos de trabajo que me permita ver los datos capturados en el flujo, archivos adjuntos, el historial acciones del mismo, las acciones disponibles para mí y el estado actual de manera gráfica relativa a la plantilla para poder dar seguimiento a mis procesos. Listado de Flujos Creados por Mi Como Usuario Creador quiero tener una lista de todos los flujos de trabajo que he creado para darle seguimiento a mis procesos. Listado de Flujos Pendientes de Asignar Como Usuario Asignador quiero ver una lista de todos los flujos en estado nuevo para poder asignarlos fácilmente. Listado de Flujos Asignados a Mi Como Usuario Asignado quiero ver una lista de todos los flujos de trabajo activos que tengo asignados a mí para poder ejecutar mis tareas de manera sencilla. Indicación de Flujos con Calidad de Servicio Fallido Como Usuario (todo tipo) quiero que en mi lista de flujos de trabajo abiertos se indique cuales han sobrepasado la fecha estimada de finalización para poder llevar un control de mi calidad de servicio. Indicación de Flujos con Calidad de Servicio Marginal Como Usuario (todo tipo) quiero que en mi lista de flujos de trabajo abiertos se indique cuales flujos están próximos a sobrepasar la fecha estimada de finalización para poder llevar un control de mi calidad de servicio. Filtro de Lista de Flujos Como Usuario (todo tipo) quiero poder filtrar la lista de mis flujos de trabajo para tener un mayor control de mis procesos. Criterio de Aceptación: La lista debe ser filtrable por usuario, plantilla, categoría (propiedad para definición de tiempo de entrega), estado, asignado, fecha de creación, fecha estimada de finalización y por palabras clave según la información en el flujo. Por defecto se deben mostrar los flujos que no han finalizado.
Diseño de yourworkflows.com
xii
Figura 20. Lista de Flujos de Trabajo.
Formulario de Ejecución de Acciones Como Usuario (todo tipo) quiero poder agregar comentarios, datos de formulario de la acción archivos adjuntos y direcciones de correo electrónico al hacer clic en una de las acciones para cambiar el estado del flujo. Notificación de Acción Ejecutada Como Usuario (todo tipo) quiero que se envíe una notificación por correo a las direcciones que he especificado cuando realizo una acción en un flujo de trabajo para poder informar a otra persona de los cambios en el flujo de trabajo cuando sea necesario.
Diseño de yourworkflows.com
Figura 21. Ejecución de Flujos de Trabajo.
xiii
Diseño de yourworkflows.com
xiv
Lista de Asignación Como Usuario Asignador quiero que se despliegue una lista con todos los usuarios tipo Asignado al ejecutar una acción de tipo Asignar para poder seleccionar la persona que ejecutará el proceso.
Figura 22. Ejecución de Flujos de Trabajo – Acción de tipo Asignar.
Diseño de yourworkflows.com
xv
Calendario para Cambiar Tiempo de Entrega Como Usuario (todo tipo) quiero que se despliegue un calendario con selección de fecha y hora al ejecutar una acción de tipo cambiar fecha estimada de finalización para poder cambiar la fecha estimada cuando sea necesario.
Figura 23. Ejecución de Flujos de Trabajo – Acción de tipo Cambiar tiempo estimado de finalización.
Notificación de Flujo Asignado Como Usuario Asignado quiero recibir una notificación cuando se me asigne un flujo de trabajo para saber cuándo debo realizar un proceso. Cambio de Fecha Límite por Pausa Como Usuario (todo tipo) quiero que al ejecutar una acción de tipo Pausa se sume el tiempo desde que se inicia la pausa hasta que se regresa a ejecución al tiempo estimado de finalización del flujo para que mi calidad de servicio no se vea afectada cuando un proceso debe ser pausado por largo tiempo.
Diseño de yourworkflows.com
xvi
Reportes Todos los reportes utilizados por el Usuario Asignador también deben estar disponibles para el Súper Usuario. Filtro de Reportes Como Usuario Asignador quiero poder filtrar mis reportes por rango de fecha y selección múltiple de plantillas de flujo de trabajo. Reporte de Flujos por Estado Como Usuario Asignador quiero tener un reporte de la cantidad de flujos por estado para medir la cantidad de trabajo completado y pendiente.
Figura 24. Reporte de Flujos por Estado.
Diseño de yourworkflows.com
xvii
Reporte de Flujos por Asignado Como Usuario Asignador quiero tener un reporte que me muestre la cantidad de flujos de trabajo por Asignado para poder medir la cantidad de trabajo de cada uno.
Figura 25. Reporte de Flujos por Asignado.
Diseño de yourworkflows.com
xviii
Reporte de Calidad de Servicio Como Usuario Asignador quiero tener un reporte de calidad de servicio que me muestre el porcentaje de casos resueltos dentro y fuera del tiempo estimado de finalización para poder medir la calidad de los servicios prestados.
Figura 26. Reporte de Calidad de Servicio.
Diseño de yourworkflows.com
xix
Reporte de Flujos por Usuario Como Usuario Asignador quiero tener un reporte de la cantidad de flujos creados por cada usuario creador para poder determinar qué usuarios generan más trabajo.
Figura 27. Reporte de Cantidad de Flujos por Usuario.
Diseño de yourworkflows.com
xx
Reporte de Flujos por Plantilla Como Súper Usuario quiero tener un reporte con la cantidad de flujos ejecutados por tipo de plantilla para poder medir cuál de mis plantillas me genera más procesos.
Figura 28. Reporte de Cantidad de Flujos por Plantilla.
Diseño de yourworkflows.com
xxi
Reporte de Ejecución de Saldo por Cliente Como Administrador quiero tener un reporte que me muestre la cantidad de flujos ejecutados por cliente y el dinero que estos representan para poder hacer proyecciones de flujo de caja.
Figura 29. Reporte de Ejecución de Saldo por Cliente.
Diseño de yourworkflows.com
xxii
Reporte de Recargas por Cliente Como Administrador quiero tener un reporte de la cantidad de recargas, cuántos flujos y cuánto dinero representa por cliente para poder medir mis ingresos.
Figura 30. Reporte de Recargas por Cliente.
Diseño de yourworkflows.com
xxiii
Anexo 2: Diccionario de datos Tabla
Campo
actionauthorizations
ActionAuthorizationId
actionauthorizations actionauthorizations
ActionId TemplateAuthorizationId
actionauthorizations
RequiresCreator
actionauthorizations
RequiresAsignee
Descripción Llave Primaria. En esta tabla se almacenan los permisos sobre las acciones. Llave foránea con actions. Llave foránea con TemplateAuthorizations. Requiere Creador. Si se habilita esta acción sólo se muestra al creador del flujo. Requiere Asignado. Si se habilita esta acción sólo se muestra al usuario que tiene asignado el flujo.
Tabla 3. Diccionario de Datos – Action Authorizations.
Tabla
Campo
actions
ActionId
actions actions
ActionTypeId SourceTask
actions
NextTask
actions actions
Name Description
actions
NotificationText
actions
RequiresComment
actions
RequiresNotification
actions
CausesStatusId
Descripción Llave primaria. En esta tabla se almacena la definición de una acción que se puede ejecutar en cada flujo. Llave foránea con actiontypes. Tarea de inicio de donde se origina la acción. Tarea a la que el flujo llega cuando la acción se ejecuta. Nombre de la acción. Descripción de la acción. Texto de notificación que se envía por correo al creador del flujo. Si se habilita, al ejecutar esta tarea el campo de comentarios se hace requerido. Si se habilita, al creador del flujo se le envía una notificación por correo de la acción que se llevó a cabo. Si no se habilita la notificación queda opcional a discreción de la persona que ejecuta la tarea. Llave foránea con statuses. El estado al que se cambia el flujo luego de ejecutar esta acción.
Tabla 4. Diccionario de Datos – Actions.
Tabla actiontypes
Campo ActionTypeId
actiontypes
Name
Descripción Llave primaria, tabla de sistema. Nombre del tipo de accion. Normal, Asignar, Cambiar ETC.
Tabla 5. Diccionario de Datos – Action Types.
Tabla
Campo
Descripción
Diseño de yourworkflows.com attributes
AttributeId
attributes
EntityId
attributes attributes
DataTypeId Name
attributes
EntityKey
xxiv
Llave primaria. Tabla del sistema para EAV. Llave foránea con entities. a qué tipo de entidad se le aplica el atributo. Llave foránea con datatypes. Nombre del atributo. Llave primaria de la entidad a la que se le aplica el atributo, puede ser de templates o de actions
Tabla 6. Diccionario de Datos – Attributes.
Tabla authorizationtypes
Campo AuthorizationTypeId
authorizationtypes
Name
Descripción Tipos de autorizacion. Tabla del sistema. Nombre del tipo de autorizacion. Crear, Ejecutar o Asignar.
Tabla 7. Diccionario de Datos - Authorization Types.
Tabla
Campo
Descripción
clientdailybalances
ClientDailyBalanceId
Llave primaria. Esta tabla se ocupa para registrar los movimientos diarios de cada cliente. El balance generalmente es negativo contra los flujos utilizados ese día.
clientdailybalances clientdailybalances
ClientId Balance
clientdailybalances
Date
Llave Foránea con clients. Cantidad de flujos utilizados / pre pagados. Fecha del registro. Se genera uno diario para cada cliente
Tabla 8. Diccionario de Datos - Client Daily Balances.
Tabla
Campo
clientjournal
ClientJournalId
clientjournal clientjournal clientjournal clientjournal clientjournal
ClientId Amount WorkflowCount Discount TransactionDate
Descripción Llave primaria. El propósito de esta tabla es llevar el registro de las transacciones donde el cliente compra saldo para ejecutar flujos. Llave foránea con clients. Monto total de la compra. Cantidad de flujos otorgados por la compra. % de descuento, si existe. Fecha y hora de la transacción.
Tabla 9. Diccionario de Datos - Client Journal.
Tabla
Campo
Descripción
clients
ClientId
Llave Primaria. En base a esta tabla se separan todos los registros de la base de datos.
clients clients
Name Balance
Nombre del Cliente o Empresa. Saldo de flujos disponible.
Diseño de yourworkflows.com
xxv
Tabla 10. Diccionario de Datos – Clients.
Tabla datatypes
Campo DataTypeId
datatypes
Name
Descripción Llave primaria. Tabla del sistema para EAV. Nombre del tipo de dato. Texto, Numero, Link, Dropdown, attachment, etc.
Tabla 11. Diccionario de Datos - Data Types.
Tabla entities entities
Campo EntityId Name
Descripción Llave primaria. Tabla del sistema para EAV. Nombre de la entidad. template o action.
Tabla 12. Diccionario de Datos – Entities.
Tabla
Campo
groupusers
GroupUserId
groupusers groupusers
UserGroupId UserId
Descripción Llave primaria. Esta tabla se utiliza para hacer la relación de que usuarios pertenecen a que grupos. Llave foránea con usergroups. Llave foránea con users.
Tabla 13. Diccionario de Datos - Group Users.
Tabla
Campo
statuses
StatusId
statuses
Name
Descripción Llave primaria. Tabla del sistema para estados de flujo. Nombre del estado. Nuevo, En progreso, Completado, Aprobado, Cancelado, Rechazado.
Tabla 14. Diccionario de Datos – Statuses.
Tabla
Campo
tasks
TaskId
tasks
TemplateId
tasks tasks tasks
TaskTypeId Name Description
tasks
PosiitionX
Descripción Llave primaria. En esta tabla se registran las tareas que tiene un flujo de trabajo. Llave foránea con templates. A cuál plantilla pertenece la tarea. Llave foránea con tasktypes. Nombre de la tarea. Descripción de la tarea. Posición X de la tarea en el diseñador. Empieza en 0 a la izquierda con la tarea de inicio e incrementa hasta llegar a la tarea de fin.
Diseño de yourworkflows.com
tasks
PositionY
xxvi
Posición Y de la tarea en el diseñador. Empieza en 0 en la línea donde se encuentran las tareas de inicio y fin al crear una nueva plantilla, y puede ser negativo (hacia abajo) o positivo (hacia arriba).
Tabla 15. Diccionario de Datos – Tasks.
Tabla
Campo
tasktypes
TaskTypeId
tasktypes
Name
Descripción Llave primaria. Esta tabla tiene los tipos de tareas. Nombre del tipo. Inicio, Fin, Tarea normal.
Tabla 16. Diccionario de Datos - Task Types.
Tabla
Campo
Descripción Llave primaria. En esta tabla se registra que grupos tienen permisos sobre la plantilla.
templateauthorizations
TemplateAuthorizationId
templateauthorizations
AuthorizationTypeId
Llave foránea con authorizationtypes. Tipo de autorización.
templateauthorizations
TemplateId
Llave foránea con templates. A cuál plantilla pertence.
templateauthorizations
UserGroupId
Llave foránea con usergroups. A qué grupo se le da la autorización.
Tabla 17. Diccionario de Datos - Template Authorizations.
Tabla
Campo
templateetcs
TemplateETCId
templateetcs
TemplateId
Descripción Llave primaria. En esta tabla se almacenan los parámetros para calcular la fecha estimada de finalización. Para que el registro sea válido, el AttributeId del registro relacionado de la tabla values y el ETCAttributeId del registro relacionado de la tabla templates deben tener el mismo valor. Llave foránea con templates.
templateetcs
ValueId
Llave foránea con values. A qué valor pertenece esta configuración de ETC. Si es null, este registro se utiliza por defecto con todos los flujos donde se selecciona valores del ETCAttribute que no tengan una configuración específica.
templateetcs
ETC
Dias, horas y minutos a agregar a la fecha de inicio del flujo para calcular el tiempo estimado de finalización (ETC).
Tabla 18. Diccionario de Datos - Template ETCs.
Diseño de yourworkflows.com Tabla
Campo
templates
TemplateId
templates
ClientId
templates templates
Name Description
templates
TemplateStatusId
templates
ETCAttributeId
xxvii
Descripción Llave primaria. En esta tabla se define el encabezado de las plantillas de flujos de trabajo Llave foránea con clients. A quién pertenece la plantilla. Nombre de la plantilla. Descripción de la plantilla. Llave foránea con templatestatuses. Estado de la plantilla. Llave foránea con attributes. Con cuál atributo se está calculando el tiempo estimado de finalización del flujo.
Tabla 19. Diccionario de Datos – Templates.
Tabla
Campo
templatestatuses
TemplateStatusId
templatestatuses
Name
Descripción Llave primaria. Tabla del sistema para definir estados de la plantilla. Nombre del estado. Nuevo, Activo o Inactivo. Los Administradores tendrán también las opciones Paquete de bienvenida y Plantilla estándar para venta.
Tabla 20. Diccionario de Datos - Template Statuses.
Tabla
Campo
usergroups
UserGroupId
usergroups
Name
usergroups
ClientId
Descripción Llave primaria. Esta tabla se utiliza para agrupar los usuarios de un cliente y facilitar la administración de permisos Nombre del grupo. Otorgado por el Súper Usuario. Llave foránea con clients.
Tabla 21. Diccionario de Datos - User Groups.
Tabla
Campo
users
UserId
users users
DisplayName Email
users
Password
users users
ClientId UserTypeId
Descripción Llave primaria. Esta tabla contiene los usuarios para utilización del sistema. Nombre del usuario para mostrar. Correo Electrónico. Contraseña. En producción debe ser encriptada. Llave foránea con clients. Llave foránea con usertypes.
Tabla 22. Diccionario de Datos – Users.
Diseño de yourworkflows.com Tabla
Campo
usertypes
UserTypeId
usertypes
Name
xxviii
Descripción Llave primaria. Esta es una tabla del sistema para los tipos de usuarios. Nombre de tipo de usuario. Administrador, Súper Usuario o Usuario.
Tabla 23. Diccionario de Datos - User Types.
Tabla values values values
Campo ValueId AttributeId Value
values
WorkflowActionId
Descripción Llave primaria. Tabla del sistema para EAV. Llave foránea con attributes. Valor del campo. Llave foránea con workflowactions. Denota a cual flujo y acción pertenecen los datos. Si es null entonces pertenece a la entidad (ejemplo las opciones en un dropdown)
Tabla 24. Diccionario de Datos – Values.
Tabla
Campo
workflowactions
WorkflowActionId
workflowactions
WorkflowId
workflowactions
ActionId
workflowactions
UserId
workflowactions
Comment
workflowactions
CreatedDate
Descripción Llave primaria. Esta tabla se ocupa para guardar el registro de todas las acciones que se dan sobre un flujo. Llave foránea con workflows. A que flujo pertenece. Llave foránea con actions. Cuál acción fue realizada. Llave foránea con users. Qué usuario realizó la acción. El comentario que el usuario escribió cuando realizó la acción. Fecha y hora en que se ejecutó la acción.
Tabla 25. Diccionario de Datos - Workflow Actions .
Tabla
Campo
workflows
WorkflowId
workflows
TemplateId
workflows
StatusId
workflows
TaskId
workflows
ETC
workflows
AssignedToUserId
Descripción Llave primaria. Encabezado de los flujos de trabajo. Llave foránea con templates. Denota de qué tipo de plantilla es este flujo. Llave foránea con statuses. El estado actual del flujo. Llave foránea con tasks. La tarea actual en la que se encuentra el flujo. Tiempo estimado de finalización del flujo, para efectos de calidad de servicio. El usuario asignado a este flujo.
Diseño de yourworkflows.com workflows
CreatedByUserId
workflows
CreatedDate
xxix
El usuario que creó este flujo. Fecha y hora de creación, base para calcular tiempo estimado de finalización.
Tabla 26. Diccionario de Datos – Workflows.
Diseño de yourworkflows.com
xxx
Índice de Tablas Tabla 1. Product Backlog. ............................................................................................................. 16 Tabla 2. Precios por plan. ............................................................................................................. 25 Tabla 3. Diccionario de Datos – Action Authorizations. ........................................................... xxiii Tabla 4. Diccionario de Datos – Actions. .................................................................................. xxiii Tabla 5. Diccionario de Datos – Action Types. ......................................................................... xxiii Tabla 6. Diccionario de Datos – Attributes. .............................................................................. xxiv Tabla 7. Diccionario de Datos - Authorization Types. .............................................................. xxiv Tabla 8. Diccionario de Datos - Client Daily Balances. ............................................................ xxiv Tabla 9. Diccionario de Datos - Client Journal.......................................................................... xxiv Tabla 10. Diccionario de Datos – Clients. .................................................................................. xxv Tabla 11. Diccionario de Datos - Data Types. ............................................................................ xxv Tabla 12. Diccionario de Datos – Entities. ................................................................................. xxv Tabla 13. Diccionario de Datos - Group Users. .......................................................................... xxv Tabla 14. Diccionario de Datos – Statuses. ................................................................................ xxv Tabla 15. Diccionario de Datos – Tasks. ................................................................................... xxvi Tabla 16. Diccionario de Datos - Task Types............................................................................ xxvi Tabla 17. Diccionario de Datos - Template Authorizations. ..................................................... xxvi Tabla 18. Diccionario de Datos - Template ETCs. .................................................................... xxvi Tabla 19. Diccionario de Datos – Templates. ........................................................................... xxvii Tabla 20. Diccionario de Datos - Template Statuses. ............................................................... xxvii Tabla 21. Diccionario de Datos - User Groups. ........................................................................ xxvii Tabla 22. Diccionario de Datos – Users. .................................................................................. xxvii Tabla 23. Diccionario de Datos - User Types. ......................................................................... xxviii Tabla 24. Diccionario de Datos – Values. ............................................................................... xxviii Tabla 25. Diccionario de Datos - Workflow Actions . ............................................................ xxviii Tabla 26. Diccionario de Datos – Workflows. .......................................................................... xxix
Diseño de yourworkflows.com
xxxi
Índice de Figuras Figura 1. Modelo cascada. .............................................................................................................. 9 Figura 2. Modelo incremental. ...................................................................................................... 10 Figura 3. Arquitectura Lógica. ...................................................................................................... 11 Figura 4. Ciclo de Vida. ................................................................................................................ 13 Figura 5. Nuevo flujo en el diseñador. .......................................................................................... 17 Figura 6. Nueva tarea en el diseñador. .......................................................................................... 18 Figura 7. Nueva acción en el diseñador. ....................................................................................... 19 Figura 8. Nueva tarea de flujo alterno en el diseñador. ................................................................ 20 Figura 9. Crear acciones entre diferentes tareas en el diseñador. ................................................. 21 Figura 10. Formulario de entrada en una acción en el diseñador. ................................................ 22 Figura 11. Modelo de Datos.......................................................................................................... 23 Figura 12. Pantalla de creación de cuenta. ....................................................................................... i Figura 13. Pantalla de Administración de Usuarios........................................................................ ii Figura 14. Pantalla de Administración de Grupos. ........................................................................ iii Figura 15. Pantalla de Administración de Miembros de Grupo. ................................................... iv Figura 16. Pantalla de Administración de Plantillas. ...................................................................... v Figura 17. Pantalla de Creación de Plantilla de Flujo. ................................................................. viii Figura 18. Pantalla de Selección de Nuevo Flujo. ......................................................................... ix Figura 19. Pantalla de Inicio de nuevo Flujo. ................................................................................. x Figura 20. Lista de Flujos de Trabajo. .......................................................................................... xii Figura 21. Ejecución de Flujos de Trabajo. ................................................................................. xiii Figura 22. Ejecución de Flujos de Trabajo – Acción de tipo Asignar. ........................................ xiv Figura 23. Ejecución de Flujos de Trabajo – Acción de tipo Cambiar tiempo estimado de finalización. ................................................................................................................................... xv Figura 24. Reporte de Flujos por Estado. .................................................................................... xvi Figura 25. Reporte de Flujos por Asignado. ............................................................................... xvii Figura 26. Reporte de Calidad de Servicio. ............................................................................... xviii Figura 27. Reporte de Cantidad de Flujos por Usuario. .............................................................. xix Figura 28. Reporte de Cantidad de Flujos por Plantilla. ............................................................... xx Figura 29. Reporte de Ejecución de Saldo por Cliente. ............................................................... xxi Figura 30. Reporte de Recargas por Cliente. .............................................................................. xxii