jueves, 3 de junio de 2010

ISO 9000

ISO 9000 designa un conjunto de normas sobre calidad y gestión continua de calidad, establecidas por la Organización Internacional para la Estandarización (ISO). Se pueden aplicar en cualquier tipo de organización o actividad orientada a la producción de bienes o servicios. Las normas recogen tanto el contenido mínimo como las guías y herramientas específicas de implantación, como los métodos de auditoría. El ISO 9000 especifica la manera en que una organización opera, sus estándares de calidad, tiempos de entrega y niveles de servicio. Existen más de 20 elementos en los estándares de este ISO que se relacionan con la manera en que los sistemas operan.

Su implantación, aunque supone un duro trabajo, ofrece numerosas ventajas para las empresas, entre las que se cuentan con:

Estandarizar las actividades del personal que labora dentro de la organización por medio de la documentación
Incrementar la satisfacción del cliente
Medir y monitorear el desempeño de los procesos
Disminuir re-procesos
Incrementar la eficacia y/o eficiencia de la organización en el logro de sus objetivos
Mejorar continuamente en los procesos, productos, eficacia, etc.
Reducir las incidencias de producción o prestación de servicios

RUP

El Proceso Unificado Racional (Rational Unified Process en inglés, habitualmente resumido como RUP) es un proceso de desarrollo de software y junto con el Lenguaje Unificado de Modelado UML, constituye la metodología estándar más utilizada para el análisis, implementación y documentación de sistemas orientados a objetos.

El RUP no es un sistema con pasos firmemente establecidos, sino un conjunto de metodologías adaptables al contexto y necesidades de cada organización.

También se conoce por este nombre al software desarrollado por Rational, hoy propiedad de IBM, el cual incluye información entrelazada de diversos artefactos y descripciones de las diversas actividades. Está incluido en el Rational Method Composer (RMC), que permite la personalización de acuerdo a necesidades.

Originalmente se diseñó un proceso genérico y de dominio público, el Proceso Unificado, y una especificación más detallada, el Rational Unified Process, que se vendiera como producto independiente.

Seis Sigma

Seis Sigma es una metodología de mejora de procesos, centrada en la reducción de la variabilidad de los mismos, consiguiendo reducir o eliminar los defectos o fallas en la entrega de un producto o servicio al cliente. La meta de 6 Sigma es llegar a un máximo de 3,4 defectos por millón de eventos u oportunidades (DPMO), entendiéndose como defecto cualquier evento en que un producto o servicio no logra cumplir los requisitos del cliente.

Seis sigma utiliza herramientas estadísticas para la caracterización y el estudio de los procesos, de ahí el nombre de la herramienta, ya que sigma representa tradicionalmente la variabilidad en un proceso y el objetivo de la metodología seis sigma es reducir ésta de modo que mi proceso se encuentre siempre dentro de los límites establecidos por los requisitos del cliente.

Obtener 3,4 defectos en un millón de oportunidades es una meta bastante ambiciosa pero lograble. Se puede clasificar la eficiencia de un proceso en base a su nivel de sigma:

1 sigma = 690.000 DPMO = 68.27% de eficiencia
2 sigma = 308.000 DPMO = 95.45% de eficiencia
3 sigma = 66.800 DPMO = 99.73% de eficiencia
4 sigma = 6.210 DPMO = 99.994% de eficiencia
5 sigma = 230 DPMO = 99.99994% de eficiencia
6 sigma = 3,4 DPMO = 99.9999966% de eficiencia

Por ejemplo, si tengo un proceso para fabricar ejes que tienen que tener un diámetro de 15 +/-1 mm para que sean buenos para mi cliente, si mi proceso tiene una eficiencia de 3 sigma, de cada millón de ejes que fabrique, 66800 tendrán un diámetro inferior a 14 o superior a 16mm, mientras que si mi proceso tiene una eficiencia de 6 sigma, por cada millón de ejes que fabrique, tan solo 3,4 tendrán un diámetro inferior a 14 o superior a 16mm.

Dentro de los beneficios que se obtienen del Seis Sigma están: mejora de la rentabilidad y la productividad. Una diferencia importante con relación a otras metodologías es la orientación al cliente.

lunes, 31 de mayo de 2010

Métricas/Modelos de Estimación de Proyectos (Parte 2)

