Estrategias para El Desarrollo de Software Rapido

GESTION DE PROYECTOS INFORMATICOS 1 ESTRATEGIAS PARA EL DESARROLLO RAPIDO ESTRATEGIAS PARA EL DESARROLLO DE SOFTWARE RAP

Views 68 Downloads 0 File size 306KB

Report DMCA / Copyright

DOWNLOAD FILE

Recommend stories

Citation preview

GESTION DE PROYECTOS INFORMATICOS 1 ESTRATEGIAS PARA EL DESARROLLO RAPIDO ESTRATEGIAS PARA EL DESARROLLO DE SOFTWARE RAPIDO ESTRATEGIA GENERAL PARA EL DESARROLLO RAPIDO Se puede obtener un desarrollo rápido siguiendo esta estrategia en cuatro partes: 1. 2. 3. 4.

Evitar los errores clásicos Aplicar las bases del desarrollo Gestionar los riesgos para evitar un retorno catastrófico. Aplicar métodos orientados a planificación.

El soporte óptimo para el mejor plan posible es tener las cuatro partes bien equilibradas, y hacer que cada uno sea lo más fuerte posible. Podemos utilizar los métodos más potentes orientados a la planificación, pero si cometemos el error clásico de descuidar la calidad del proyecto en sus fases iniciales, desperdiciaremos tiempo corrigiendo defectos justo cuando es más caro. Nuestro proyecto se retrasará. Si pasamos por alto al axioma de desarrollo de crear un buen diseño antes de comenzar a codificar, nuestro programa fallara cuando cambie la concepción del producto durante el proceso de desarrollo, y el proyecto se retrasará.

CUATRO DIMENSIONES DE LA VELOCIADA DE DESARROLLO Nuestro proyecto software se desarrolla a través de cuatro dimensiones principales: personas, proceso, producto y tecnología. Las personas trabajan lenta o rápidamente. El proceso supone una mejora en la actividad de las personas, o coloca un obstáculo detrás de otro. Un producto se define de forma que casi se construye solo, o de forma que pone obstáculos a los mejores esfuerzos de gente que está construyéndolo. La tecnología ayuda al esfuerzo del desarrollo u obstaculiza los mejores intentos de los desarrolladores. Las organizaciones de software tienden a ver las dimensiones que no utilizan como valores fijos, y esta puede ser una de las razones de que la planificación de proyectos pueda ser frustrante, especialmente la planificación temporal. Cuando utilizamos una sola dimensión, es prácticamente imposible satisfacer los objetivos de todos. El desarrollo auténticamente rápido necesita que incorporemos gran variedad de tipos distintos de métodos. Las organizaciones más efectivas en la consecución de un desarrollo rápido, optimizan simultáneamente las cuatro dimensiones. PERSONAS Se sabe con seguridad que los temas relacionados con personas tienen mayor impacto en la producción del software y por tanto en la calidad del software.

GESTION DE PROYECTOS INFORMATICOS 2 ESTRATEGIAS PARA EL DESARROLLO RAPIDO Después de 20 años de experiencia en proyectos reales, los investigadores del laboratorio de ingeniería de software de la NASA han llegado a la conclusión que la tecnología no es la respuesta; los métodos más efectivos son aquellos que sacan partido al potencial humano de sus desarrolladores. Cualquier organización que trate seriamente de mejorar la productividad primero debe ocuparse de temas relacionados con personal, como la motivación, equipo de trabajo, selección de personal y formación. Hay otras formas de mejorar la productividad, pero la gestión de personal ofrece los mejores beneficios potenciales. Conjuntamente, los temas relacionados con el personal son más importantes que el proceso, el producto o la tecnología. Tendremos que tenerlos en cuenta si buscamos el éxito. Los resultados de las investigaciones dicen que los efectos de la habilidad y motivación individuales y habilidad y motivación del equipo son pequeños factores que influyen en la productividad. Selección del personal para equipos de proyectos Cinco principios para la selección de personal:     



