Proceso: Planificación

 Una vez analizando una lectura sobre gestión de proyecto observaba como  resaltaron en cursiva y negrita la siguiente frase: “El propósito afirmativo de la planificación consiste en elevar el nivel de éxito”, y es que efectivamente la planificación es la base sobre la cual se efectuara la construcción del proyecto, por ende las bases deben estar bien definidas, sólidas y previstas para que la construcción no se caiga y se mantenga firme en el tiempo, con capacidad de crecimiento y ajustes a mejoras.

Es importante examinar detalladamente visión y alcance del proyecto, requerimientos técnicos, requerimientos de evaluación de procesos, requerimientos de recursos, para definir orden de actividades a ejecutar, duración de cada actividad, asignación de recursos técnicos, humanos y de costos por cada actividad, que nos permitan hacer un análisis de riesgos y estimación de costos y tiempos ajustados a lo que en realidad necesitamos para que el mismo sea ejecutado con éxito.

Es importante destacar que la cantidad de planificación realizada debe ser conmensurada con el alcance del proyecto y la utilidad de la información desarrollada. La planificación es un esfuerzo continuo durante toda la vida del proyecto.  Recordando que PMBOK no es una receta de cocina sino una caja de herramientas las cuales utilizaremos en cada proyecto ajustándola a las necesidades propias del mismo.

Mientras planifica el proyecto, el equipo del proyecto debe involucrar a todos los interesados que corresponda, de acuerdo con cuál sea su influencia en el proyecto y sus resultados. El equipo del proyecto debe implicar a los interesados en la planificación del proyecto, ya que éstos tienen habilidades y conocimientos que pueden ser aprovechados en el desarrollo del plan de gestión del proyecto y en cualquiera de los planes subsidiarios. El equipo del proyecto debe crear un entorno en el cual los interesados puedan contribuir apropiadamente.

La contribución continua como el proceso de retroalimentación y refinamiento no puede continuar de forma indefinida, los procedimientos establecidos por la organización identifican cuándo concluye el esfuerzo de planificación. Estos procedimientos se verán afectados por la naturaleza del proyecto, los límites del proyecto establecidos, las actividades de seguimiento y control correspondientes, así como por el entorno en el cual se llevará a cabo el proyecto.

Otras interacciones entre los procesos dentro del Grupo de Procesos de Planificación dependen de la naturaleza del proyecto. Por ejemplo, en algunos proyectos el riesgo será mínimo o no identificable hasta que se haya realizado la mayor parte de la planificación. En ese momento, el equipo puede reconocer que los objetivos respecto a costes y cronograma son demasiado agresivos, con lo cual implican riesgos considerablemente mayores que los contemplados previamente. Los resultados de las iteraciones se documentan como actualizaciones al plan de gestión del proyecto.

CMMI: Capability Maturity Model Integration

En esta oportunidad les escribo sobre las razones para emplear el modelo de capacidad y madurez en sus organizaciones, destacando que su aplicabilidad permite mejorar  el desarrollo, mantenimiento y operación de sistemas de software.  CMMI representa la fusión de un conjunto de modelos orientados a la mejora de procesos de ingeniería del software, ingeniería de sistemas, desarrollo de productos y adquisición de aplicaciones

Inicialmente debemos evaluar en qué Nivel de Capacidad y Madurez se encuentra la organización, para ello se recomienda aplicar el Standard CMMI Appraisal Method for Process Improvement (SCAMPI), con el mismo se identificaran fortalezas y debilidades de los procesos, así como se revelaran riesgos de desarrollo/adquisición.  Los 6 niveles definidos en CMMI para medir la capacidad de los procesos son:

0.-Incompleto: El proceso no se realiza, o no se consiguen sus objetivos.

1.-Ejecutado: El proceso se ejecuta y se logra su objetivo. Sin embargo los proyectos no están bien documentados, con respecto a la planificación no se cumplen los tiempos, no hay control sobre el cambio de especificaciones, entre otros.

2.-Gestionado: Además de ejecutarse, el proceso se planifica, se revisa y se evalúa para comprobar que cumple los requisitos. Los procesos que hay que implantar para alcanzar este nivel son: Gestión de requisitos, Planificación de proyectos, Seguimiento y control de proyectos, Gestión de proveedores, Aseguramiento de la calidad, Gestión de la configuración. 

