Gestión de Proyectos de Desarrollo de Software

29
GESTIÓN DE PROYECTOS DE DESARROLLO DE SOFTWARE UNIVERSIDAD DE CARTAGENA 2013

Transcript of Gestión de Proyectos de Desarrollo de Software

  • 5/25/2018 Gestin de Proyectos de Desarrollo de Software

    1/29

    GESTIN DE PROYECTOS DEDESARROLLO DE SOFTWAREUNIVERSIDAD DE

    CARTAGENA2013

  • 5/25/2018 Gestin de Proyectos de Desarrollo de Software

    2/29

    PREGUNTAS INICIALES Qu es el software? Cules son los pasos para construirlo? Qu se requiere para construirlo? Quines participan en la construccin del

    software? Qu modelos de desarrollo de software

    conoce? Qu es la gestin de procesos de software?

  • 5/25/2018 Gestin de Proyectos de Desarrollo de Software

    3/29

    GESTIN DE PROYECTOS DE

    DESARROLLO DE SOFTWARELa gestin y planificacin de proyectos es unaactividad que empieza antes de iniciar cualquieractividad tcnica y contina a lo largo de la

    definicin, del desarrollo y del mantenimiento delsoftware. La gestin del proyecto de software es elprimer nivel del proceso de ingeniera de software,porque cubre todo el proceso de desarrollo. Paraconseguir un proyecto de software fructfero se

    debe comprender el mbito del trabajo a realizar,los riesgos en los que se puede incurrir, los recursosrequeridos, las tareas a llevar a cabo, el esfuerzo(costo) a consumir y el plan a seguir.

  • 5/25/2018 Gestin de Proyectos de Desarrollo de Software

    4/29

    1. EL SOFTWARE COMO PRODUCTO El software de computadora es el producto que

    disean y construyen los Ingenieros de Softwarey virtualmente cualquier persona en el mundoindustrializado lo utiliza bien directa oindirectamente. Esto abarca los programas quese ejecutan dentro de una computadora decualquier tamao y arquitectura, documentosque comprenden formularios virtuales e

    impresos y datos que combinan nmeros ytexto y tambin incluyen representaciones deinformacin de audio, video e imgenes.

  • 5/25/2018 Gestin de Proyectos de Desarrollo de Software

    5/29

    1.1 CULES SON LOS PASOS PARA

    CONSTRUIRLO?Construimos Software de computadora aplicando un procesoque conduce a un resultado de alta calidad que satisface lasnecesidades de la gente que usar el producto. Existen cuatroactividades fundamentales que son comunes para todos los

    procesos del software: Especificacin, donde los clientes e ingenieros definen el

    software a producir y las restricciones sobre su operacin. Desarrollo, donde el software se disea y programa. Validacin, donde el software se vlida para asegurar que es

    lo que el cliente requiere. Evolucin, donde el software se modifica para adaptarlo a los

    cambios requeridos por el cliente y el mercado.

  • 5/25/2018 Gestin de Proyectos de Desarrollo de Software

    6/29

    2. EL SOFTWARE COMO PROCESOHOWARD Baetjer, Jr. [BAE98], comenta sobre elproceso: Como el software, al igual que el capital,es el conocimiento incorporado, y puesto que elconocimiento est inicialmente disperso, el

    desarrollo del software implcito, latente eincompleto en gran medida, es un proceso social deaprendizaje. El proceso es un dilogo en el que serene el conocimiento y se incluye en el softwarepara convertirse en software.

  • 5/25/2018 Gestin de Proyectos de Desarrollo de Software

    7/29

    El proceso proporciona una interaccin entre los

    usuarios y los diseadores, entre los usuarios y lasherramientas de desarrollo, y entre los diseadores ylas herramientas de desarrollo [tecnologa]. En esteproceso la herramienta de desarrollo se usa comomedio de comunicacin.

    Realmente, construir software de computadora es unproceso de aprendizaje iterativo, y el resultado, algoque Baetjer podra llamar capital del software, es el

    conjunto del software reunido, depurado y organizadomientras se desarrolla el Proceso. Con cada iteracinse obtiene mayor conocimiento de las personasinvolucradas.

  • 5/25/2018 Gestin de Proyectos de Desarrollo de Software

    8/29

    Qu es realmente el proceso de Software? Son unaserie de pasos predecibles -un mapa de carreteras que

    ayuda a obtener el resultado oportuno de calidad-.

    Cules son los pasos? A un nivel detallado, elproceso que adoptemos depende del software queestamos construyendo. Un proceso puede ser

    apropiado para crear software de un sistema deaviacin, mientras que un proceso diferente porcompleto puede ser adecuado para la creacin de unsitio web.

    Cul es el producto obtenido? Desde el punto devista de un ingeniero de software, los productosobtenidos son programas, documentos y datos que seproducen como consecuencia de las actividades deingeniera del software definidas por el proceso.

  • 5/25/2018 Gestin de Proyectos de Desarrollo de Software

    9/29

    Cmo puedo estar seguro de que lo he hecho

    correctamente? Hay una cantidad de mecanismosde evaluacin del proceso del software quepermiten a las organizaciones determinar la madurezdel proceso del software. Sin embargo, la calidad,oportunidad y viabilidad a largo plazo del producto

    que est construyendo son los mejores indicadoresde la eficiencia del proceso que estamos utilizando.

    Qu es exactamente el proceso del software desdeun punto de vista tcnico? Definimos un proceso de

    software como un marco de trabajo de las tareasque se requieren para construir software de altacalidad.

  • 5/25/2018 Gestin de Proyectos de Desarrollo de Software

    10/29

    3. GESTIN DE UN PROCESO DE SWLa Gestin de un Proyecto involucra la planificacin,supervisin y control del personal, del proceso y loseventos que ocurren mientras el Software evolucionadesde una idea preliminar hasta una implementacin

    operativa.Quin lo hace? Todos gestionamos de algn modo,pero el mbito de las actividades de gestin vara enfuncin a la persona que las realiza. Un Ingeniero deSoftware gestiona sus actividades diarias; planifica,supervisa y controla labores tcnicas. Los Gestores delProyecto planifican, supervisan y controlan el trabajodel equipo de Ingenieros de Software. Los gestoresexpertos coordinan la relacin entre el negocio y losprofesionales del software.

  • 5/25/2018 Gestin de Proyectos de Desarrollo de Software

    11/29

    La gestin eficaz de un proyecto de software se

    centra en las cuatro Ps: personal, producto,proceso y proyecto. El orden no es arbitrario. Elgestor que se olvida de que el trabajo de ingenieradel software es un esfuerzo humano intenso nuncatendr xito en la gestin de proyectos. Un gestor

    que no fomenta una minuciosa comunicacin conel cliente al principio de la evolucin del proyectose arriesga a construir una elegante solucin paraun problema equivocado. El administrador que

    presta poca atencin al proceso corre el riesgo dearrojar mtodos tcnicos y herramientas eficaces alvaco. El gestor que emprende unproyecto sin un plan slido arriesga el xito delproducto.

  • 5/25/2018 Gestin de Proyectos de Desarrollo de Software

    12/29

    3.1 EL PERSONALEl proceso del software lo componen participantes quepueden clasificarse en una de estas cinco categoras: Gestores superiores, que definen los aspectos de

    negocios que a menudo tienen una significativainfluencia en el proyecto.

    Gestores tcnicos, que deben planificar, motivar,organizar y controlar a los profesionales que realizan eltrabajo de software.

    Profesionales, que proporcionan las capacidadestcnicas necesarias para la ingeniera de un productoo aplicacin.

    Clientes, que especifican los requisitos para laingeniera del software y otros elementos que tienenmenor influencia en el resultado.

    Usuarios finales, que interaccionan con el software unavez que se ha entregado para la produccin.

  • 5/25/2018 Gestin de Proyectos de Desarrollo de Software

    13/29

    3.1.1 EL EQUIPO DE TRABAJOMantei [MAN81] sugiere tres organigramas deequipo genricos:

    Descentralizado democrtico (DD). Este equipo

    de ingeniera del software no tiene un jefepermanente. Ms bien, se nombrancoordinadores de tareas a corto plazo y sesustituyen por otros para diferentes tareas. Lasdecisiones sobre problemas y los enfoques sehacen por consenso del grupo. Lacomunicacin entre los miembros del equipo eshorizontal.

  • 5/25/2018 Gestin de Proyectos de Desarrollo de Software

    14/29

    Descentralizado controlado (DC). Este equipo deingeniera del software tiene un jefe definido que

    coordina tareas especficas y jefes secundariosque tienen responsabilidades sobre subtareas. Laresolucin de problemas sigue siendo unaactividad del grupo, pero la implementacin desoluciones se reparte entre subgrupos por el jefe

    de equipo. La comunicacin entre subgrupos eindividuos es horizontal. Tambin haycomunicacin vertical a lo largo de la jerarqua decontrol.

    Centralizado controlado (CC). El jefe del equipo seencarga de la resolucin de problemas a alto nively la coordinacin interna del equipo. Lacomunicacin entre el jefe y los miembros delequipo es vertical.

  • 5/25/2018 Gestin de Proyectos de Desarrollo de Software

    15/29

    3.2 EL PRODUCTOAntes de poder planificar un proyecto, sedeberan establecer los objetivos y el mbitodel producto, se deberan considerar solucionesalternativas e identificar las dificultades tcnicas

    y de gestin. Sin esta informacin, es imposibledefinir unas estimaciones razonables y exactasdel coste; una valoracin efectiva del riesgo,una subdivisin realista de las tareas del

    proyecto o una planificacin del proyectoasequible que proporcione una indicacinfiable del progreso.

  • 5/25/2018 Gestin de Proyectos de Desarrollo de Software

    16/29

    El desarrollador de software y el cliente debenreunirse para definir los objetivos del producto ysu mbito. En muchos casos, esta actividadempieza como parte del proceso de ingenieradel sistema o del negocio y contina como elprimer paso en el anlisis de los requisitos delsoftware. Los objetivos identifican las metasgenerales del proyecto sin considerar cmo seconseguirn (desde el punto de vista delcliente). El mbito identifica los datos primarios,funciones y comportamientos que caracterizanal producto, y, ms importante, intenta abordarestas caractersticas de una maneracuantitativa. Una vez que se han entendido losobjetivos y el mbito del producto, seconsideran soluciones alternativas.

  • 5/25/2018 Gestin de Proyectos de Desarrollo de Software

    17/29

    3.2.1 Determinar el mbito del SW

    La primera actividad de gestin de un proyecto desoftware es determinar el mbito del software. Elmbito se define respondiendo a las siguientescuestiones:

    CONTEXTO. Cmo encaja el software a construiren un sistema, producto o contexto de negociosmayor y qu limitaciones se imponen comoresultado del contexto?

    OBJETIVOS DE INFORMACIN. Qu objetos dedatos visibles al cliente se obtienen del software?Qu objetos de datos son requeridos deentrada?

  • 5/25/2018 Gestin de Proyectos de Desarrollo de Software

    18/29

    FUNCIN Y RENDIMIENTO. Qu funcin realiza elsoftware para transformar la informacin de entrada

    en una salida? Hay caractersticas de rendimientoespeciales que abordar?. El mbito de un proyectode software debe ser unvoco y entendible a nivelesde gestin y tcnico. Los enunciados del mbito del

    software deben estar delimitados, es decir, los datoscuantitativos (por ejemplo: nmero de usuariossimultneos, tamao de la lista de correo, mximotiempo de respuesta permitido) se establecenexplcitamente; se anotan las limitaciones (por

    ejemplo: el coste del producto limita el tamao de lamemoria) y se describen los factores de reduccin deriesgos (por ejemplo: los algoritmos deseados seentienden muy bien si estn disponibles en C++).

  • 5/25/2018 Gestin de Proyectos de Desarrollo de Software

    19/29

    3.2.2 Descomposicin del problema

    La descomposicin del problema es una actividadque se asienta en el ncleo del anlisis de requisitosdel software. La descomposicin se aplica en dosreas principales: (1) la funcionalidad que debe

    entregarse y (2) el proceso que se emplear paraentregarlo.Los seres humanos tienden a aplicar la estrategia dedivide y vencers cuando se enfrentan a problemascomplejos. Dicho de manera sencilla, un problemacomplejo se parte en problemas ms pequeos queresultan ms manejables. sta es la estrategia quese aplica al inicio de la planificacin del proyecto.

  • 5/25/2018 Gestin de Proyectos de Desarrollo de Software

    20/29

    3.3 EL PROCESOUn proceso de software proporciona laestructura desde la que se puede establecer undetallado plan para el desarrollo del software.Un pequeo nmero de actividadesestructurales se puede aplicar a todos losproyectos de software, sin tener en cuenta sutamao o complejidad. Diferentes conjuntos detareas, hitos, productos del trabajo y puntos degaranta de calidad permiten a las actividadesestructurales adaptarse a las caractersticas delproyecto de software y a los requisitos delequipo del proyecto. Finalmente, lasactividades protectoras -tales como garanta decalidad del software, gestin de laconfiguracin del software y medicin- cubrenel modelo de proceso.

  • 5/25/2018 Gestin de Proyectos de Desarrollo de Software

    21/29

    Las fases genricas que caracterizan el procesode software definicin, desarrollo y soporte- son

    aplicables a todo software. El problema esseleccionar el modelo de proceso apropiadopara la ingeniera del software que debe aplicarel equipo del proyecto.

    Existe una gran gama de paradigmas deingeniera del software entorno a esto: el modelosecuencial lineal, por prototipos, modelo DRA,incremental, en espiral, basado en componentes,el modelo de desarrollo concurrente, el modelode mtodos formales, el modelo de tcnicas decuarta generacin, etc.

  • 5/25/2018 Gestin de Proyectos de Desarrollo de Software

    22/29

    El gestor del proyecto debe decidir qu modelo deproceso es el ms adecuado para (1) los clientesque han solicitado el producto y la gente querealizar el trabajo; (2) las caractersticas delproducto en s, y (3) el entorno del proyecto en elque trabaja el equipo de software.

    Cuando se selecciona un modelo de proceso, elequipo define entonces un plan de proyectopreliminar basado en un conjunto de actividadesestructurales. Una vez establecido el plan preliminar,empieza la descomposicin del proceso. Es decir,se debe crear un plan completo reflejando lastareas requeridas a las personas para cubrir lasactividades estructurales.

  • 5/25/2018 Gestin de Proyectos de Desarrollo de Software

    23/29

    3.4 EL PROYECTOPara evitar el fracaso del proyecto, el gestor deproyectos y los ingenieros de software que loconstruyeron deben eludir un conjunto de seales depeligro comunes; comprender los factores del xito

    crticos que conducen a la gestin correcta delproyecto y desarrollar un enfoque de sentido comnpara planificar, supervisar y controlar el proyecto.

    Para gestionar un proyecto de software con xito,

    debemos comprender qu puede ir mal (para evitaresos problemas) y cmo hacerlo bien.

  • 5/25/2018 Gestin de Proyectos de Desarrollo de Software

    24/29

    John Reel [REE99] define diez seales que indicanque un proyecto de sistemas de informacin esten peligro:

    1. La gente del software no comprende lasnecesidades de los clientes.

    2. El mbito del producto est definidopobremente.

    3. Los cambios estn mal realizados.

    4. La tecnologa elegida cambia.5. Las necesidades del negocio cambian [oestn mal definidas].

  • 5/25/2018 Gestin de Proyectos de Desarrollo de Software

    25/29

    6. Las fechas de entrega no son realistas.7. Los usuarios se resisten.8. Se pierden los patrocinadores [o nunca se

    obtuvieron adecuadamente].9. El equipo del proyecto carece del personal

    con las habilidades apropiadas.10.Los gestores [y los desarrolladores] evitan

    buenas prcticas y sabias lecciones.

  • 5/25/2018 Gestin de Proyectos de Desarrollo de Software

    26/29

    CMO ACTUAR PARA EVITAR PROBLEMAS?

    Reel [REE99] sugiere una aproximacin de sentidocomn a los proyectos de software dividida encinco partes: Empezar con el pie derecho. Esto se realiza

    trabajando duro para comprender el problemaa solucionar y estableciendo entonces objetivosy expectativas realistas para cualquiera quevaya a estar involucrado en el proyecto. Se

    refuerza construyendo el equipo adecuado ydando al equipo la autonoma, autoridad ytecnologa necesaria para realizar el trabajo.

  • 5/25/2018 Gestin de Proyectos de Desarrollo de Software

    27/29

    Mantenerse.Muchos proyectos no realizan unbuen comienzo y entonces se desintegranlentamente. Para mantenerse, el gestor delproyecto debe proporcionar incentivos para

    conseguir una rotacin del personal mnima,el equipo debera destacar la calidad entodas las tareas que desarrolle y los gestoresveteranos deberan hacer todo lo posible por

    permanecer fuera de la forma de trabajo delequipo.

  • 5/25/2018 Gestin de Proyectos de Desarrollo de Software

    28/29

    Seguimiento del Progreso. Para un proyecto desoftware, el progreso se sigue mientras se realizan los

    productos del trabajo (por ejemplo, especificaciones,cdigo fuente, conjuntos de casos de prueba) y seaprueban (utilizando revisiones tcnicas formales)como parte de una actividad de garanta de calidad.

    Tomar Decisiones Inteligentes.Las decisiones del gestordel proyecto y del equipo de software deberan seguirsiendo sencillas. Siempre que sea posible, utilicesoftware del mismo comercial o componentes desoftware existentes; evite personalizar interfaces cuandoestn disponibles aproximaciones estndar; identifiquey elimine entonces riesgos obvios; asigne ms tiempodel que pensaba necesitar para tareas arriesgadas ocomplejas.

  • 5/25/2018 Gestin de Proyectos de Desarrollo de Software

    29/29

    Realizar un Anlisis Postmortem (despus definalizar el proyecto). Establecer un mecanismoconsistente para extraer sabias lecciones decada proyecto. Evaluar la planificacin real yla prevista, reunir y analizar mtricas delproyecto de software y realimentar con datosde los miembros del equipo y de los clientes, yguardar los datos obtenidos en formato escrito.