Máximo talento: usar poco y buen talento Trabajo adecuado: asignar tareas según habilidad y motivación de la gente disponible. Progresión profesional: ayudar a la gente a actualizarse por sí misma en vez de obligarles a trabajar donde más experiencia tienen o donde son más necesarios. Equipo equilibrado: seleccionar a gente que se complemente y armonice con los demás Eliminar la inadaptación: eliminar y reemplazar a los miembros problemáticos del equipo lo antes posible. Organización del equipo La forma de organizar el personal tiene un gran efecto sobre la eficiencia con la que trabajen. Las empresas de software sacan partido a la estructura de sus equipos para que concuerden con el tamaño del proyecto, las características del producto y los objetivos de la planificación.



Motivación Una persona que carece de motivación no va a querer trabajar duro y prefiere dejarse llevar. La motivación es el único factor que provoca que una persona renuncie a las tardes y a los fines de semana sin que se le pida. La motivación es potencialmente el aliado más fuerte que tenemos para el desarrollo de un proyecto.

GESTION DE PROYECTOS INFORMATICOS 3 ESTRATEGIAS PARA EL DESARROLLO RAPIDO PROCESO Tal y como se aplica en el desarrollo de software, el proceso incluye tantas metodologías de gestión como metodologías técnicas. El proceso representa un área de gran relevancia en la mejora de la velocidad de desarrollo, casi tano como las personas. Algunas personas piensan que ocuparse del proceso es agobiante, y no hay duda de que algunos procesos son demasiado rígidos y burocráticos. 

Evitar la repetición de trabajo Si en las últimas etapas del proyecto hay un cambio en los requerimientos, es necesario rediseñar, recodificar y volver hacer las mismas pruebas. Si ha habido problemas en el diseño que no se descubren hasta las pruebas, se debe volver al diseño detallado y la codificación y comenzar de nuevo. Una de las mejores formas de ahorrar tiempo en los proyectos de software es orientar el proceso de forma que se evite hacer la misma cosa dos veces.



Control de calidad El control de calidad tiene dos objetivos principales. El primero es asegurarse de que el producto entregado tiene un nivel de calidad aceptable. El segundo es detectar los errores en el proceso en el momento que haya que emplear menos tiempo para corregirlos. Eso siempre quiere decir localizar los errores lo más pronto posible desde el momento en el que se introducen. Cuanto más tiempo permanezca un error en el producto, más tiempo se empleara en eliminarlo.



Gestión de riesgos La gestión de riesgos es una de las técnicas específicas que se centran en evitar el desastre. El desarrollo rápido no es suficientemente bueno si durante dos semanas antes de la fecha de entrega nos quedamos fuera de juego. Para programar un desarrollo rápido es necesario gestionar los riesgos asociados con la planificación.



Atención a los recursos Los recursos pueden enfocarse de forma efectiva y ayudar a la productividad global, o pueden dirigirse mal y usarse de forma inefectiva. En un proyecto de desarrollo rápido, es incluso más importante de lo habitual acertar al máximo en el mejor plan. Técnicas como oficinas productivas, planificación ajustada y horas voluntarias ayudan a asegurarse de que cada día se hace todo el trabajo posible.

GESTION DE PROYECTOS INFORMATICOS 4 ESTRATEGIAS PARA EL DESARROLLO RAPIDO 

Orientación al cliente Uno de los cambios fundamentales entre el desarrollo de software tradicional y los modernos estilos de desarrollo es el giro hacia las necesidades y deseos del cliente. Los desarrolladores han aprendido a desarrollar software a partir de la especificación que supone solo la mitad del trabajo. La otra mitad es ayudar al cliente a definir el producto que desea y la mayoría de las veces es necesaria una aproximación diferente a la tradicional especificación en papel. Ponerse en su lugar es una de las mejores formas de evitar las vueltas atrás masivas provocadas por el cliente que decide que el producto correcto no es el que está desarrollado desde hace 12 meses. Métodos como la entrega por etapas, entrega evolutiva, prototipado evolutivo, prototipado desechable y negociación conveniente aportan ventajas a esta área.

