Lista de Artículos Inicio
- Año II  






Más allá de la metodologías de desarrollo

(Artículo sobre Project management)
Helkyn R. Coello Costa

Ing. Informático
AccountTECH Peru - Project Manager
MCSD.NET / MCDBA / MCT
Catedratico UPN
Trainer/ Expositor en diversas instituciones

informatizate(at)informatizate(dot)net
Octubre 13 del 2004.


Probablemente usted ha estado desarrollando proyectos de software por un periodo largo de tiempo, proyectos en su casa, como: planear una fiesta, un baile, etc.; o en el trabajo, como: crear un nuevo software, etc.

Para mucha gente trabajar en proyectos IT es una experiencia frustrante. Los miembros del equipo no se comunican o no se ponen de acuerdo en como hacer las cosas, los deadlines no se cumplen, el cliente queda molesto, etc.

En este artículo hablaremos sobre los proyectos de software y como poder administrarlos. Trataremos de encontrar respuesta a preguntas comunes que nos solemos hacer cuando algo no resulta como es debido en el proyecto en el que participamos, como:

  • ¿Puedo yo administrar mi proyecto IT?

  • ¡Tengo el mejor grupo de programadores! ¿pero es eso suficiente?

  • Estamos usando esta novedosa metodología de desarrollo de software exitosa en N lugares y N empresas importantes. ¿Por que estamos fallando entonces?


Estas preguntas nos suelen rondar por la mente cuando participamos en algún proyecto de software en la que encontremos dificultades.


Que es Project Management

Podemos decir que Project Management es un conjunto de tareas, métodos y conocimientos que al ser aplicados ayudan a dar mejores resultados a su proyecto. Nos da un conjunto de pasos definidos con los cuales podemos llevar paso a paso cada tarea que involucra un proyecto, desde su concepción hasta su finalización; a diferencia de la mayoría de metodologías de desarrollo que solo se centra en el proceso de creación del software, más no de los aspectos de monitoreo, equipos, presupuestos, cronogramas, etc.

De eso se trata Project management, no solo de ver como arreglar la sala de su hogar para organizar la fiesta y tener la lista de canciones que se tocará, sino también de ver cuanto costará cada cosa: equipos de sonido, golosinas, bebidas; a quienes invitaré, cuanto durará, como puedo minimizar esos gastos, que medidas de seguridad tomaré, como evaluaré si fue una fiesta exitosa, etc.


Tipos de Project Management

Hay mucho métodos para Project management, cada uno tienen su propio conjunto de pasos a seguir. Pero podemos encontrar 2 grupos importantes:

  • Directive PM:

    Representa el antiguo Project management. Asume que el Project manager es quien lo puede hacer todo: el planeamiento y control del proyecto. El manager hace el plan y luego delega las tareas a los miembros del equipo. Luego supervisa que cada uno haga su trabajo. Se ve claramente que a comunicación en este estilo de Project management es entre el manager y el miembro el equipo.

    Los problemas que presente este tipo de Project management son varios:

    • Los miembros del equipo tiene poca comunicación
    • No entienden el proyecto en su totalidad y como cada parte encaja en el todo
    • Muy poco compromiso con el proyecto


  • ParticipatoryPM

    Esta es la nueva modalidad de Project management en el cual el manager facilita las tareas de administración del proyecto, liderando al equipo a través de los pasos de planeamiento del proyecto.

    Cada miembro del equipo monitorea el proyecto y la comunicación se da mas horizontalmente y en forma más participativa entre los miembros del equipo y manager.

    Las ventajas de este estilo de Project management son:

    • Cada miembro tiene un entendimiento completo del proyecto
    • Se generan más ideas para el proyecto
    • Se toman mejores decisiones
    • La participación mas activa crea mayor compromiso con el proyecto
    • La moral del equipo se eleva