3.-Definido: Además de ser un proceso gestionado se ajusta a la política de procesos que existe en la organización, alineada con las directivas de la empresa. Los procesos que hay que implantar para alcanzar este nivel son: Desarrollo de requisitos, Solución Técnica, Integración del producto, Verificación, Validación, Desarrollo y mejora de los procesos de la organización, Definición de los procesos de la organización, Planificación de la formación, Gestión de riesgos, Análisis y resolución de toma de decisiones.   La mayoría de las organizaciones consideran que hasta este nivel alcanzan a cubrir todas sus necesidades.

4.- Cuantitativamente gestionado: Además de ser un proceso definido se controla utilizando técnicas cuantitativas. Los procesos que hay que implantar para alcanzar este nivel son: Gestión cuantitativa de proyectos, Mejora de los procesos de la organización.

5.- Optimizando: Además de ser un proceso cuantitativamente gestionado, de forma sistemática se revisa y modifica o cambia para adaptarlo a los objetivos del negocio. Mejora continua. Los procesos que hay que implantar para alcanzar este nivel son: Innovación organizacional, Análisis y resolución de las causas.  Normalmente las empresas que intentan alcanzar los niveles 4 y 5 lo realizan simultáneamente ya que están muy relacionados. 

Las mejores prácticas CMMI se publican en los documentos llamados modelos: (01) CMMI for Development: Procesos de desarrollo de productos y servicios. (02) CMMI for Acquisition: Gestión de la cadena de suministro, adquisición y contratación externa en los procesos del gobierno y la industria. (03) CMMI for Services: Cubre todas las actividades que requieren gestionar, establecer y entregar Servicios.

Hablemos de ITIL “Information Technology Infrastructure Library”

ITIL es un marco de referencia de mejores prácticas para gestionar operaciones y servicios de Tecnologías de Información TI, el objetivo fundamental de ITIL es alinear negocio y Tecnologías de la Información, permitiendo a las organizaciones implementar  lo que es relevante para sus negocios. ITIL es sencillamente sentido común documentado tras años de aprendizaje de gestores de Helpdesk.

Es importante resaltar que la compañía no puede certificarse en ITIL.  Si lo que persigue es la certificación, debe obtener la ISO 20000 y la BS 15000, que se basan en ITIL.  La documentación relacionada con ITIL consta de cinco volúmenes que se describen a continuación:

  1. Estrategia del Servicio: Provee una guía en como diseñar, desarrollar e implementar la gestión del servicio como un activo estratégico así como también una capacidad organizacional .  Igualmente provee una guía de cómo fijar  objetivos y expectativas de rendimientos con la meta de servir a los clientes y espacios de mercado para identificar, seleccionar y priorizar oportunidades.
  2. Diseño del servicio: Se propone el diseño de servicios TI apropiados e innovadores, incluyendo sus arquitecturas, procesos, políticas y documentación para cumplir los requerimientos del negocio actual y futuro. 
  3. Transición del Servicio: Debe entender el propósito previsto (utilidad) y el compromiso que estos propósitos deben cumplir (garantía) por cada proveedor de servicios.  Se deben establecer políticas para gestionar los cambios de hechos a la infraestructura.
  4. Operación del servicio: La operación del servicio es donde el cliente ve valor de una forma tangible, la operación del servicio realiza encuestas de la satisfacción del cliente y otras técnicas de aplicaciones de medición y presenta esa información al CSI (Mejora continua del servicio) para evaluar y tomar las acciones respectivas.
  5. Mejora Continua del Servicio: La mejora continua del servicio (CSI) depende en la estadística y evaluación de la operación del servicio, CSI utiliza estas medidas como entradas para las estrategias del servicio y para asegurar los lineamientos del negocio.  CSI empieza en los reportes de rendimiento dados por la operación del servicio y concluye con la producción de un plan de mejora para la estrategia de servicio.

ITIL es exitoso debido a que Considera los 4 elementos básicos de toda organización: Personas, Procesos, Productos y proveedores, su implantación puede dar ahorros en los gastos de operaciones de las TI.

Continuare difundiendo información sobre estas mejores prácticas.

Ejemplo de Documento Vision y Alcance

Como bien se menciono en la Fase de Inicio de todo proyecto, uno de los factores bases del exito futuro del mismo es el dejar bien claro cual es la Vision y el Alcance del proyecto donde quede bien enmarcado que vamos hacer y hasta donde vamos a llegar.