PRODUCTO La dimensión más tangible del cuarteto gente/proceso/producto/tecnología es la dimensión del producto, y ocuparse del tamaño y características del producto plantea enormes oportunidades de reducir la planificación. Al reducir el conjunto de prestaciones del producto, reducimos el plan. El total en la reducción sobre el plan que se obtiene al ajustar en el tamaño y las características del producto solo se ve limitado por el concepto de producto que tiene el cliente y la creatividad del equipo. Tanto el producto como las características del producto ofrecen oportunidades para acortar el tiempo de desarrollo. 

Tamaño del producto El tamaño del producto es el elemento individual que más aporta al plan de desarrollo. Para productos grandes se emplea más tiempo que para los pequeños. Prestaciones necesitan especificación, diseño construcciones, pruebas e integración adicional. Requieren una coordinación adicional con el resto de utilidades. Puesto que el esfuerzo para construir software se incrementa desproporcionalmente más rápido que el tamaño del software, la reducción del tamaño mejorara la velocidad del desarrollo desproporcionadamente.



Características del producto Se empleara más tiempo en desarrollar un producto con objetivos ambiciosos respecto al rendimiento, uso de memoria, de robustez y fiabilidad que el que se empleara en uno sin ningún objetivo para estas características. Se deben elegir las metas. Si la auténtica prioridad es el desarrollo rápido, no podemos ponernos trabas a los desarrolladores insistiendo en demasiadas prioridades a la vez.

GESTION DE PROYECTOS INFORMATICOS 5 ESTRATEGIAS PARA EL DESARROLLO RAPIDO

TECNOLOGIA Una forma rápida de mejorar la velocidad de desarrollo es pasar de usar herramientas menos efectivas a otras más efectivas. En la historia del desarrollo de software, uno de los cambios con mayor influencia fue el paso de lenguajes de bajo nivel a lenguajes de alto nivel. La selección de la herramienta efectiva y la gestión de riesgos asociados son aspectos claves en una iniciativa de desarrollo rápido. PRINCIPIOS DE LA GESTIÓN DE PROYECTOS PREDICTIVA (CLÁSICA) Patrón de trabajo de la gestión predictiva: El producto final ¿Qué hay que construir?. La gestión de proyectos parte de la descripción detallada de cómo debe ser el resultado (planos, requisitos…) Con fecha y coste pre-estimados El plan del proyecto Identificación de las tareas y recursos que se necesitarán para construir el producto. Diseño del plan que consigue la coordinación y ejecución, con una combinación de recursos y tiempo adecuada a las necesidades y posibilidades del proyecto. ERRORES FRECUENTES DE ENFOQUE EN LA GESTIÓN PREDICTIVA La gestión de proyectos predictiva centra la atención en la planificación, ejecución y control del trabajo. La base de conocimiento desarrollada pone a disposición de los gestores técnicas y herramientas útiles para: ordenar ideas, registrar, consultar y analizar información.  Diagramas de Gantt.  Ruta crítica.  Plan de comunicación.  Plan de riesgos.  Plan de calidad.  Plan de recursos.  Matriz de responsabilidades.  Actas de reuniones.  Etc. Pero esto son herramientas, y no el trabajo que deben realizar. El trabajo del gestor de proyectos no es: hacer el Gantt, el presupuesto, el plan de comunicación, el plan de riesgos, moderar las reuniones y redactar actas o registrar tiempos y gastos. Su misión es garantizar el seguimiento del plan previsto, y según sea la organización de la empresa en la que trabaje tendrá mayor o menor libertad para usar unas u otras herramientas. Las organizaciones que gestionan los proyectos con patrones predictivos, y disponen de modelos de procesos maduros, tienen definidas e institucionalizadas las prácticas de trabajo de los gestores de proyectos. Procedimentar el trabajo es útil y necesario en

GESTION DE PROYECTOS INFORMATICOS 6 ESTRATEGIAS PARA EL DESARROLLO RAPIDO entornos basados en procesos, pero se debe evitar que la rutina desvirtúe el objetivo de la gestión. El objetivo no es tener dibujado un plan sobre un diagrama de Gantt. El objetivo es diseñar el plan con la distribución de recursos y con las rutas de tareas más adecuadas. El diagrama es solo un lenguaje para transmitir ese diseño. Ídem con todas las tareas de gestión: selección de proveedores, recursos, comunicación, reuniones, riesgos, etc. Los procesos ponen junto a ellas modos y protocolos de trabajo y registro, y se pueden hacer malas gestiones, malos planes y malos seguimientos con documentos y registros preciosos, confeccionados siempre en fecha y según las normas de la empresa.

