viernes, abril 01, 2005

Proyectos de Software

A medida que las principales corporaciones del mundo dependen cada vez más de sus departamentos de IT para obtener ventajas competitivas, se vuelve imprescindible la capacidad para desarrollar software a medida de manera rápida.
Pero incluso los mejores equipos de programación con la mentalidad más astuta y lógica pueden ver frustrados sus esfuerzos debido al simple problema de la falta de comunicación, que ocurre particularmente entre los ejecutivos del departamento comercial de una corporación y los equipos de desarrollo de software.
En muchas empresas importantes a menudo se presentan conflictos entre el personal ejecutivo y las organizaciones de desarrollo de software. El primero se siente frustrado debido a que los proyectos de desarrollo no logran cumplir con las expectativas y, por consiguiente, afectan los objetivos comerciales. A la vez, las organizaciones de desarrollo de software centran la culpa en los ejecutivos responsables de las decisiones, alegando que el fracaso se debe a la incapacidad de los ejecutivos para priorizar o comunicar los requisitos comerciales, la presión para cumplir con plazos irracionales y la negativa a aceptar estimaciones sensatas.
¿Cuál es la verdadera causa de este conflicto? La falta de comunicación efectiva y la necesidad de implementar procesos que exigen colaboración. Los gerentes de productos de software, así como los gerentes de programas y los analistas comerciales pueden tener objetivos y expectativas diferentes para un mismo proyecto de desarrollo. Cambios tanto del sector comercial (tal vez la necesidad de agregar nuevas características) como del sector de desarrollo (una imprevista reducción de recursos) pueden provocar que el plan original se torne obsoleto e insostenible. Sin un método global y comprendido por todos para controlar las expectativas y mitigar los riesgos del desarrollo pueden surgir conflictos que condenen el éxito de un programa y disminuyan la fe del ejecutivo en la organización del desarrollo.
El trabajo de investigación “CHAOS” de la firma analista The Standish Group demuestra que las causas más frecuentes del fracaso de un proyecto radican en la falta de una dirección competente del proyecto y del respaldo del sector ejecutivo. Sin embargo, ahora que el éxito comercial depende cada vez más de la exitosa distribución de software, se vuelve indispensable el control de riesgos en el desarrollo de software. Para mantener una ventaja competitiva, las empresas deben poner fin al juego de las culpas y crear software que se adecue a procesos de desarrollo rápidos, efectivos y dúctiles.
Este documento analiza cómo los gerentes de software y analistas comerciales pueden ganar control en el proceso de estimación y forjar la confianza en la organización de software. Este enfoque permite que quienes formen parte de la organización elaboren y respalden estimaciones creíbles de proyectos, y hace hincapié en el alineamiento de los objetivos comerciales y las estrategias de software. En última instancia, ayuda a los gerentes de software y analistas comerciales a maximizar el valor comercial de los proyectos de software que gestionan. Este documento también destaca las prácticas de desarrollo más recomendadas ante la incertidumbre que pueda surgir de un proyecto, y presenta la estrategia de Borland para la Optimización en la Distribución de Software y su innovadora solución para la gestión de requisitos y la estimación de proyectos: Borland® CaliberRM.™
Una nueva era de responsabilidad
La gestión de riesgos se practica de hecho en casi todas las disciplinas relacionadas con la ingeniería. Por lo general, se la asocia con la recopilación de varios índices a través de los ciclos de producción, que son luego analizados con el objeto de identificar los riesgos potenciales. Sin embargo, muchas organizaciones de desarrollo de software no han incorporado estas técnicas a sus procesos. Esta falta de rigor puede deberse a que no ha pasado mucho tiempo desde que el desarrollo de software es considerado una disciplina de ingeniería. Más allá de la causa, el resultado es el mismo: cancelaciones y fracasos de proyectos, excesos de costos, y dilatación de plazos. Según el informe elaborado por Standish en el año 2003, sólo el 28% de las aplicaciones cumplieron con el plazo inicial y el presupuesto, mientras que el 48% de los proyectos no contaba con las características necesarias al momento del lanzamiento del producto.
¿Por qué razón fracasan los proyectos de software tan a menudo? En un esfuerzo por maximizar el valor, las organizaciones de software operan bajo presión para optimizar recursos y producir más con menos. Los requisitos varían constantemente y los ciclos de distribución de software son cada vez más agresivos. Además, la complejidad de las tecnologías y arquitecturas se ha incrementado radicalmente, acarreando un entorno de desarrollo de caos semi-controlado.
“En varios grupos de discusión, los ejecutivos de IT nos comentaron que primero obtienen su mejor estimación, la multiplican por dos y luego suman la mitad.”
Fuente: “Caos Extremo,” The Standish Group International
Este caos a menudo concluye en un juego de culpas entre los ejecutivos de la empresa y los grupos de desarrollo de software. Los primeros critican la imprecisión en la estimación y planificación por parte del grupo de desarrollo. También suelen detenerse en la incapacidad histórica del equipo para proyectar confiabilidad, y citan la imposibilidad para establecer expectativas razonables y prever el impacto que puedan causar las alteraciones a un proyecto. Según los ejecutivos de la corporación, la organización dedicada al desarrollo de software carece de credibilidad. Debido a que con frecuencia no logra alcanzar las expectativas comerciales, el equipo de desarrollo es una de las áreas más problemáticas de la empresa.
La organización dedicada al desarrollo de software, por otra parte, suele culpar a los ejecutivos de la corporación por negarse a aceptar estimaciones precisas y responsables; y rechaza la calificación de “engañoso” que recae sobre el grupo de software. Además, los equipos de desarrollo creen que los ejecutivos no comunican ni priorizan debidamente los requerimientos comerciales. Ven cómo las estimaciones y planes originales se vuelven obsoletos, a medida que los ejecutivos comerciales agregan importantes requisitos en medio del proyecto sin haber evaluado adecuadamente el eventual impacto en los plazos y recursos del mismo.
Al mismo tiempo, los gerentes de software y analistas comerciales se ven paralizados por procesos que limitan su capacidad para generar estimaciones oportunas y sustentables.
En medio de este desorden, la realidad demuestra que el éxito comercial depende cada vez más de la exitosa distribución de software. Surge una nueva era de responsabilidad allí donde el control de riesgos en el desarrollo de software es considerado una práctica comercial obligatoria. El control de riesgos debe originarse con la imposición de una visión compartida y sistemática del proyecto. Cuando todos los interesados poseen una comprensión clara de los requisitos e impactos que ejercen los cambios sobre el proyecto, pueden trabajar en colaboración y mantener el buen funcionamiento del proyecto. Mediante la adopción de tecnologías que faciliten la conciliación entre los costos estimados y los plazos a cumplir, los gerentes de software y los analistas comerciales pueden coordinar este proceso y ayudar a sus empresas a maximizar el valor comercial de los resultados del desarrollo.
Conceptos sobre la estimación de proyectos de software y la planificación de riesgos
El éxito del software destinado a la estimación y planificación de proyectos se basa en un entorno de expectativas empresariales factibles, donde las organizaciones destinadas al desarrollo de software puedan estipular objetivamente, desde el comienzo, los esfuerzos necesarios a tiempo, los recursos humanos y tecnológicos y el presupuesto necesario para la exitosa finalización del proyecto. La organización de desarrollo también debe contar con un historial de calidad en sus productos, a fin de que su estimación de los recursos necesarios goce de autoridad.
No obstante, el entorno de las expectativas enfrenta serios desafíos. Los grupos dedicados al desarrollo de software a menudo no cuentan con toda la información respecto de la definición del proyecto y, como consecuencia, no pueden definir de manera realista el alcance del proyecto. Esta brecha en la información acarrea estimaciones y plazos poco confiables, que a su vez generan dificultades para calcular los Rendimientos de la Inversión (ROI) y la planificación comercial. En última instancia, la falta de información sobre los requerimientos conduce a un alto riesgo de elaborar proyectos de mala calidad que se alejen de los objetivos comerciales.
Con frecuencia, los grupos de desarrollo que intentan fijar expectativas también carecen de información histórica. La incapacidad para influir sobre las tendencias internas revela que las organizaciones desconocen sus estimaciones de costos y cronogramas de plazos anteriores, así como su capacidad para alcanzar determinadas metas. Y a menudo, tampoco pueden acceder a las tendencias industriales en cuanto a costos y plazos de implementación de proyectos similares.
Además, las organizaciones dedicadas al desarrollo se enfrentan a la inestabilidad del ámbito de la aplicación, el cronograma de plazos y los recursos. El alcance del proyecto se ve con frecuencia expandido por los ejecutivos de la corporación, que no respetan ni los plazos ni los recursos asignados. Como consecuencia, los cálculos originales se tornan obsoletos. Con el objeto de acelerar el ingreso al mercado, se sacrifica la calidad. Y en el entorno comercial altamente competitivo de hoy en día, muchas organizaciones restringen los recursos destinados al desarrollo, con la intención de disminuir los costos. Esta restricción de los recursos, a su vez, pone en riesgo la calidad del proyecto y su lanzamiento al mercado.
Estos desafíos, riesgos afines y consecuencias conducen a un planeamiento y estimación del proyecto insostenibles; y por lo tanto, a un entorno de escasas expectativas empresariales. Dado que el equipo de desarrollo y los ejecutivos de la corporación no se ponen verdaderamente de acuerdo en cuanto a los requisitos, campo de aplicación, esquema de plazos y recursos del proyecto, los proyectos de desarrollo se ven condenados al fracaso incluso antes de su inicio.
Lo que se necesita son herramientas que permitan al grupo dedicado al desarrollo de software integrar rigor de ingeniería tradicional al proceso de distribución del software. Estas herramientas permitirían mejorar la definición de los proyectos de software, así como la implementación de un enfoque susceptible de ser repetido y de automatización asistida para la elaboración de estimaciones y pronósticos. Esta metodología habilitaría a los interesados dentro de la organización a trabajar en colaboración para crear una visión consecuente y compartida del proyecto. El resultado reflejará una disminución del riesgo y un incremento en la calidad del proyecto.

No hay comentarios.: