sábado, 27 de septiembre de 2008

OpenUP como alternativa metodológica para proyectos pequeños de software

Nosé si realmente alguno de ustedes haya escuchado algo sobre el OpenUp, pero la verdad yo nunca hasta hace unos días, leyendo algunos artículos sobre ésta metodología me entero que es relativamente nueva ya que en el 2006 IBM lanza al mundo del software una metodología ágil llamada “OpenUP”, diseñada para el desarrollo de proyectos y que ha tomado las mejores prácticas del RUP.

¿Cómo se define el OpenUP?

OpenUP es un marco del proceso del desarrollo del software Open Source que en un cierto plazo, se espera que cubra un amplio sistema de necesidades para los proyectos de desarrollo.

OpenUP es un proceso iterativo para el desarrollo de software que es:

- Mínimo: Solo incluye el contenido del proceso fundamental
- Completo: Puede ser manifestado como proceso entero para construir un sistema.
- Extensible: Puede ser utilizado como base para agregar o para adaptar más procesos.

¿Qué es el OpenUp/Basic?

OpenUP/Basic es un subconjunto de OpenUP que lleve un acercamiento ágil para el desarrollo del software, con solo un contenido fundamental provee un conjunto simplificado de artefactos, roles, tareas y guías de trabajo.

OpenUP/Basic es un proceso iterativo del desarrollo del software que es mínimo, completo, y extensible. Es un proceso para equipos de desarrollo pequeños y que le dan valor a la colaboración y a las necesidades de los stakeholder.

OpenUP/Basic es extensible, porque puede ser utilizada como base para agregar o adaptar según las necesidades. Es un proceso ejemplar y extensible para una gama de los procesos del desarrollo y de la gerencia del software que apoya el desarrollo iterativo, ágil, e incremental y es aplicable a un amplio sistema de plataformas y de usos del desarrollo.

Beneficios en el uso del OpenUP

- Ya que es apropiado para proyectos pequeños y de bajos recursos permite disminuir las probabilidades de fracaso en los proyectos pequeños e incrementar las probabilidades de éxito.
- Permite detectar errores tempranos a través de un ciclo iterativo.
- Evita la elaboración de documentación, diagramas e iteraciones innecesarios requeridos en la metodología RUP.
- Por ser una metodología ágil tiene un enfoque centrado al cliente y con iteraciones cortas.

Principios del OpenUP

- Colaborar para alinear intereses y para compartir conocimiento.
- Balancear las prioridades para maximizar las necesidades de los stakeholder.
- Centrado en la Arquitectura.
- Desarrollo Iterativo.

Fases del OpenUP

1. Concepción

Primera de las 4 fases en el proyecto del ciclo de vida, acerca del entendimiento del propósito y objetivos y obteniendo suficiente información para confirmar que el proyecto debe hacer. El objetivo de ésta fase es capturar las necesidades de los stakeholder en los objetivos del ciclo de vida para el proyecto.

2. Elaboración

Es el segundo de las 4 fases del ciclo de vida del OpenUP donde se trata los riesgos significativos para la arquitectura. El propósito de esta fase es establecer la base la elaboración de la arquitectura del sistema.

3. Construcción

Esta fase esta enfocada al diseño, implementación y prueba de las funcionalidades para desarrollar un sistema completo. El propósito de esta fase es completar el desarrollo del sistema basado en la Arquitectura definida.

4. Transición

Es la última fase, suyo propósito es asegurar que el sistema es entregado a los usuarios, y evalúa la funcionalidad y performance del último entregable de la fase de construcción.


Conclusiones

El OpenUp es un proceso modelo y extensible, dirigido a gestión y desarrollo de proyectos de software basados en desarrollo iterativo, ágil e incremental apropiado para proyectos pequeños y de bajos recursos; y es aplicable a un conjunto amplio de plataformas y aplicaciones de desarrollo. Espero que les haya gustado hasta la próxima.

sábado, 20 de septiembre de 2008