SCRUM Scrum es una metodología para la gestión y desarrollo de software basada en un proceso iterativo e incremental utilizado comúnmente en entornos basados en el desarrollo ágil de software. Aunque Scrum estaba enfocado a la gestión de procesos de desarrollo de software, puede ser utilizado en equipos de mantenimiento de software, o en una aproximación de gestión de programas: Scrum de Scrums. CARACTERÍSTICAS DE SCRUM Scrum es un modelo de referencia que define un conjunto de prácticas y roles, y que puede tomarse como punto de partida para definir el proceso de desarrollo que se ejecutará durante un proyecto. Los roles principales en Scrum son el ScrumMaster, que mantiene los procesos y trabaja de forma similar al director de proyecto, el ProductOwner, que representa a los stakeholders (clientes externos o internos), y el Team que incluye a los desarrolladores. Scrum permite la creación de equipos auto organizados impulsando la co localización de todos los miembros del equipo, y la comunicación verbal entre todos los miembros y disciplinas involucrados en el proyecto. Un principio clave de Scrum es el reconocimiento de que durante un proyecto los clientes pueden cambiar de idea sobre lo que quieren y necesitan, y que los desafíos impredecibles no pueden ser fácilmente enfrentados de una forma predictiva y planificada. Por lo tanto, Scrum adopta una aproximación pragmática, aceptando que el problema no puede ser completamente entendido o definido, y centrándose en maximizar la capacidad del equipo de entregar rápidamente y responder a requisitos emergentes.

ESQUEMA PARA EL DESARROLLO DE UN PROCESO AGIL (SCRUM) TITULO Documento de Análisis y Diseño [Nombre del Producto/ Aplicativo]

GESTION DE PROYECTOS INFORMATICOS 7 ESTRATEGIAS PARA EL DESARROLLO RAPIDO Versión V.X INICIO Historial de versiones La siguiente tabla describe la historia de modificación del entregable del proyecto, del más reciente al más antiguo, para propósitos de seguimiento. Versió n (V.X)

Fecha dd/mm/a aaa

Modificaciones

Modificado por

Glosario de Términos

Término

Definición

NOTA IMPORTANTE: Todas las secciones del Documento de Análisis y Diseño deben ser llenadas. En ningún caso debe usarse la frase "No Aplica". Pueden usarse frases tales como "No hay cambios", "No hay impacto en esta sección", "La solución que se está implementando no tiene impacto en esta sección", etc.

TRAZABILIDAD Proceso Ad-Hoc: Son los procesos funcionales o técnicos propios aplicación(es) que no están estandarizados y son identificados por el analista. Requisito Funcional: son los requisitos que cubrirá el proceso Ad-Hoc Proceso Ad-Hoc

Requisito Funcional

Proceso Ad-Hoc 1

[Requisito Funcional 1.1] [Requisito Funcional 1.2]

Proceso Ad-Hoc 2

[Requisito Funcional 2.1]

del/las

GESTION DE PROYECTOS INFORMATICOS 8 ESTRATEGIAS PARA EL DESARROLLO RAPIDO Proceso Ad-Hoc 3

[Requisito Funcional 3.1]

Proceso Ad-Hoc 4

[Requisito Funcional 4.1]

Proceso Ad-Hoc N

[Requisito Funcional N]

CONTEXTO GENERAL DE LA SOLUCIÓN Evaluación Técnica Preliminar Describir en forma general las posibles alternativas de solución preliminares, seleccionar en base a los siguientes criterios: Costo, performance, complejidad, crecimiento de la funcionalidad, limitaciones tecnológicas, sensibilidad a los cambios, riesgo, descontinuación del aplicativo, capacidades y limitaciones de los Usuarios finales y operadores. 

Alternativa 1:



Alternativa 2:



Alternativa n:

Conclusiones: Describir las principales conclusiones derivadas de las evaluaciones técnicas preliminares.