Roles en Project Management

  • Sponsor:

    Es la persona que financia el proyecto, la cual decide la puesta en marcha del proyecto y quien elije al o los project managers. El sponsor es el encargado de establecer las metas que se deben obtener con el proyecto, objetivos financieras, etc.

  • Project Manager

    Es la persona que esta al frente del proyecto, quien se encarga de liderar y coordinar las tareas del proyecto y quien elije a los integrantes del equipo para la realización del proyecto.

  • Resource Managers

    Es la persona encargada de brindar todas las facilidades para la ejecución del proyecto. Esto abarca recursos humanos así como recursos de hardware, software, oficinas, bebidas, breaks, etc., todo lo necesario para mantener un buen ambiente de trabajo tanto técnico como emocional.

  • Team Members

    Son los miembros del equipo de desarrollo, quienes estarán a cargo de la realización del proyecto. Están dirigidos por el Project manager, con quien tiene que reportarse y brindar sus informes de progreso. Dentro de los miembros del equipo suele haber un líder de equipo, quien realiza tareas de apoyo al resto del equipo y sirve también como colaborador del Project manager.

  • Customer

    Es la persona u empresa la cual solicito el proyecto y la cual evaluará los beneficios del resultado final del proyecto; en el caso del mundo IT esto seria un software o un servicio IT.


Pasos hacia un proyecto IT exitoso

Pocos pasos no quiere decir desarrollo rápido, los pasos adecuados se deben dar para que un proyecto sea exitoso y de desarrollo rápido.

Mayormente se consideran los siguientes pasos:

  • Iniciación (charter, documento de visión)
  • Planeamiento (documento de plan de proyecto)
  • Ejecución (metodología de desarrollo)
  • Finalización (valoración Post-Mortem)

Pero podemos desglosar estos pasos o más aun, mejorarlos para darles un enfoque mas completo para un método de desarrollo rápido y eficaz de un proyecto IT:

  • Planeamiento
  • Valoración de riesgos
  • Desarrollo de un equipo adecuado
  • Evitar los errores clásicos
  • Involucrar al usuario en todo el desarrollo (extreme programming)
  • Una metodología adecuada de software
  • Valoración post-mortem