¿Cómo crear tu propia metodología basada en un framework estándar? (II)

En el anterior post me enfoqué en hablar sobre lo que es un framework estándar, cuales son los frameworks existentes, ventajas, y recomendaciones antes de escoger un framework estándar. Ahora explicaré sobre la adaptación y documentación de la metodología.

El autor del paper “Lucas Rodríguez” da cuatro tips para la adaptación y documentación de la metodología.

1. Entiende el framework

Una vez que el framework haya sido escogido se comienza a construir la metodología. Primero, se debe tener una interpretación general de la metodología, una vista holística de sus componentes y se recomienda tener una idea clara de su alcance y limitaciones. Podría ser útil (en el caso que se tenga algunos procesos formales en el lugar) para llevar un mapeo de tus procesos al estándar y llevar a cabo un análisis completo, y no es necesario si uno aproxima el proyecto como un proyecto de reingeniería, construyendo procesos nuevos para el desarrollo.

2. Construye un mapa de trayectoria

Una vez que se tenga una visión clara del alcance del framework estándar y tu situación actual, se tiene que definir el alcance de tu metodología, significa que tienes que tener una visión clara de tu organización una vez que la metodología esté en operación. Se debe encontrar que algunos procesos no se aplican a tu organización o son sofisticados para tus necesidades.

“Ser realista”, tomar en consideración los recursos que tienes disponibles para el proyecto y el tiempo que cuentas. Tienes que estar seguro que tu visión estratégica es conocida por todas las personas que se encuentran involucradas en el proyecto, comprendan y contribuyan en el mismo.

El siguiente paso es definir los objetivos del proyecto, pero antes se mencionará las dos formas de afrontar el proyecto:

- Única entrega, la metodología es solamente utilizada una vez que el alcance haya sido logrado.
- Entrega incremental, la metodología es utilizada en muchas iteraciones, donde cada una está compuesta de un conjunto de procesos.

Aunque la propuesta de una única entrega puede tener sentido cuando el alcance del cambio es limitado, se cree que una propuesta iterativa aumenta la probabilidad del éxito del proyecto. Elige las primeras iteraciones de aquellos procesos que agregan un valor visible o resuelvan problemas conocidos, entonces aprenderás cada lanzamiento y aplicación del conocimiento en las iteraciones posteriores.

3. Adáptate y detalla los procesos

Los frameworks estándar son propósitos generales, ya que son útiles para muchas organizaciones las cuáles ellos proveen las mejores prácticas expresadas en términos generales. Después de entender el proceso ya descrito en el framework, tendrás que determinar como esto puede ser llevado dentro del contexto de las organizaciones, determinando los roles los cuales serán responsables las personas involucradas para la ejecución, las herramientas que serán usadas para facilitar la metodología y los documentos, información, objetos, etc… que debe ser entregado.

4. Documenta los procesos

Una vez que los nuevos procesos estén claros, se deben de documentar con la finalidad de facilitar su comunicación a las personas que lo ejecutarán. El objetivo ahora es que los procesos sean ejecutados en el mundo real acorde a la nueva definición de procesos. Esto puede solamente ser logrado a través del entendimiento de los procesos y el interés de las personas que llevan a cabo los procesos, y la “buena documentación de procesos” es la palabra claves para esto.

Los procesos pueden ser documentados en una amplia variedad de formatos con varias herramientas (del MsWord al metoCube, la cual es una herramienta de documentación de procesos desarrollado en Nevant). Sea cual sea el formato y la estructura, se debe tener en cuenta para la documentación de procesos lo siguiente:

- Los documentos de los procesos deben ser fácilmente accesibles, sino lo son las personas no utilizarán tiempo en la búsqueda de ellos.
- La documentación de los procesos debe ser fácilmente navegable, si las personas no encuentran información concreta que ellos están buscando, probablemente desistirán o desperdiciarán tiempo valioso.
- Las herramientas y plantillas que se necesitan llevarse a cabo para el trabajo descrito deben ser fácilmente accesibles para la documentación.
- Complementa las descripciones de los procesos textuales con diagramas.