>>>>>VIENE DE LA ENTRADA ANTERIOR
*****SLIM:

El Algoritmo SLIM (Software Lipe Cycle Management) fue desarrollado en el año 1970 por Larry Putman. Depende de una estimación SLOC para el tamaño general del proyecto, se modifica a través del uso de la curva de Raleigh para producir la estimación del esfuerzo.

El usuario puede influenciar la forma de la curva a través de dos parámetros, la pendiente inicial de la curva y el factor de productividad. Puesto que estos son números dimensionales el usuario tiene dos maneras de ingresar los datos, en la primera el usuario puede calibrar el modelo de ingreso de datos o bien respondes a las 22 preguntas que el SLIM puede proporcionar recomendando un PF y MBL, el segundo método fue el escogido para esta investigación debido a la ausencia de un banco de datos que pueda calibrarse, lo que reflejaría con precisión la experiencia de los usuarios.


*****CHECKPOINT:

Es un método de estimación orientado al aprendizaje, va desde las estimaciones que se realizan manualmente por analogía con proyectos, hasta las que usan técnicas de inteligencia artificial como las redes neuronales.

*****COST * XPERT:

Provee apoyo para determinar esfuerzos y costos de un proyecto de software. Es un software Producido por Marotz Inc.


Webliografía

http://www.itba.edu.ar/nuevo/archivos/secciones/http___www.centros.itba.edu.a...ster_Anteproyecto-Ovejero.pdf

http://html.rincondelvago.com/tecnicas-de-estimacion-de-costo-y-esfuerzo.html

http://es.wikipedia.org/wiki/Heur%C3%ADstica_(inform%C3%A1tica)

http://trevinca.ei.uvigo.es/~cfajardo/Nueva_carpeta/presentaciones/cocomo2k.pdf

http://html.rincondelvago.com/estimacion-de-costos.html

http://www.calameo.com/books/0000018161cd6f6345c16

http://www.econ.uchile.cl/uploads/addon/archivo/daaf168d-f5b9-4664-9486-36c3b35ede15.pdf

domingo, 30 de mayo de 2010

Métricas/Modelos de Estimación de Proyectos (Parte 1)

La estimación es una de las primeras actividades de la gestión de proyectos informáticos. Se define como “la predicción del personal, del esfuerzo, de los costos y del tiempo que se requerirán para realizar todas las actividades y construir todos los productos asociados con el proyecto”

Su objetivo es conocer en etapas tempranas y de manera aproximada, el costo, la duración y los recursos necesarios para el desarrollo de proyectos de software.

Se trata de una apreciación del futuro y la exactitud con la que ésta se realice, depende la mayoría de las veces de una buena herramienta de estimación, de la experiencia del estimador y del acceso a una base de información histórica de los proyectos.

Cuando no contamos con la experiencia necesaria para determinar el costo, el tiempo de realización o cualquier otro aspecto de importancia para el desarrollo de un proyecto de Sistemas o de Software podemos usar métricas de estimación, que nos pueden ayudar a hacer las estimaciones necesarias, que si no son perfectas, igual nos son de mucha ayuda.

A continuación menciono algunas de estas métricas:

*****Líneas de Código (LOC) y Puntos de Función:


Los datos de líneas de código (LDC) y los puntos de función (PF) se emplean de dos formas durante la estimación del proyecto de software:

1. Variables de estimación, utilizadas para calibrar cada elemento del software.
2. Métricas de base, recogidas de anteriores proyectos utilizadas junto con las variables de estimación para desarrollar proyecciones de costo y esfuerzo.

Estas técnicas son diferentes pero tienen características comunes. El planificador del proyecto comienza con una declaración restringida del ámbito del software y, a partir de esa declaración, intenta descomponer el software en pequeñas subfunciones que pueden ser estimadas individualmente. Entonces, estima las LDC o PF (la variable de estimación) para cada subfunción. Luego, aplica las métricas básicas de productividad a la variable de estimación apropiada y deriva el costo y el esfuerzo para la subfunción. Combinando las estimaciones de las subfunciones se produce la estimación total para el proyecto entero.