Los pilares fundamentales de todo proyecto IT

  • Planeamiento

    Esta es la fase primordial en todo proyecto, puesto que sin un planeamiento adecuado, es muy difícil tener un proyecto exitoso.

    En esta fase se establece los límites, restricciones, objetivos y prioridades del proyecto. Estos son establecidos por el sponsor en un documento de planeamiento llamado "charter"

  • Valoración de riesgos

    Es muy importante también que usted haga un plan de riesgos. Esto se hace mediante un análisis de riesgos en el cual se establecen las posibles situaciones en las que el proyecto podría ser afectado. A la vez se establece las acciones a tomar en caso se concreten dichas situaciones

    Básicamente este plan de riesgos puede ser realizado en una hoja de Excel donde usted los defina

    • Defina sus riesgos
    • En una escala determinada, establezca la posibilidad de que se cada uno de ellos
    • En una escala determinada, defina que tan grande sería el impacto sobre el proyecto
    • Defina e indique cuales son los eventos indicadores de que el riesgo se ha concretado
    • Defina el plan de contingencia para cada uno de ellos.

    Aunque usted no lo crea, si usted tiene este plan bien definido, puede ayudarle extraordinariamente en el desarrollo del proyecto, puesto que usted y su proyecto estará preparado para las contingencias más comunes y probables.

  • Desarrollo de un equipo adecuado

    El factor humano es muy importante. Es la gente quien realiza las tareas y los procesos. Depende de la gente el terminar con las tareas establecidas, y de ellos y de su experiencia depende muchas veces el éxito de un proyecto.

    Como manager, se debe centrar en buscar a gente más adecuada para su proyecto, con el perfil profesional adecuado, con la experiencia requerida para el proyecto, con la suficiente motivación para poder afrontar un proyecto IT y con las características emocionales suficientes para un trabajo armonioso en un equipo de desarrollo. En otras palabras busque gente no solo que por su trayectoria o amplios conocimientos, sino también fíjese en su personalidad. Puede usted tener un excelente programador pero si se lleva mal con los demás miembros del equipo, tendrá usted mas de un dolor de cabeza.

    La química, el entendimiento, la sinergia en un equipo es tan importante como los conocimientos, experiencia y trayectoria.

    Otro punto importante es evitar los excesos laborales. EL equipo puede trabajar bajo presión y con devoción, pero sin llegar a la exageración y explotación. Déle el trato adecuado a su equipo de desarrollo, establezca un buen ambiente laboral y tenga la certeza de que este equipo será más productivo y comprometido.

  • Evitar errores clásicos

    También es importante que a lo largo del proyecto no se cometan errores. O al menos tratar de minimizarlos al máximo.

    Hay un sin numero de errores "clásicos" o comunes que se suelen cometer en los proyectos IT. Si usted les "pone el ojo" a estos errores clásicos para que no ocurran, con ese solo hecho conseguirá mejorar el management y proceso de desarrollo de su proyecto.

    A continuación la lista de errores más frecuentes encontrados en una diversidad de proyectos:

    Errores relacionados con la gente

    • Poca motivación
    • Empleados de poca calidad
    • Empleados problemáticos
    • Agregar mas programadores a un proyecto ya retrasado
    • Oficinas ruidosas y aglomeradas
    • Fricciones entre los developers y el cliente
    • Expectativas poco realistas
    • Falta de un manager efectivo para el proyecto
    • Falta de participación del staff involucrado
    • Falta de participación del usuario
    • Politiquerías antes que desarrollo
    • "Ilusiones"

    Errores relacionados con los procesos

    • Planeamiento demasiado optimista
    • Falta de administración de riesgos
    • Falla en los contratos
    • No hay suficiente planeamiento
    • Abandono del planeamiento bajo presión
    • Pérdida de tiempo al inicio del proyecto
    • Saltarse las tareas iniciales
    • Diseño no adecuado
    • Falta de supervisión
    • Falta de estimaciones

    Errores relacionados con el producto

    • Requerimientos excesivos
    • Cambio de requerimientos
    • Developers muy meticulosos

    Errores relacionados con la tecnología
    • Síndrome de la panacea
    • Sobre-estimación de las ventajas del uso de una nueva herramienta
    • Cambio de herramientas a mitad del proyecto
    • Falta de un control de código fuente automático


  • Involucrar al usuario en todo el desarrollo

    El usuario es quien finalmente evaluara y aprobara o desaprobara el proyecto terminado. Por eso usted debe siempre de involucrar al usuario en la definición del proyecto y en los subsiguientes pasos. Esto evitará "malos entendidos" y evitará perder tiempo en re-hacer trabajo.

    Debe usted establecer canales y vías de comunicación constante con el cliente para poder brindarle la mayor información posible del avance del proyecto para que éste pueda valorarlo y dar su feedback, que es la base para hacer los reajustes sin algo no estuviese del todo bien. De lo contrario, si faltara comunicación con el cliente su equipo podría perder días, semanas y hasta meses valiosos haciendo algo que al usuario finalmente no le gustó.

    Esto es la base de lo que se conoce como "Extreme Programming", que basa su metodología en la constante retroalimentación del usuario en el proceso de desarrollo.


  • Metodología de Desarrollo

    El Project management hace uso de las metodologías de desarrollo para la ejecución de un proyecto. Esta nos dirá la forma en la que ejecutaremos el proyecto, con que técnicas.

    Project management quiere decir gestionar todos los procesos de un proyecto, no solo ejecutar el proyecto. La gestión inicial del proyecto es esencial para una correcta ejecución del mismo bajo una determinada metodología. Si se hizo o salto las fases de planeamiento y gestión inicial, tenga por seguro que su proyecto sufrirá en todo el camino que le quede por recorrer.

    Se debe considerar en la medida que sea posible una metodología de desarrollo que sea orientado al usuario, lo que, como ya dijimos anteriormente, se trata de abrazar el concepto principal de "extreme programming". En otras palabras una metodología de desarrollo que permita al usuario "visualizar" el avance que esta teniendo el proyecto. Esto dependerá lógicamente del tipo de proyecto que se realice.

    Recuerde que el usuario no le importa cuantas líneas de código usted haya escrito, ni que tan elaborado y complicado haya sido la algoritmia de determinado modulo de código. Lo que al usuario realmente le importa y es lo que le pedirá es ver algo tangible que el pueda utilizar.

    Algunas de las metodologías que usted puede considerar son:

    • MSF
    • RUP
    • XP
    • Prototipado evolutivo
    • Entrega por etapas
    • Entrega evolutiva
    • Cascadas


  • Valoración Post-Mortem

    En esta valoración final, se trata de medir o establecer si el proyecto fue exitoso o no. Un proyecto es exitoso cuando el cliente queda satisfecho con el producto y cuando ha habido un aprendizaje provechoso al final de la ejecución del proyecto.

    El cliente quedará deslumbrado cuando el producto excede sus expectativas. Y se desilusionan cuando obtienen menos de lo que esperaban. Estas expectativas pueden ser manejadas.

    Una buena práctica es prometer menos de lo que se dará finalmente al cliente. Si los clientes esperan menos de lo que finalmente obtendrán, ellos quedarán deslumbrados con el producto. Pero si ellos esperan más de lo que obtienen, ellos no quedarán contentos. En ambos casos, obtienen lo mismo producto; la única diferencia es lo que esta en la mente del cliente sobre lo que obtendrá, sus expectativas.

    La segunda forma de medir el éxito de un proyecto es si es que se ha satisfecho las necesidades de la organización que ejecuta el proyecto. Estas necesidades pueden ser: generar una ganancia por el desarrollo del proyecto, desarrollar nuevas capacidades en nuevas áreas tecnológicas, etc. Estas necesidades de la organización son representadas por el sponsor del proyecto y deben de incluirse en el documento inicial de visión (o charter).