Espero que haya sido de mucha utilidad, el paper que he encontrado. Ya que es muy importante conocer como se puede estructurar una nueva metodología, aplicando conocimientos de otros frameworks tal como el PMBOK o ITIL y hacer nuestra propia metodología e interesante según los intereses que tengamos para lograr algún resultado específico.

sábado, 13 de septiembre de 2008

¿Cómo crear tu propia metodología basada en un framework estándar? (I)

Algunas veces nos preguntamos: ¿por qué tantas metodologías existen en la actualidad?, ¿por qué ésta se puede aplicar a mi proyecto y otras no?… La respuesta es que cada una de las metodologías tiene su propia prioridad, unas orientadas solamente al desarrollo del software, otras indicadas para proyectos con un rápido cambio de requerimientos, otras al control del proceso, factor humano, etc.

Si uno tiene dificultades en escoger la metodología mas adecuada tiene la opción de crear su propia metodología tomando procesos, técnicas y herramientas de otras metodologías para así formar una metodología híbrida que tenga las características deseadas.

Después de haber dado una breve introducción, explicaré algunos tips que encontré en un paper sobre la creación de nuevas metodologías basadas en un framework estándar. Pero antes explicaré la definición y ventajas de un framework estándar.

¿Qué es un framework estándar?

Un marco estándar es una colección de buenas prácticas, normalmente expresadas como un conjunto de procesos repetitivos creados por una organización ya sea una asociación profesional, universidad, administración pública, etc. Además usualmente se refieren a las áreas de conocimiento, metodologías, etc.

Las estructuras de trabajo estándar tienen que ser aplicadas en toda la organización, no necesariamente detalladas a un nivel que puede alcanzar el estándar sino dependiendo de las necesidades que tenga la organización, es decir las mejores prácticas que te puede brindar éste tipo de estructuras de trabajo tienen que ser trasladadas a procedimientos concretos y políticas de acuerdo a las características y el ambiente de trabajo de la organización.
Por ejemplo, cuando una estructura de trabajo dice “Determina cuales son los riesgos que afectan el proyecto con sus respectivas características”, la metodología puede decir “el líder del proyecto registra los riesgos del proyecto en una lista y documenta sus características”. La metodología también provee plantillas de trabajo, y descripción del roles de los miembros de un proyecto en una organización.


Algunos de los frameworks existentes que son usados como base para una metodología son los siguientes:

- Gestión de Servicios de Tecnología de la Información: ITIL / COBIT / MOF
- Gestión de Proyectos: PMBOK / PRINCE2
- Desarrollo de Software: RUP / OPEN Process Framework


Ventajas en el uso de un framework estándar

- Tomar ventaja del trabajo producido por profesionales expertos en el campo.
- Establece una metodología estándar, con la finalidad que realce la comunicación interna y externamente.
- Facilita procesos de confrontación de resultados, para que se pueda conocer que tan bien se está llevando a cabo los procesos a comparación de otras organizaciones.
- Los empleados se encontrarán motivados, ya que adicionarán un valor agregado.
- Los frameworks principales evolucionarán todo el tiempo, para que te sientas capaz de realizar tu propia metodología.

¿Qué framework debemos escoger?

Antes de escoger una estructura se debe tomar en cuenta las siguientes recomendaciones:

- Busca e investiga: Es normal encontrar frameworks para una sola disciplina.
- Determina cual estándar se adecua mejor a tus necesidades en términos de industria, tamaño de la organización, etc.
- Determina como el estándar se integra con otros estándares de otras disciplinas.
- Evalúa la estructura de la estructura de trabajo encontrado: ¿Tiene una estructura uniforme y formato para las descripciones de todos los procesos?
- Evalúa el alcance: ¿Contiene todos los procesos que tú necesitas? ¿Hace referencia a los sistemas de soporte? ¿Contiene manuales y plantillas?
- Evalúa concordancias con las características de tu organización: De repente el estándar que has encontrado es muy pesado para tus necesidades. Nota que los procesos que parecen muy complejos en la estructura de trabajo pueden ser implementados a través de procesos simples que incrustan un valor agregado.