En una oportunidad evaluando la plataforma de un cliente, nos propusieron crear un mapa de apliaciones para poder desarrollar nuevamente todas sus aplicaciones en .NET, debido a que las que se encontraban en operaciones estaban desarrolladas en Access 2003 y evidentemente esta el tema de crecimiento, performance, seguridad, replicaciones, etc, etc.

Lo primero fue proponer una Arquitectura Orientada a Servicios con un mapa de aplicaciones que iba a permitir focalizar poco a poco cada desarrollo, donde este seria el macro proyecto y cada aplicacion un proyecto con objetivos, tiempo, recursos, metas independientes pero que eran parte de un objetivo general y parte de una meta final.

La estructura del Documento de Vision y Alcance que les voy a presentar esta compuesto por:

A continuacion Ejemplo Completo:
Oportunidad de Negocio

En la actualidad, la Gerencia de Sistemas de ABC plantea la inquietud de definir una arquitectura de software que le permita definir los diversos servicios que le van a dar soporte a los requisitos de negocio. Se desea estudiar y presentar la creación de sistemas altamente escalables que reflejan el negocio de la organización, y que a su vez brinde una forma estándar de exposición e invocación de servicios, lo cual facilita la interacción entre diferentes sistemas propios o de terceros. A continuación se presenta la declaración de oportunidad y declaración de visión.

Declaración de Oportunidad

La capacidad para responder rápidamente ante los cambios y optimizar los procesos de negocio es un factor clave para la competitividad y el crecimiento de las organizaciones. La agilidad de éstas puede verse cuestionada si se apoya en entornos de IT que no pueden responder de forma flexible a los cambios que afectan a la actividad de negocio. Liberar el potencial que poseen las aplicaciones y recursos de IT y hacerlo disponible de forma general a toda la organización facilita la optimización de procesos y mejora la agilidad empresarial.

La Arquitectura Orientada a Servicios (SOA, Service Oriented Architecture) es una filosofía de diseño que permite un mejor alineamiento de las Tecnologías de Información (IT) con las necesidades de negocio, permitiendo a empleados, clientes y socios comerciales responder de forma más rápida y adaptarse adecuadamente a las presiones del mercado.

Hoy día, en ABC se encuentran instalados diversos sistemas que componen el ciclo de ingreso como son Romana, Despacho, Distribución, Ventas desarrollados en Access 2003, así como algunos procesos como planificación y presupuestos llevados en hojas de calculo Excel, otros desarrollos como Datastring en .Net y Notas Contables plataforma AS-400.

La empresa necesita poder interconectar los procesos, personas e información tanto con la propia organización ejemplo con Administracion y Finanzas asi como -atravesando sus fronteras- con Centro de Distribucion y Proveedores. Tal como están diseñados e implementados los sistemas en la actualidad hace presentar falta de integración entre los componentes de IT –sistemas, aplicaciones y datos- lo que hace difícil obtener una respuesta rápida y efectiva ante los cambios que afectan de forma natural a los negocios. La inflexibilidad genera costes, reduce la capacidad de respuesta ante los clientes, compromete el cumplimiento con las normativas legales y afecta negativamente a la productividad de los empleados.

En suma, una deficiente integración es uno de los problemas más importantes a lo que las organización debe hacer frente para mantener su competitividad y garantizar su crecimiento.

Se propone una Arquitectura SOA para establecer un marco de diseño para la integración de aplicaciones independientes de manera que desde la red pueda accederse a sus funcionalidades, las cuales se ofrecen como servicios. La forma más habitual de implementarla es mediante Servicios Web, una tecnología basada en estándares e independiente de la plataforma, con la que SOA puede descomponer aplicaciones monolíticas en un conjunto de servicios e implementar esta funcionalidad en forma modular.

Bajo este esquema emprender la migración de las diversas aplicaciones y como será la integración completa de todas.

Declaración de Visión

La meta principal de esta propuesta, es diseñar una arquitectura empresarial orientada a servicios para emprender la migración de las diversas aplicaciones que comprenden en ciclo de ingreso y garantizar la integración de aplicaciones independientes donde se pueda acceder a las funcionalidades de cada aplicación, ofertadas como servicios.

Reducir los costos y el tiempo de desarrollo—Los servicios SOA pueden reutilizarse fácilmente y pueden convertirse en nuevas aplicaciones compuestas
Reducir los costos de mantenimiento—Los servicios reutilizables reducen el grado de complejidad interna de los servicios de IT
Aumentar la calidad de los servicios—Una mayor reutilización de servicios crea servicios de mejor calidad en múltiples ciclos de prueba de diferentes consumidores de servicios
Reducir los costos de integración—Los servicios estandarizados pueden trabajar en conjunto, permitiendo que las aplicaciones dispares se conecten con rapidez y facilidad
Reducir el riesgo—Menos servicios reutilizables brindan mayor control sobre las políticas corporativas, y reducen el riesgo general relacionado con el cumplimiento

Concepto de Solución
Metas, Objetivos, Supuestos y Restricciones

· Metas: representa el destino, o el estado al que se quiere llegar por medio de la propuesta
o Generar un mapa con todas las aplicaciones que componen el ciclo de ingreso o interoperabilidad entre las aplicaciones internas y las aplicaciones externas futuras.

· Objetivos: consisten en desglosar las metas en componentes, con el fin de obtener el verdadero nivel de detalles de los fines que se persiguen con las propuesta, y lo que se debe hacer para llegar a ellos.
o Diseñar una arquitectura empresarial con la que se logre:
– Reducir los tiempos de desarrollo
– Integrar procesos aislados
– Automatizar procesos
– Crear servicios web que permitan interacción directa con los clientes y la empresa

· Supuestos: son aquellos factores, que se pueden expresar como elementos que esperan validación por parte de un tercero.
o Apoyo Corporativo para alcanzar las metas y objetivos.

· Restricciones: son aquellos requerimientos no funcionales que delimitan el proceso de desarrollo.
o La propuesta debe generar desarrollos como Aplicaciones Web y/o aplicaciones Windows.

Requerimientos

Requerimientos Operacionales
· Análisis multidimensionales de la data.

Requerimientos de Sistemas
Manejar esquema de arquitectura en tres capas MVC.
Uso de mejores prácticas para el desarrollo de software.

Estrategia de Entrega de Versiones

Se utilizará un modelo de publicación incremental, es decir, se irán cargando en un directorio estándar, todas aquellas versiones que ya hayan sido probadas y validadas por parte de ABC, tomando en cuenta que se hará una revisión previa por cada entregable que sea terminado.

La validación referida consiste en una evaluación basada en umbrales de aceptación (próxima sección), esto consiste en asignar a cada entregable un valor que debe estar comprendido en un intervalo, con un límite inferior y uno superior como calificaciones posibles. Este proceso debe realizarse hasta terminar con el desarrollo de todos los entregables, al final, cuando se hace una prueba de todo el sistema, el criterio de evaluación puede ser un tope mínimo, o un promedio que se debe satisfacer para que la solución entregada pueda pasar al entorno productivo.

Criterios de Aceptación

El valor mínimo para asignar a la evaluación de un entregable es cero (0) puntos.
El valor máximo para asignar a la evaluación de un entregable es diez (10) puntos.
El tope mínimo de aceptación de un entregable es ocho (8) puntos.
El tope mínimo para la aceptación de la solución es un promedio de 9 puntos, promedio que debe calcularse utilizando la ecuación de Media Ponderada.

MSF: Microsoft Solution Framework

En la empresa consultora donde trabajo, una de las verticales principales del negocio es el desarrollo de software, donde tengo la oportunidad de utilizar Microsoft Solution Framework (MSF) como una herramienta, donde la misma nos ofrece orientación sobre cómo organizarnos como equipo, planificar los proyectos, construir e implementar con exito las soluciones que desarrollamos a nuestros clientes. 

Cabe destacar que no puede haber un solo proceso de desarrollo de software para todos los proyectos que ejecutemos. En eso consiste la filosofía principal que esconde Microsoft Solutions Framework.  MSF es una metodología flexible e interrelacionada con una serie de conceptos, modelos y prácticas de uso, que controlan la planificación, el desarrollo y la gestión de proyectos tecnológicos. MSF se centra en los modelos de proceso y de equipo dejando en un segundo plano las elecciones tecnológicas. 

MSF nos brinda las siguientes características:

  • Es Adaptable: es parecido a un compás, usado en cualquier parte como un mapa, del cual su uso es limitado a un específico lugar.
  • Es Escalable: puede organizar equipos tan pequeños entre 3 o 4 personas, así como también, proyectos que requieren 50 personas a más.
  • Es Flexible: es utilizada en el ambiente de desarrollo de cualquier cliente.
  • Es Tecnología Agnóstica: porque puede ser usada para desarrollar soluciones basadas sobre cualquier tecnología.