Difieren en el nivel de detalle que requiere la descomposición. Cuando se utiliza LDC como variable de estimación, la descomposición funcional es absolutamente esencial y, a menudo, se lleva hasta considerables niveles de detalle. Debido a que los datos requeridos para estimar los Puntos de Función son más macroscópicos, en nivel de descomposición al que se llega cuando PF es la variable de estimación es considerablemente menos detallado. También, debe de tenerse en cuenta que mientras que LDC se estima directamente, PF se determina indirectamente mediante la estimación del número de entradas, salidas, archivos de datos, peticiones e interfaces externas, entre otras.

Independientemente de la variable de estimación que use, el planificador del proyecto, normalmente, proporciona un rango de valores para cada función descompuesta. A partir de los datos históricos o (cuando todo lo demás falla) usando su intuición, el planificador estima los valores optimista, más probable y pesimista de LDC o de PF para cada función. Cuando lo que se especifica es un rango de valores, implícitamente se proporciona una indicación del grado de incertidumbre.

Entonces, se calcula el valor esperado de LDC o de PF. El valor esperado para la variable de estimación, E, se obtiene como una medida ponderada de las estimaciones LDC o PF óptima (a), más probable (m) y pesimista (b).
Por ejemplo:

Da una mayor credibilidad a la estimación más probable y sigue una distribución de probabilidad beta.

*****Heurística:

En computación, dos objetivos fundamentales son encontrar algoritmos con buenos tiempos de ejecución y buenas soluciones, usualmente las óptimas. Una heurística es un algoritmo que abandona uno o ambos objetivos; por ejemplo, normalmente encuentran buenas soluciones, aunque no hay pruebas de que la solución no pueda ser arbitrariamente errónea en algunos casos; o se ejecuta razonablemente rápido, aunque no existe tampoco prueba de que siempre será así. Las heurísticas generalmente son usadas cuando no existe una solución óptima bajo las restricciones dadas (tiempo, espacio, etc.), o cuando no existe del todo.

A menudo, pueden encontrarse instancias concretas del problema donde la heurística producirá resultados muy malos o se ejecutará muy lentamente. Aún así, estas instancias concretas pueden ser ignoradas porque no deberían ocurrir nunca en la práctica por ser de origen teórico. Por tanto, el uso de heurísticas es muy común en el mundo real.

Para problemas de búsqueda del camino más corto el término tiene un significado más específico. En este caso una heurística es una función matemática, h(n) definida en los nodos de un árbol de búsqueda, que sirve como una estimación del coste del camino más económico de un nodo dado hasta el nodo objetivo. Las heurísticas se usan en los algoritmos de búsqueda informada como la búsqueda egoísta. La búsqueda egoísta escogerá el nodo que tiene el valor más bajo en la función heurística. A* expandirá los nodos que tienen el valor más bajo para g(n) + h(n), donde g(n) es el coste (exacto) del camino desde el estado inicial al nodo actual. Cuando h(n) es admisible, esto es si h(n) nunca sobrestima los costes de encontrar el objetivo; A* es probablemente óptimo.

Un problema clásico que usa heurísticas es el puzzle-n. Contar el número de casillas mal colocadas y encontrar la suma de la distancia Manhattan entre cada bloque y su posición al objetivo son heurísticas usadas a menudo para este problema.

*****COCOMO:

COCOMO básico es un forma rápida y sencilla de estimar la magnitud de los costes de un proyecto software, pero este alcance está necesariamente limitado porque hay muchos factores sin contabilizar, como son las diferencias de requisitos hardware, la calidad y experiencia del personal, utilización de técnicas y herramientas más sofisticadas, y otra serie de atributos conocidos que tiene mucha influencia en los costes de un proyecto.

COCOMO es un modelo sencillo de COCOMO. Cocomo puede ser aplicado a tres tipos de proyectos software. Esto nos da una impresión general del proyecto.
Proyectos Orgánicos – son relativamente pequeños, con proyectos software sencillo en los que el equipo tiene mucha experiencia y tienen pocos requisitos estrictos.
Proyectos Medios – son intermedios (en tamaño y complejidad), proyecto software en los que no tienen la misma experiencia todos los miembros del equipo. Hay requisitos más y menos rígidos.
Proyectos empotrados – son proyectos software que se deben desarrollar con unos requisitos hardware, software y de operación.
La ecuación de COCOMO en este modo básico es:


