Modelar un Sistema antes de entrar a la fase de desarrollo es la única forma de asegurar tu inversión y un Sistema Funcional.
Si eres un Gerente de Área, Director de tu empresa o alguien que tiene una idea para Desarrollar un Sistema o Aplicación y elevar el nivel de tu negocio, podrías caer en la trampa que querer apresurarte a pagar a uno o más Programadores para pasar directo a la Etapa de Desarrollo.
Aquellos que han caído en esta trampa saben lo que significa entrar en un ciclo interminable de desarrollo, fallas, correcciones, desembolso no planificado de dinero y Clientes o Usuarios inconformes.
Todo proyecto tiene que tener un principio y un fin, pudiendo existir nuevas fases, pero lo que no debe suceder es que se convierta en un proceso de requerimientos de cambios interminable.
Para evitar esta trampa, es necesario formular y planificar cada Proyecto de Sistema. En SysModelers hacemos hincapié en decir que estas son las etapas más importantes; que se cubren con el Modelado del Producto y que pone al mismo, en manos de sus Sponsors antes de que inicie el desarrollo, haciéndolo tangible desde el principio.
El tiempo es un recurso, no el enemigo
El tiempo que inviertes en la planificación de tu producto es ahorro en la etapa de Desarrollo del Sistema.
Cuando se trata de proyectos de desarrollo de sistemas, el tiempo es un factor que para los Gerentes o Inversionistas se torna un enemigo.
Considerar que el desarrollo de un producto puede tomar más de tres meses llega a ser una total desilusión para el Gerente o Emprendedor de una idea.
Pero los sistemas exitosos tienen toda una definición bien documentada y descripciones que lo hacen palpable antes de que existan las aplicaciones o el software que lo ponen productivo.
Es éste el punto que debe ser comprendido: Un Sistema se compone de las descripciones que lo definen.
- Casos de uso del Sistema.
- Maquetas de las interfaces que lo componen.
- Datos de entrada y de salida con condiciones de formato y dominios.
- Casos de prueba que demuestran que funciona como el Usuario necesita.
- Condiciones de funcionalidad.
- Modelos de Datos.
- Esquemas de Seguridad.
De esta forma, el software es la representación productiva del Sistema Definido. Pero el Modelo del Sistema es el producto. Esto lo podemos ver si respondemos algunas preguntas:
- ¿Qué sucede entonces si no manejamos el tiempo necesario para modelar nuestro sistema?
- ¿Qué sucede con un software sin definición?
- ¿Qué sucede si se obsolesce?
- ¿Qué sucede si el programador se va?
- ¿Cómo planificamos los cambios o adecuaciones necesarias?
- ¿Cómo funciona un soporte a usuarios sin documentación del funcionamiento óptimo?
Asegura que tu Sistema sea tuyo
El Desarrollo de un Sistema es un proyecto que debe cumplir sus fases. Dejarlo todo en manos de los Programadores de Software resulta en un producto indescifrable para Sponsors, Usuarios y Personal de Soporte.
El primer paso para caer en la trampa del producto intangible es creer que como se trata del Desarrollo de una Aplicación, Desarrollo de un Software o Desarrollo de un Sistema, solo se requiere algunos Programadores de Software.
El Gerente de esta empresa o proyecto busca programadores calificados y algunas veces nóveles jóvenes con ganas de comerse al mundo y dispuestos a abaratar los costos.
No es una casualidad que ahora existan nuevas empresas dedicadas a enseñar lenguajes de programación web online para que cualquiera pueda desarrollar Apps.
La programación sin embargo, requiere de capacidades que se adquieren en una Universidad Real, tales como:
- Métodos numéricos y cuantitativos.
- Lógica de la programación.
- Análisis de algoritmos.
- Estructuras de datos.
- Algebra y física de la computación.
- Métodos de desarrollo de sistemas.
- Investigación de operaciones.
- Entre otras.
Pero más allá de eso, no se hace andar un proyecto únicamente con técnicos. Se requiere un equipo de profesionales para cuidar cada una de las etapas y la inversión que se hace.
De esta forma, un programador debe ser un profesional calificado que espera las definiciones detalladas del producto que va a desarrollar, sin ellas, no habrá producto real; en el mejor de los casos podría haber un software con funcionalidades difíciles de hacer evolucionar en tiempos razonables, con procesos operativos no planificados alrededor para hacerlo funcionar y representando un negocio cuya vida dependerá de nuestro grupo programadores que todo lo pueden y que sin ellos todo se viene abajo.
Las estimaciones son aproximaciones, no números exactos
Como en todo proyecto, en los de Sistemas, se hacen estimaciones de la inversión en cada etapa del ciclo de desarrollo. Cada una tendrá mayor precisión, pero una buena gerencia del proyecto estará preparada para manejar desviaciones.
El ciclo de desarrollo de un sistema se divide en las etapas de:
- Formulación.
- Planificación.
- Desarrollo y Puesta en Marcha.
- Evolución.
La estimación de la inversión necesaria para desarrollar tu Sistema se hace por primera vez durante la Formulación del Proyecto. Se trata de un primer nivel de la estimación y le permite a los Sponsors hacer cálculos de Retorno de su Inversión o concluir si su empresa, organismo o institución puede cubrir el proyecto.
Si la inversión requerida resulta factible para los Sponsors, el proyecto pasa a la etapa de planificación, donde se desarrolla el Modelado Detallado y una estimación de la inversión más precisa. Ésta describe de forma detallada las tareas de desarrollo y permite identificar fases de lanzamiento para realizar una inversión escalonada.
Si un proyecto es pequeño, es posible hacer una estimación previa a la formulación, una que sirve como propuesta original, pero basada únicamente en los enunciados de las Historias de Usuario.
En SysModelers, tenemos entonces tres niveles en los que la estimación de la inversión se vuelve cada vez más precisa:
- Nivel 0. Que hacemos antes de la Formulación usando los enunciados de las Historias de Usuario o Requerimientos Iniciales del Sistema. Este nivel es calculado únicamente para proyectos pequeños; menores de seis meses estimados de ejecución. Hacerlo con proyectos mayores puede incurrir en desviaciones mayores al 100%. En este caso un análisis de sensibilidad posterior puede crear un ambiente de desconfianza.
- Nivel 1. Usa la descripción general de los Casos de Uso, descritos de forma esencial durante la formulación. Es posible identificar fases de lanzamiento del producto para hacer una primera planificación de la inversión, pero puede tener entre un 75% y un 100% de desviación. Esto último se debe a que las tareas de desarrollo aún no se precisan. Sin embargo, permite concluir si es factible ir a la planificación del Proyecto de Sistema.
- Nivel 2. Usa la descripción detallada de los Casos de Uso, descriptos de forma real durante el Modelado. Es posible identificar las fases de lanzamiento con mayor precisión. La inversión se calcula con detalle y una desviación que puede tener entre un 5% y un 25%.
En SysModelers implantamos metodologías ágiles de Desarrollo de Sistemas para planificar pequeños ciclos de desarrollo llamados Sprints, durante la etapa de Desarrollo y Puesta en Marcha. Esto controla el porcentaje de desviación y asegura la calidad de tu producto.
Las desviaciones pueden estar manifestadas en el los tiempos de ejecución o en el dinero u otros recursos. Siempre está presente de forma potencial porque los Proyectos de Sistemas se mueven alrededor del Factor Humano. Pero ir al Desarrollo de un Sistema sin Formular y Planificar un Proyecto puede hacer que ésta desviación se salga de las manos, del calendario y del bolsillo. Es así como en SysModelers aseguramos tu inversión.
La planificación de tus productos para cautivar un mercado a tiempo
Planificar el desarrollo de tus productos en vez de entrar a una etapa de desarrollo sin definiciones a menudo crea más problemas con tus clientes que buenos negocios.
Ya hemos visto como se puede salir de control la desviación de un Proyecto de Sistemas si no se Formula y se Planifica de forma debida.
Pero existen también otras consecuencias negativas que invitan a hacer una Planificación antes de entrar a la etapa de Desarrollo y Puesta en Marcha.
Los objetivos de planificar un Proyecto de Sistemas los resumimos así en SysModelers:
- Describir los escenarios de uso del Sistema requerido en un lenguaje comprendido de forma íntegra por Clientes, Usuarios y Desarrolladores. Descripción íntegra.
- Garantizar el proceso de Aseguramiento de la Calidad de los escenarios de uso que se desarrollarán.
- Asegurar un producto en manos y bajo control del Cliente y no de un grupo de Desarrolladores imprescindibles. Producto Garantizado.
- Construir un Product Backlog[i] que garantice la implantación por parte del Gerente del Proyecto de una metodología ágil de desarrollo y de un plan óptimo de mitigación de riesgos y desviaciones. Mitigación de Riesgos.
Existen muchos métodos de Desarrollo de Sistemas, pero es innegable que implantar uno que salte la planificación es equivalente a improvisar.
Selecciona una empresa que garantice tu inversión y el éxito de tu producto.
Asegura la evolución de tu producto
La Evolución de un Sistema consiste en la capacidad de sus Sponsors de implantar un Soporte Técnico, Soporte a Usuarios y un proceso de identificación de nuevas Historias de Usuario sostenido e independiente de un grupo determinado de desarrolladores.
Luego que tu Sistema está productivo se debe garantizar la sostenibilidad de su funcionalidad. Esto tiene que ver con tres aspectos:
- El mantenimiento de su plataforma tecnológica.
- El mantenimiento de su plataforma funcional.
- Su adaptación a nuevos escenarios de uso.
El mantenimiento de la plataforma tecnológica se logra al haberla seleccionado durante la etapa de Modelado en función de los escenarios de uso requeridos. La selección del factor humano de mantenimiento y la documentación de los procesos de instalación y mantenimiento para convertirlos luego en procedimientos del Sistema son la clave.
El mantenimiento de la plataforma funcional no es otra cosa que el Soporte a Usuarios del Sistema. En este punto hay dos perspectivas: la equivocada y la óptima.
Un Soporte a Usuarios equivocado es aquel que establece un grupo o departamento dedicado a organizar los Requerimientos de los Usuarios en peticiones de cambio a un departamento o grupo de Desarrollores de Software. La mayoría de las respuestas a estos requerimientos consistirán en la modificación de datos por vías ajenas al Sistema o a la modificación o adición de funcionalidades.
En el primer caso se demuestra un modelo de datos desordenado e inconsistente y en el segundo se demuestra la carencia de descripciones de los escenarios de uso del Sistema.
Un Soporte a Usuarios óptimo se sustenta en la descripción detallada de los escenarios de uso del Sistema para dotar a un equipo o plataforma de Soporte de una guía estructurada para dar respuestas a las dudas de los Usuarios de forma inmediata o planificada.
Esto sólo puede ser posible si el Sistema nace de un Modelado Detallado y de la planificación de cada una de las fases de lanzamiento del mismo.
El equipo de Soporte a Usuarios puede ser conformado y capacitado para conocer y difundir de forma pedagógica y estructurada el funcionamiento de cada escenario de uso del Sistema. Sobre esta misma base es posible desarrollar sistemas de soporte Web, guías de resolución de situaciones y vías de documentación estructurada de dudas sobre el uso del Sistema.
Finalmente, lo nuevos escenarios de uso surgen cuando los usuarios tienen nuevas historias de uso del sistema que aún no existen. El nacimiento de nuevas necesidades, el cambio de procesos o la sugerencia de mejoras son el origen de estas nuevas historias de usuario que son documentadas y recopiladas en la formulación de nuevos proyectos de desarrollo de nuevas versiones del Sistema. De esto se trata de la evolución del Sistema y la implantación del ciclo de desarrollo: Formulación, Planificación, Desarrollo y Puesta en Marcha; de forma adecuada serán el proceso que garantizará la Evolución de tu Sistema y de tu Negocio.
[i] Es una lista de todo el trabajo necesario para desarrollar el Sistema requerido. En SysModelers está conformado por la descripción detallada de todos los Casos de Uso del Sistema.
Miguel Abreu
CEO SysModelers