MSF se compone de varios modelos y disciplinas encargados de planificar las diferentes partes implicadas en el desarrollo de un proyecto: Véase Figura 1.

Figura 1.  Modelos y Disciplinas con MSF

Modelo de Equipo: Es un modelo que ha sido diseñado para mejorar el rendimiento del equipo de desarrollo. Proporciona una estructura flexible para organizar los equipos de un proyecto, asignando roles y responsabilidades a cada miembro del equipo con el objetivo de satisfacer los objetivos del proyecto. Puede ser escalado dependiendo del tamaño del proyecto y del equipo de personas disponibles.  En publicaciones posteriores se explicara con detalle la propuesta de Modelo de Equipo planteado por MSF.

Modelo de Proceso: Diseñado para mejorar el control del proyecto, minimizando el riesgo, y aumentar la calidad acortando el tiempo de entrega. Proporciona una estructura de pautas a seguir en el ciclo de vida del proyecto, describiendo las fases, las actividades, la liberación de versiones y explicando su relación con el Modelo de equipo.

Disciplina Gestión del Riesgo: Diseñado para ayudar al equipo a identificar las prioridades, tomar las decisiones estratégicas correctas y controlar las emergencias que puedan surgir. Este modelo proporciona un entorno estructurado para la toma de decisiones y acciones valorando los riesgos que puedan provocar

Disciplina Administración de Proyectos o Gerencia de Proyectos Es una disciplina que describe el rol de la gestión del proyecto que se basa en:

  • Planificar sobre entregas cortas
  • Incorporar nuevas Caracteristicas sucesivamente
  • Identificar cambios ajustando el cronograma

MSF incluye modelos propios asociados a Proyectos de Desarrollo de Software los cuales se mencionan a continuación:

  •  
    • Modelo de Arquitectura del Proyecto: Diseñado para acortar la planificación del ciclo de vida. Este modelo define las pautas para construir proyectos empresariales a través del lanzamiento de versiones.
    • Modelo de Diseño de Proceso : Diseñado para distinguir entre los objetivos empresariales y las necesidades del usuario. Proporciona un modelo centrado en el usuario para obtener un diseño eficiente y flexible a través de un enfoque iterativo. Las fases de diseño conceptual, lógico y físico proveen tres perspectivas diferentes para los tres tipos de roles: los usuarios, el equipo y los desarrolladores
    • Modelo de Aplicación: Diseñado para mejorar el desarrollo, el mantenimiento y el soporte, proporciona un modelo de tres niveles para diseñar y desarrollar aplicaciones software. Los servicios utilizados en este modelo son escalables, y pueden ser usados en un solo ordenador o incluso en varios servidores.
  •  

Proceso: Inicio

Como líderes de área dentro de una organización, en algunas oportunidades seremos protagonistas en la detección de mejoras en ciertos procesos que generaran el nacimiento de un nuevo proyecto. En el caso de trabajar como consultores, tendremos la oportunidad de escuchar inquietudes de nuestros clientes que pueden generar oportunidades de negocios debido a que descubrimos claramente la necesidad que tienen de emprender un nuevo proyecto y probablemente nuestra posible participación en el mismo.

Independientemente de la posición donde estemos, hay documentos iníciales que nos permitirán definir e iniciar un proyecto con objetivos claros, con tiempos predefinidos y sobre todo con elementos como políticas, normas, recursos disponibles (humanos y de presupuesto). En que nos beneficia esto? En que tendríamos más probabilidades de éxito durante la planificación de cómo, cuándo y con qué recursos ejecutar el proyecto así como la minimización de los riesgos.

El primer proceso que estaremos evaluando es el de Inicio del Proyecto, y nuestra pregunta seria cuales son las consideraciones que debemos resaltar. En resumen deberíamos hacer foco sobre los siguientes aspectos:

1. Promotor del Proyecto: Quien es el solicitante del Proyecto, (Departamento, usuarios, lider del area).
2. Grupo de Trabajo: Identificar los diferentes actores que intervendrian en el buen desarrollo del Proyecto.
3. Visión y Alcance del Proyecto: Documento vital, donde se establecen oportunidades de mejoras, objetivos del proyecto, limitacion del proyecto, recursos, si se requiere tecnologia involucrada: con que contamos?, vision y el alcance del mismo. Es importante enmarcar el proyecto y saber hasta donde vamos a llegar.
4. En caso de requerir complementadores (proveedores): Evaluación de Propuestas Económicas

En resumen estas son las actividades mas resaltantes de esta primera fase.