Donde E es el esfuerzo aplicado en persona-mes, D es el tiempo de desarrollo en meses, KLOC es el número de líneas estimadas para el proyecto (en miles) y P es el número de personas necesarias. Los coeficientes a, b, c y d se obtienen de la siguiente tabla:


*****COCOMO II:

El nuevo modelo incorporado en el año 1990, tiene características de los modelos COCOMO 81 y Ada COCOMO. COCOMO II tiene también tres submodelos; El modelo de composición de la aplicación es usada para estimar el esfuerzo y planificación de proyectos que usa las herramientas integradas CASE (Computer Aided Software Engineering) para un desarrollo rápido de la aplicación.

Realizando una comparación entre COCOMO 81 y COCOMO II; a este último se le añadió nuevos manejadores de costos para la aplicaciones precedentes, flexibilidad en el desarrollo, necesita documentación para el ciclo de vida, múltiples sitios de desarrollo y requiere software reusable.

Modelo COCOMO II post-arquitectura cubre el actual desarrollo y mantenimiento de un producto de software. Esta etapa del ciclo de vida procede mas a un costo efectivo, si el ciclo de vida de una arquitectura de software ha sido desarrollada, validada con respecto a la misión del sistema y establecida como un marco de trabajo para el producto.

El modelo de post-arquitectura predice el esfuerzo de desarrollo del software, personas-mes (PM), utiliza un conjunto de 17 multiplicadores de manejadores de costo (EM) y un conjunto de 5 escalas de manejadores de costo para determinar la escala del exponente del proyecto (SF). Estas escalas de los manejadores de costo remplazan los modos de aplicación (orgánico, sem.-acoplado y acoplado); el modelo tiene la siguiente forma:

PM = A * (Size) 1.01 + "j5= 1*

I17= 1 Emil

Los manejadores de costo tiene para elegir una de las seis posibilidades que son: Very Low (VL), Low (L), Nominal (N), High (H), Very High (VH), y Extra High (XH); no todos los rangos son válidos para todos los manejadores de costo.

CONTINUA EN LA SIGUIENTE ENTRADA>>>>>

martes, 6 de abril de 2010

GUÍA PMBOK

*****Resumen de lo Investigado:

La guía PMBOK que en español significa algo como Cuerpo de Conocimientos para la Gestión de Proyectos es sin lugar a dudas y acompañado por sus ventajas y desventajas el estándar más ampliamente reconocido para manejar y administrar proyectos tal y como lo dice Jaime González de PMP en su artículo "Manual de Administración de Proyectos"


"Es una colección de procesos y áreas de conocimiento que gracias
al reconocimiento internacional que posee (IEEE Std 1490-2003) es
reconocido como el método poseedor de las mejores prácticas dentro de
la gestión de proyecto"
Reconoce 5 grupos de procesos básicos, dichos procesos se traslapan e interactúan a través de un proyecto o fase. Los procesos son descritos en términos de: Entradas (documentos, planes, diseños, etc.), Herramientas y Técnicas (mecanismos aplicados a las entradas) y Salidas (documentos, productos, etc.).

También reconoce 9 áreas de conocimiento comunes a casi todos los proyectos, las cuáles son mencionadas en la imagen anterior.

Algunas de las Ventajas que podemos reconocer en el PMBOK son mencionadas a Continuación:
  • Disponible en 11 idiomas.
  • Es un Marco y Un Estándar.
  • Orientada a Procesos.
  • Indica el conocimiento necesario para manejar el ciclo vital de cualquier proyecto, programa y porttafolio a través de sus procesos.
  • Define para cada proceso sus insumos, herramientas, técnicas y reportes necesarios (como entregables)
  • Como su nombre lo dice construye un Cuerpo de Conocimiento con el cuál cualquier industria pueda construir las mejores prácticas específicas para su área de aplicación.

Como mencione al principio de este artículo el PMBOK también tiene algunas Desventajas y Críticas la mayor viene de los seguidores de la Cadena Crítica (otro método para gestionar proyectos basado en ecuacioes y métodos, su copetencia) en oposición al Método de la ruta crítica. Las Desventajas que menciona Jean-Michel de Jaeger en su artículo sobre el tema son las siguientes:

  • Complejo para proyectos pequeños.
  • Necesita demasiadas adpataciones con respecto al área de aplicación.