Source:

http://research.ittoolbox.com/white-papers/itmgmt/pm/create-your-methodology-based-on-a-standard-framework-2054

Bueno espero que les haya gustado mi post, en el siguiente post trataré la segunda parte de éste tema que comprende la adaptación y documentación de la metodología basada en un framework.

sábado, 6 de septiembre de 2008

Integrando DSDM en un ambiente existente con PRINCE2…

Buscando por Internet algún paper que sea de mi interés :) … encontré uno que se refería a como integrar un DSDM en un ambiente de una organización que está utilizando la metodología Prince2, pero ¿que es un DSDM? …. es un framework de proyectos el cuál es iterativo e incremental que tiene un control dinámico de cambios, el cuál más adelante explicaré con más detalle.

El propósito del paper es describir los beneficios de juntar Prince2 y DSDM. Pero… ¿Como integrar los dos métodos? Creo que primero se debe entender cuales son las limitaciones y fortalezas de cada uno de ellos.

Prince2 es un método genérico de administración de proyectos que puede ser empleado para cualquier tipo de proyectos dentro de cualquier tipo de organización. Algunas fortalezas son:

-> Brinda buenos canales de comunicación entre el proyecto, la gerencia del proyecto y el resto de la organización.
-> Provee revisiones regulares del progreso contra el plan y el caso de negocios.

-> Tiene un inicio, medio y fin controlados y organizados.
-> Brinda puntos de decisión flexibles.
-> Provee control administrativo automático de cualquier desviación del plan
-> Provee el compromiso de la gerencia y partes interesadas en el momento y lugar apropiado durante el proyecto

Prince2 no cubre la gestión de servicios ni la gestión del personal.

DSDM es un framework muy útil para proyectos con restricciones temporales o requerimientos cambiantes, combina el punto de vista de las metodologías ágiles (desarrollo rápido de las aplicaciones) con una especificación más rigurosa de la gestión del proyecto. Se compone de un conjunto de principios, un ciclo de vida del proyecto con flexibilidad, roles y responsabilidades claramente definidas y un conjunto de técnicas de mejores prácticas que permitan la entrega del producto.

Con la integración de Prince2 y DSDM todas las fortalezas están en un lugar y permiten un enfoque verdaderamente escalable a agilizar la entrega del proyecto.

La integración de DSDM dentro de un ambiente que utilice PRINCE2 es bastante sencilla ya que ambos enfoques se basan de una manera similar y puede ser descrita como procedente de la misma estable. Ambos usan descripciones de productos y tienen similares estructuras organizativas, por lo tanto, cuando se realiza la combinación de los dos es necesario adoptar nuevos conceptos y componentes del DSDM e instalarlos dentro de la estructura del Prince2. El DSDM adicionaría los siguientes conceptos al PRINCE2:

-> Introducir mecanismos de tolerancia del alcance.
-> Brindar un desarrollo iterativo e incremental de los productos.
-> Proporcionar estructuras de entrega del producto.
-> Permitir un carácter ágil.
-> Promover el uso de talleres de modelado.


Por conclusión, todos los proyectos son únicos pero también tienen semejanzas y utilizar PRINCE2 con DSDM permite a una organización elegir el camino en el cuál ellos desean ejecutar un proyecto en particular. En algunas ocasiones las organizaciones necesitarán ejecutar un proyecto con gerencia muy fuerte y poco lugar para la maniobra. Sin embargo, en otras situaciones un proyecto puede existir una relación más de colaboración y esto puede aprovecharse para tomar ventajas dentro de un enfoque más ágil para aproximarse a una solución exacta.

Referencia:
www.best-management-practice.com/gempdf/DSDM_White_Paper_v2.pdf