Conclusiones

Una buena gestión del Project management le dará existo a su proyecto. Considere siempre todos los aspectos de su proyecto. Haga un planeamiento adecuado, tómese el debido tiempo para hacerlo; sin el, su proyecto tendrá pocas posibilidades de éxito.

Planee sin "ilusiones", haga el planeamiento en forma realista y honesta. Considere el factor humano como elemento primordial puesto que es este equipo de personas en quienes finalmente recaerá la ejecución del proyecto. Establezca un buen ambiente laboral y erradique las explotaciones y malos entendidos en el equipo.

Evite, siempre evite cometer los clásicos errores que se suelen dar en el desarrollo de un proyecto IT. De igual manera analice los posibles riesgos del proyecto, valores, haga un ranking de ellos y establezca planes de contingencia en caso sucedan.

Involucre siempre al cliente en el proceso de desarrollo, la valoración temprana de éste es esencial para evitar retrasos y terminar el proyecto exitosamente.

Escoja un método adecuado de ejecución de su proyecto, el que más se amolde al tipo de proyecto que usted administra. Con ello, su proyecto se ejecutará sin contratiempos ni descuadres en los procesos.

Finalmente, en la culminación del proyecto, haga la valoración del mismo, y aprenda de el, analice los errores cometidos, las metas alcanzadas y no alcanzadas. Esto es muy importante para el aprendizaje de la organización.

Con todos estos puntos usted tendrá un proyecto que no le sea un dolor de cabeza constante.


Referencias:

Proyéctos informaticos - Steve McConnell

Project Management - Paula K Martin



   

Otros Artículos del Autor: Fecha Publicación:
Quiero Certificarme, ¿Que Hago? Setiembre 7 del 2004
Dime como Programas y te diré Quien Eres Agosto 2 del 2004


Google


Copyright © 2002-2004 Grupo Informatizate. Reservados todos los derechos.
Prohibida la reproducción total o parcial en cualquier formato sin previa autorización.
On-line desde el 27 de Noviembre del 2002