Entre las aplicaciones que tiene podemos mencionar: programas para el gobierno, desarrollo de productos, software, proyectos técnicos de ingeniería, construcción, etc.

El PMBOK utiliza una variación del ciclo de deming para el mejoramiento continuo con un ciclo de vida propuesto en 5 etapas: Inicio, Planificación, Ejecución, Supervisión/Control y Cierre. Estos grupos de procesos no representan fases rígidas ni recetas, sino que, grosso modo, equivalen al modelo “planear, hacer, revisar y actuar” como se muestra en la siguiente imagen:


Citando nuevamente a Gonzáles puedo concluir diciendo que la finalidad del PMBOK no es la de exponer las disciplinas, técnicas y experiencias aplicables a la dirección de proyectos, sino simplemente la de identificar el subconjunto de éstas que es generalmente reconocido como buenas prácticas.

Los siguientes Links muestran las Fuentes de donde fueron tomadas la Información e Imágenes usadas en este artículo:

http://es.wikipedia.org/wiki/Project_Management_Body_of_Knowledge

http://www.12manage.com/methods_pmi_pmbok_es.html

http://liderdeproyecto.com/manual/que_es_el_pmbok.html

*****Opinión Personal:

Hablando de Métodos de Gestión de Proyectos yo solo conozco RUP, es decir, es primera vez que tengo contacto alguno con PMBOK, yo pienso que en temas como la gestión de proyectos informáticos lo importante y cuál nos podría hacer exitosos sería el conocimiento, entre más métodos pueda conocer, mejor profesioanl seré, yo en lo personal me inclino mucho por el área de Gestión de Proyectos y soy un gran fanático de RUP, pero a la vez estoy ancioso por conocer el PMBOK.

También quisiera destacar que si algo me haría inclinarme por un método o por un producto cualquiera sería las opiniones que se tengan sobre él, el reconocimiento y según tengo entendido PMBOK tiene mucho reconocimiento internacionalmente, lo que me hace aún mas interesado.

lunes, 29 de marzo de 2010

"Si el proyecto gana, ganamos todos" (Sobre la Lectura 1)

Después de haber leído la lectura 1 vino a mi mente una idea que por lo menos para mí tiene sentido, el desarrollo de un proyecto informático cualquiera es como un juego, en donde principalmente ambos jugadores, el gerente del proyecto y su cliente, deben tener muy claras las reglas antes de empezar a jugar para así llegar al resultado final deseado por ambos o por lo menos el resultado ideal para este tipo de proyectos, que ambos jugadores ganen!!!


En definitiva hablar de los 12 pasos es la estrategia ganadora, cuando nos dedicamos a desarrollar proyectos informáticos y principalemente cuando se trata del primero a cargo nuestro, tal y como se daba en el caso de la primera discución, estamos llenos de espectativas y ganas de comernos el mundo, pero un proyecto informático es un juego que se debe jugar con seriedad.


Existe muchísima documentación a nuestra mano acerca de la manera correcta a seguir para llevar un proyecto informático al éxito, pero está en nosotros seguir cada uno de los pasos con orden y con responsabilidad, porque cuando un cliente confía en nosotros y nos entrega parte de sus recursos, ya no se trata solo de lo que yo quiero ser o lo que quiero lograr, si no también del respeto que le debo a aquella empresa y sobre todo a mi mismo.


Si estamos hablando de el primer proyecto a mi responsabilidad, es mejor saber que riesgo tomar o aceptar que necesito ayuda, porque si intento y no puedo, mi nombre estará en juego.


Considero en lo personal que uno de los puntos principales para logar el éxito es tener al cliente al tanto de todo lo posible que el pueda entender (Comunicación), mostrarle mi responsabilidad y respeto para con su empresa.


Definir el proyecto, hacer el plan, administrar la documentación, los riesgos, etc, son quizás demasiadas cosas, pero si queremos lograr algo en este negocio nos debemos arriesgar, de una manera responsable y seria.


Para concluir puedo decir que las doce habilidades presentados en la lectura 1, son una referencia que nos puede garantizar el éxito o fracaso de un proyecto solo con que su administrador las tenga o no.


Al final lo que se quiere es el éxito del proyecto, así el
gerente gana, y el cliente también..