los ambientes colaborativos como entornos...

63
Los ambientes colaborativos como entornos tecnológicos indispensables para la Gerencia de los proyectos en la era de la automatización industrial del software María Consuelo Franky [email protected] Universidad Javeriana 2012 pg.1

Upload: vanbao

Post on 20-Sep-2018

216 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: Los ambientes colaborativos como entornos …52.0.140.184/typo43/fileadmin/Base_de_Conocimiento/X_Jornada... · la colaboración entre los participantes y propiciando la aplicación

Los ambientes colaborativos como entornos tecnológicos indispensables para la Gerencia de los proyectos en la era de la automatización industrial del

software

María Consuelo [email protected]

Universidad Javeriana

2012

pg.1

Page 2: Los ambientes colaborativos como entornos …52.0.140.184/typo43/fileadmin/Base_de_Conocimiento/X_Jornada... · la colaboración entre los participantes y propiciando la aplicación

Temática

pg.2

ALM (Application Lifecycle Management) es el manejo continuo del ciclo de vida de los proyectos de software a través de técnicas de gobernabilidad, técnicas de ingeniería de software y herramientas para el manejo de las distintas etapas de un proyecto.

En este contexto los ambientes colaborativos que integran todas estas herramientas se convierten en los entornos tecnológicos indispensables para controlar los proyectos de software en todas sus etapas, asegurando la colaboración entre los participantes y propiciando la aplicación de metodologías ágiles.

Page 3: Los ambientes colaborativos como entornos …52.0.140.184/typo43/fileadmin/Base_de_Conocimiento/X_Jornada... · la colaboración entre los participantes y propiciando la aplicación

Agenda

1. Beneficios de las metodologías ágiles al aplicarse a ALM

2. Prácticas organizacionales para lograr un ALM ágil

3. Cómo automatizar el ALM y asegurar el logro de los

beneficios de las metodologías ágiles?

4. Características y facilidades de los ambientes colaborativos

5. Ilustración de algunos ambientes colaborativos

6. Conclusiones respecto a ALM & ambientes colaborativos &

metodologías ágiles

pg.3

Page 4: Los ambientes colaborativos como entornos …52.0.140.184/typo43/fileadmin/Base_de_Conocimiento/X_Jornada... · la colaboración entre los participantes y propiciando la aplicación

Beneficios de las

metodologías ágiles al

aplicarse a ALM

pg.4

Page 5: Los ambientes colaborativos como entornos …52.0.140.184/typo43/fileadmin/Base_de_Conocimiento/X_Jornada... · la colaboración entre los participantes y propiciando la aplicación

Concepto de ALM (Application Lifecycle Management)

• Es el manejo continuo del ciclo de vida de los

proyectos de software a través de :

– técnicas de gobernabilidad

– técnicas de ingeniería de software

– herramientas que facilitan e integran el manejo de:

• requerimientos

• especificación de arquitectura

• programación

• pruebas

• seguimiento de actividades

• manejo de liberaciones de productos.

pg.5

Page 6: Los ambientes colaborativos como entornos …52.0.140.184/typo43/fileadmin/Base_de_Conocimiento/X_Jornada... · la colaboración entre los participantes y propiciando la aplicación

• ALM tradicional:– aplica herramientas para hacer cumplir procesos

prodefinidos y estandarizados

• ALM ágil:– aplica herramientas para apoyar el trabajo de las personas

y los procesos que son más adecuados para el modo en que las personas trabajan en equipo para crear software

– es importante entonces contar con las herramientas adecuadas para apoyar las prácticas ágiles

pg.6

Concepto de ALM ágil

Page 7: Los ambientes colaborativos como entornos …52.0.140.184/typo43/fileadmin/Base_de_Conocimiento/X_Jornada... · la colaboración entre los participantes y propiciando la aplicación

Manejo ágil de proyectos

• Objetivo:– tener en tiempo real visibilidad y control del proyecto en

cada una de sus etapas

• Beneficio:– adaptarse a los cambios en los requerimientos y adaptarse

al modo en que trabaja el equipo

pg.7

Page 8: Los ambientes colaborativos como entornos …52.0.140.184/typo43/fileadmin/Base_de_Conocimiento/X_Jornada... · la colaboración entre los participantes y propiciando la aplicación

Manejo ágil de pruebas

• Objetivo:– hacer pruebas rápidamente y frecuentemente para

asegurar que todas las funcionalidades del proyecto hacen exactamente lo que espera el negocio.

• Beneficio:– poder incorporar cambios de última hora

pg.8

Page 9: Los ambientes colaborativos como entornos …52.0.140.184/typo43/fileadmin/Base_de_Conocimiento/X_Jornada... · la colaboración entre los participantes y propiciando la aplicación

Manejo ágil de entrega al cliente

• Problema:– Esta etapa es a menudo un proceso en cascada con mucho

riesgo, consumo de tiempo, costoso e impredecible

• Objetivo:– hacer liberaciones del software del proyecto de acuerdo a

los requerimientos de negocio y no a restricciones operativas

• Beneficio:– Permite realizar entregas a tiempo al cliente de versiones

acordadas y libres de defectos; asegura las ganancias del proyecto

pg.9

Page 10: Los ambientes colaborativos como entornos …52.0.140.184/typo43/fileadmin/Base_de_Conocimiento/X_Jornada... · la colaboración entre los participantes y propiciando la aplicación

Beneficios generales de ALM ágil

• Libera a las empresas de los procesos y herramientas

pesadas que se interponen en el camino de la

creación de software interesante y útil

• Logra entregar a los usuarios software operable con

la frecuencia acordada (semanal, diario, ...)– Esto permite a las empresas a evaluar rápidamente el

interés del cliente, reaccionar a su retroalimentación, y hacer correcciones para aprovechar las nuevas oportunidad de negocio

espg.10

Page 11: Los ambientes colaborativos como entornos …52.0.140.184/typo43/fileadmin/Base_de_Conocimiento/X_Jornada... · la colaboración entre los participantes y propiciando la aplicación

Prácticas organizacionales

para lograr un ALM ágil

pg.11

Page 12: Los ambientes colaborativos como entornos …52.0.140.184/typo43/fileadmin/Base_de_Conocimiento/X_Jornada... · la colaboración entre los participantes y propiciando la aplicación

5 prácticas organizacionales para lograr un ALM ágil

pg.12Referencia: " Redefining ALM with Five Key Practices ", by Ethan Teng, Cyndi Mitchell and Chad Wathington, ThoughtWorks Studios, 2011, http://www.thoughtworks-studios.com/download/whitepapers/redefining_alm.pdf

Page 13: Los ambientes colaborativos como entornos …52.0.140.184/typo43/fileadmin/Base_de_Conocimiento/X_Jornada... · la colaboración entre los participantes y propiciando la aplicación

1. Evolucionar la definición de proceso: Los procesos

ágiles son generativos, no prescriptivos

– [Jim Highsmith, autor de “Agile Project Management”] “A prescriptive

approach generates complex and complicated processes whereas a

generative approach begins with a set of simple processes and adds

others as they are needed”

– Los procesos deben evolucionar a medida que sea necesario, en lugar

de mantenerlos estáticos.

– Para poder evolucionar la definición de los procesos se requieren

herramientas que permitan este tipo de mejora continua.

pg.13Referencia: " Agile Project Management: Creating Innovative Products", by Jim Highsmith, Addison-Wesley Professional, 2004.

Page 14: Los ambientes colaborativos como entornos …52.0.140.184/typo43/fileadmin/Base_de_Conocimiento/X_Jornada... · la colaboración entre los participantes y propiciando la aplicación

2. Abrazar la heterogeneidad– [Martin Fowler, co-autor del “Manifesto for Agile Software

Development”] “You should never expect to find a single corporate methodology. While both published processes and the experience of other projects can act as an inspiration and a baseline, the developer's professional responsibility is to adapt the process to the task at hand.”

– ALM ágil supone que cada proyecto de software es diferente. Así como

los procesos no son estáticos, tampoco pueden estandarizarse igual para

todos los equipos.

– Las empresas que adoptan la heterogeneidad logran equipos de alto

rendimiento en la entrega al cliente y con gran capacidad de mitigar el

riesgo.

– Se requieren entonces herramientas que soporten la diversidad de

procesos y la consistencia a través de los proyectos para lograr el

gobierno global de estos proyectos a nivel de la empresa.

pg.14Referencia: " Manifesto for Agile Software Development", by Kent Beck et al., 2001, http://agilemanifesto.org/ .

Page 15: Los ambientes colaborativos como entornos …52.0.140.184/typo43/fileadmin/Base_de_Conocimiento/X_Jornada... · la colaboración entre los participantes y propiciando la aplicación

3. Construir lo correcto– [Jez Humble, autor de “Continuous Delivery”]. “ If you're not constantly

delivering working software, you're not getting feedback on whether what

you're delivering is useful. Overwhelmingly, the chances are that you won't

build the right thing first time. The longer it takes you to get feedback and

pivot, the more time and money you spend on building the wrong thing.”

– Agile ALM ágil incorpora clientes a las actividades del día a día de los equipos de software. Como miembros del equipo, pueden dar retroalimentación inmediata que permite hacer las correcciones para construir lo correcto.

– Construir lo correcto requiere de herramientas que faciliten el diálogo y la colaboración en todo el ciclo de vida del desarrollo de software:

• para que clientes, analistas y probadores puedan trabajar juntos en la definición de

criterios de aceptación

• para lograr hacer entregas regulares que es la mejor manera de garantizar que se está construyendo lo correcto.

pg.15Referencia: " Continuous Delivery: Reliable Software Releases through Build, Test, and Deployment Automation", by Jez Humble, David Farley, Addison-Wesley Signature Series (Fowler), 2010.

Page 16: Los ambientes colaborativos como entornos …52.0.140.184/typo43/fileadmin/Base_de_Conocimiento/X_Jornada... · la colaboración entre los participantes y propiciando la aplicación

4. Entrega continua– [Jez Humble] “Keeping your software production ready from the beginning of

the delivery process has several benefits. First, it means releasing is a low-risk,

push-button process. That means you can do it more often, which means you

can show it to users to get feedback more frequently, test it under realistic

conditions more frequently, and get the only real measure of product progress.

In short, it means you can deliver higher quality software faster, and reduce

waste in your delivery process.”

– ALM ágil hace entregas de pocas funcionalidades cada pocos días o semanas, en lugar de hacer entregas de muchas funcionalidades cada cierto número de meses. Esta entrega continua asegura que el camino hacia la producción es claro y previsible.

– Entrega continua requiere herramientas que faciliten la colaboraciòn técnica detallada:

• para ayudar a probadores, analistas, desarrolladores y clientes a probar

rápidamente , detectar defectos y corregirlos.

• para reducir o incluso eliminar los defectos mediante la automatización de cada

paso de validación (pruebas funcionales, pruebas de rendimiento, pruebas de

seguridad y pruebas de aceptación general).

pg.16

Page 17: Los ambientes colaborativos como entornos …52.0.140.184/typo43/fileadmin/Base_de_Conocimiento/X_Jornada... · la colaboración entre los participantes y propiciando la aplicación

5. Orquestar, no controlar– [Jim Highsmith] “Governance is about monitoring investment and risk, not

checking-off process steps. In fact, the key to effective executive project

oversight is separating governance from operational processes, evaluating

investment and risk at key project milestones and generating the data for that

evaluation through iterative delivery.”

– ALM tradicional históricamente ha confundido el cumplimiento de procesos con la gobernabilidad, por lo cual los gerentes tradicionales proporcionan herramientas pesadas para hacer cumplir el flujo de trabajo.

– ALM ágil propone que los gerentes sean orquestadores, asegurando que el trabajo esté alineado con los objetivos de negocio, eliminando obstáculos, y ayudando a difundir las mejores prácticas entre los equipos.

– La orquestación requiere herramientas para apoyar las prácticas organizacionales clave, visión en tiempo real del estado de los proyectos logrando que esos proyectos estén alineados con los objetivos de negocio y que sean capaces de realizar entrega continua.

pg.17

Page 18: Los ambientes colaborativos como entornos …52.0.140.184/typo43/fileadmin/Base_de_Conocimiento/X_Jornada... · la colaboración entre los participantes y propiciando la aplicación

Rol de las herramientas en la automatización de ALM ágil

– En ALM tradicional, las herramientas son las que dirigen el proceso

– En ALM ágil, las personas son las que dirigen el proceso y las

herramientas deben adaptarse para soportar el proceso.

– El proceso correcto no puede ser definido por adelantado, ni puede

ser completamente estandarizado a través de todos los equipos. La

mejor manera de manejar el riesgo es tener total visibilidad (mediante

herramientas acecuadas) y no la estandarización completa.

– La mejor manera de entregar software que satisfaga las necesidades

de negocio es a través de la colaboración constante y la entrega

continua (mediante herramientas adecuadas), y no manejando

artefactos.

– Las iniciativas de software que están alineadas con el negocio tienen

líderes que orquestan en lugar de solamente controlar. pg.18

Page 19: Los ambientes colaborativos como entornos …52.0.140.184/typo43/fileadmin/Base_de_Conocimiento/X_Jornada... · la colaboración entre los participantes y propiciando la aplicación

Cómo automatizar el ALM y

asegurar el logro de los

beneficios de las

metodologías ágiles?

pg.19

Page 20: Los ambientes colaborativos como entornos …52.0.140.184/typo43/fileadmin/Base_de_Conocimiento/X_Jornada... · la colaboración entre los participantes y propiciando la aplicación

Modelo de madurez de metodologías ágiles

pg.20

Referencia: " The Agile Maturity Model applied to building and releasing software", by Jez Humble, Rolf Russell , ThoughtWorks, Inc), 2010.http://www.thoughtworks-studios.com/download/whitepapers/Agile-maturity-model-applied-to-building-and-releasing-software.pdf

Page 21: Los ambientes colaborativos como entornos …52.0.140.184/typo43/fileadmin/Base_de_Conocimiento/X_Jornada... · la colaboración entre los participantes y propiciando la aplicación

Objetivos del modelo de madurez de metodologías ágiles

• El objetivo final es el mejoramiento de la empresa,

buscando los siguientes resultados:– Tiempo de ciclo reducido, para responder más

rápidamente a cambios en requerimientos de negocio

– Reducción de defectos, mejorando así la reputación y gastando menos en soporte.

– Mayor predicción en el ciclo de vida de entregas del software logrando una planeación más eficiente.

– Capacidad de manejar los riesgos en la entrega de software de manera efectiva (reducción de costos)

– Capacidad para adoptar y mantener una actitud de respeto hacia las regulaciones que conciernen a los proyectos.

pg.21

Page 22: Los ambientes colaborativos como entornos …52.0.140.184/typo43/fileadmin/Base_de_Conocimiento/X_Jornada... · la colaboración entre los participantes y propiciando la aplicación

Como apoyarse en el modelo de madurez de metodologías ágiles

• Siga los pasos del ciclo Deming: planear, hacer, verificar, actuar.

1. Identificar en qué nivel del modelo se encuentra su empresa. En realidad diferentes aspectos o partes de la empresa

pueden encontrarse en diferentes niveles del modelo.

2. Escoja en qué quiere enfocarse. Deber averiguar cuáles son las

posibles mejoras que podría implantar, cuánto costarían y qué

beneficio aportarían. Luego elija un par de estas mejoras y decida

cómo las va a implantar. Debe establecer los criterios de aceptación

(definiendo resultados esperados) que le permitan saber si los

cambios son exitosos.

pg.22

Page 23: Los ambientes colaborativos como entornos …52.0.140.184/typo43/fileadmin/Base_de_Conocimiento/X_Jornada... · la colaboración entre los participantes y propiciando la aplicación

3. Implante los cambios. Planee primero como implantar los

cambios. Podría realizar una prueba de concepto. Luego escoja una

parte de la empresa realmente afectada en donde las personas van a

tener mayor motivación para realizar los cambios. Finalmente

ejecute el plan.

4. Verifique si los cambios implantados tuvieron el efecto deseado utilizando los criterios de aceptación que se definieron

previamente.

5. Repita estas etapas contruyendo su propio conocimiento. Implante más mejoras incrementalmente y expándalas a toda la

empresa.

pg.23

Page 24: Los ambientes colaborativos como entornos …52.0.140.184/typo43/fileadmin/Base_de_Conocimiento/X_Jornada... · la colaboración entre los participantes y propiciando la aplicación

Claves para automatizar el ALM ágil

• Escalando la Agilidad en grandes empresas– Las metodologías ágiles tienen reputación de trabajar bien

con pequeños proyectos pero no con grandes proyectos, en donde los resultados frecuentemente no son óptimos (en el manejo de la complejidad de los problemas de estos proyectos).

– Para lograr los beneficios de las metodologías ágiles con grandes proyectos es necesario optimizar y automatizar gran parte de los procesos, para lo cual se requieren herramientas adecuadas.

pg.24

Page 25: Los ambientes colaborativos como entornos …52.0.140.184/typo43/fileadmin/Base_de_Conocimiento/X_Jornada... · la colaboración entre los participantes y propiciando la aplicación

• Ambientes ALM heterogéneos . – La mayoría de empresas de desarrollo de proyectos de

software que han adoptado las metodologías ágiles trabajan con ambientes ALM de múltiples herramientas heterogéneas provenientes de diferentes proveedores y también soluciones de software libre.

• se crea un problema de desconexión entre las personas que

trabajan en desarrollo, en calidad y en gestión, porque la

herramienta de cada uno no puede ver la información producida

por la herramienta del otro

• La heterogeneidad también produce un problema crítico de falta

de trazabilidad del ciclo de vida del software

– Se requieren entonces herramientas más flexibles que a pesar de la heterogeneidad puedan comunicarse entre ellas.

pg.25

Page 26: Los ambientes colaborativos como entornos …52.0.140.184/typo43/fileadmin/Base_de_Conocimiento/X_Jornada... · la colaboración entre los participantes y propiciando la aplicación

• Conclusión: los ambientes colaborativos se convierten en los entornos tecnológicos indispensables para controlar los proyectos de software en todas sus etapas

– integran herramientas heterogéneas y automatizan parcialmente los procesos, asegurando la colaboración entre los participantes

– Propician un ALM ágil que soporta las 5 prácticas claves organizacionales:

• habilitar a los equipos para descubrir y evolucionar su proceso

• abrazar la heterogeneidad: soportar las necesidades únicas de cada proyecto, así como las necesidades de consistencia de la organización

• construir lo correcto: facilitar la colaboración permanente entre desarrolladores y clientes

• automatizar las pruebas para permitir la entrega continua

• orquestar, no controlar: proporcionar una total transparencia y visibilidad a los líderes, sin necesidad de crear trabajo extra para los equipos de los proyectos pg.26

Page 27: Los ambientes colaborativos como entornos …52.0.140.184/typo43/fileadmin/Base_de_Conocimiento/X_Jornada... · la colaboración entre los participantes y propiciando la aplicación

• Apoyar la colaboración entre los miembros de un proyecto tiene mucho más impacto que apoyar la productividad personal

pg.27Referencia: " Build your bottom line: Drive innovation with a collaborative requirements-driven quality solution", by Lisa Buckley & Alice Cockrum, Rational software, IBM Software Group, 2009. http://www-01.ibm.com/software/rational/announce/wpseries/

Page 28: Los ambientes colaborativos como entornos …52.0.140.184/typo43/fileadmin/Base_de_Conocimiento/X_Jornada... · la colaboración entre los participantes y propiciando la aplicación

Características y facilidades

de los ambientes

colaborativos

pg.28

Page 29: Los ambientes colaborativos como entornos …52.0.140.184/typo43/fileadmin/Base_de_Conocimiento/X_Jornada... · la colaboración entre los participantes y propiciando la aplicación

Qué es un ambiente colaborativo para el desarrollo de proyectos de software ?

pg.29

Servidor deBase de Datos

Servidorde Aplicaciones

Repositorio deVersionesTopic Replies Author

Forums

WikisDocs

Releases

Trackers

Espacio web común para la comunicación, el seguimiento y control de las actividades de los proyectos de software (los participantes pueden estar dispersos geográficamente)

Page 30: Los ambientes colaborativos como entornos …52.0.140.184/typo43/fileadmin/Base_de_Conocimiento/X_Jornada... · la colaboración entre los participantes y propiciando la aplicación

Tres tipos de facilidades que ofrecen estos ambientes colaborativos

• Facilidades para la comunicación entre desarrolladores y

clientes– el poder contactar y compartir de manera ágil eleva la velocidad

de la producción global

• Facilidades para apoyar la gestión diaria de un proyecto– automatizando el seguimiento de las actividades para elevar el

cumplimiento y la calidad de la producción

• Facilidades para apoyar el control y proyección de un

proyecto– mediante reportes permanentes de mediciones sobre el

progreso de un proyecto, que permiten al gerente corregir la gestión global pg.30

Page 31: Los ambientes colaborativos como entornos …52.0.140.184/typo43/fileadmin/Base_de_Conocimiento/X_Jornada... · la colaboración entre los participantes y propiciando la aplicación

(1) Facilidades ofrecidas por un ambiente colaborativo para la comunicación entre

desarrolladores y clientes

pg.31

• Documentos de un proyecto – de interés para el cliente: descripción de requerimientos,

inventario de casos de uso, contrato, etc.

– de interés para los desarrolladores: formatos para las distintas etapas del proyecto (ej: formato de especificación de un caso de uso), guías y estándares

• Wikis: edición compartida de nuevas guías para un proyecto

Page 32: Los ambientes colaborativos como entornos …52.0.140.184/typo43/fileadmin/Base_de_Conocimiento/X_Jornada... · la colaboración entre los participantes y propiciando la aplicación

• Noticias y avisos del gerente

• Lista de versiones liberadas del software de un proyecto– software y manuales listos para ser descargados por el cliente

• Forums de distintos tipos (relativos a un proyecto)– para la solución de problemas entre desarrolladores

– para que el cliente reporte anomalías encontradas en el software liberado

– para que el cliente solicite cambios o nuevas opciones para el sistema

– etc.

pg.32

Page 33: Los ambientes colaborativos como entornos …52.0.140.184/typo43/fileadmin/Base_de_Conocimiento/X_Jornada... · la colaboración entre los participantes y propiciando la aplicación

(2) Facilidades ofrecidas por un ambiente colaborativo para la

Gestión diaria de un proyecto

• Acople del ambiente colaborativo con el repositorio de

versiones de un proyecto (por ej. CVS o SubVervion)

permite :

– configurar permisos sobre el repositorio para cada participante en el proyecto

– obtener el historial de versiones del proyecto

– obtener el historial del trabajo de cada participante en términos de commits sobre el repositorio

pg.33

Page 34: Los ambientes colaborativos como entornos …52.0.140.184/typo43/fileadmin/Base_de_Conocimiento/X_Jornada... · la colaboración entre los participantes y propiciando la aplicación

• Manejo de trackers e Items:

– las actividades de un proyecto se deben registrar en el ambiente para poder controlar su desarrollo

– las actividades similares se agrupan por trackers definidos de forma flexible (por ej: tracker de requerimientos, tracker de casos de uso,etc.)

– Concepto de tracker: es una herramienta configurable para el seguimiento de elementos (llamados items); según el tipo de elementos se hace seguimiento de sus requerimientos, de sus defectos, solicitudes de extensión, etc.

– en cada tracker se registran uno o varios items, cada uno con la información referente a una actividad

– de cada item asociado a una actividad se podrá saber:• en qué estado se encuentra su desarrollo• quiénes participan en la actvidad• tiempos planeados y tiempos reales invertidos en la actividad• commits sobre el repositorio de versiones asociados con la actividad pg.34

Page 35: Los ambientes colaborativos como entornos …52.0.140.184/typo43/fileadmin/Base_de_Conocimiento/X_Jornada... · la colaboración entre los participantes y propiciando la aplicación

• Automatización del flujo de trabajo de cada actividad

del proyecto: mediante la definición del workflow de

cada tracker

– se definen los estados por lo cuales pasa el desarrollo de cada item de un tracker

– se indica el rol de participantes que trabaja en cada estado de un item

– se configura la notificación automática que se enviará a los participantes involucrados cuando el item progresa a un nuevo estado

pg.35

Page 36: Los ambientes colaborativos como entornos …52.0.140.184/typo43/fileadmin/Base_de_Conocimiento/X_Jornada... · la colaboración entre los participantes y propiciando la aplicación

• Seguridad: un ambiente colaborativo debe permitir

– definir los roles de participantes para un proyecto específico

– los derechos asociados a cada rol

– inscribir cada participante en uno o varios roles

pg.36

Page 37: Los ambientes colaborativos como entornos …52.0.140.184/typo43/fileadmin/Base_de_Conocimiento/X_Jornada... · la colaboración entre los participantes y propiciando la aplicación

(3) Facilidades ofrecidas por un ambiente colaborativo para apoyar el control y

proyección de un proyecto

• Mediante reportes permanentes que permiten hacer

medición y análisis, el gerente puede conocer el

estado global del proyecto, proyectar y corregir la

gestión

pg.37

Page 38: Los ambientes colaborativos como entornos …52.0.140.184/typo43/fileadmin/Base_de_Conocimiento/X_Jornada... · la colaboración entre los participantes y propiciando la aplicación

Ilustración de algunos

ambientes colaborativos

pg.38

Page 39: Los ambientes colaborativos como entornos …52.0.140.184/typo43/fileadmin/Base_de_Conocimiento/X_Jornada... · la colaboración entre los participantes y propiciando la aplicación

Ejemplos de ambientes colaborativos para el desarrollo de proyectos de software

• Asynchrony, Freepository, GBorg, GForge, Savannah,

SEUL, SourceForge (CollabNet), IBM (Jazz, Rational),

eTask, Tasktop Sync, ThoughtWorks Studios

• Distintas características respecto a :– popularidad: número de miembros y proyectos alojados

– costos y tipo de licencia cuando se usa dentro de una empresa

– seguridad (roles y registro de participantes de cada rol)

– facilidades (adicionales al repositorio de versiones, forums y trackers)

pg.39

Page 40: Los ambientes colaborativos como entornos …52.0.140.184/typo43/fileadmin/Base_de_Conocimiento/X_Jornada... · la colaboración entre los participantes y propiciando la aplicación

(1) Facilidades para la comunicación entre desarrolladores y clientes

pg.40

• Ejemplo Gforge: – versiones liberadas del software de un proyecto

Page 41: Los ambientes colaborativos como entornos …52.0.140.184/typo43/fileadmin/Base_de_Conocimiento/X_Jornada... · la colaboración entre los participantes y propiciando la aplicación

– Forums de distintos tipos (relativos a un proyecto)

pg.41

Page 42: Los ambientes colaborativos como entornos …52.0.140.184/typo43/fileadmin/Base_de_Conocimiento/X_Jornada... · la colaboración entre los participantes y propiciando la aplicación

(2) Facilidades para la Gestión diaria de un proyecto

pg.42

• Ejemplo Gforge: ilustración de trackers e items

Page 43: Los ambientes colaborativos como entornos …52.0.140.184/typo43/fileadmin/Base_de_Conocimiento/X_Jornada... · la colaboración entre los participantes y propiciando la aplicación

– Lista de los items de un tracker (ej: tracker de desarrollo)

pg.43

Page 44: Los ambientes colaborativos como entornos …52.0.140.184/typo43/fileadmin/Base_de_Conocimiento/X_Jornada... · la colaboración entre los participantes y propiciando la aplicación

Contenido(1) de un item

de un tracker(ej: un CU)

pg.44

Estimación de •fecha inicio•fecha final (alimenta el Gantt)

Producto(release) asociado

Participantes asignados

estadoactual(campo Status)

Page 45: Los ambientes colaborativos como entornos …52.0.140.184/typo43/fileadmin/Base_de_Conocimiento/X_Jornada... · la colaboración entre los participantes y propiciando la aplicación

pg.4545

archivos anexos

Contenido(2)

de un item

de un tracker

historial cambios

historialcommits

dependencias(alimenta el Gantt)

registro tiempo

trabajado

Page 46: Los ambientes colaborativos como entornos …52.0.140.184/typo43/fileadmin/Base_de_Conocimiento/X_Jornada... · la colaboración entre los participantes y propiciando la aplicación

pg.46posteriormente se definirá el workflow como transiciones de Status

permite definir los valores del campo Status

campos del tracker

- Ilustración de la definición del workflow de un tracker en GForge:el workflow definirá transiciones de estado de cualquier item, modelando el campo “Status”

Page 47: Los ambientes colaborativos como entornos …52.0.140.184/typo43/fileadmin/Base_de_Conocimiento/X_Jornada... · la colaboración entre los participantes y propiciando la aplicación

pg.47

transiciones de estado

- definición de los posibles estados de un item (valores posibles del campo Status)

Page 48: Los ambientes colaborativos como entornos …52.0.140.184/typo43/fileadmin/Base_de_Conocimiento/X_Jornada... · la colaboración entre los participantes y propiciando la aplicación

pg.48

pg. 48

la notificación llega a los participantes del rol indicado que hayan sido asignados a un item

- definición del workflow: transiciones de estado, roles asociados y notificaciones automáticas

Page 49: Los ambientes colaborativos como entornos …52.0.140.184/typo43/fileadmin/Base_de_Conocimiento/X_Jornada... · la colaboración entre los participantes y propiciando la aplicación

pg.49

• Autocontrol : cada participante debe poder ver las actividades pendientes en que está involucrado (ejemplo en GForge)

Page 50: Los ambientes colaborativos como entornos …52.0.140.184/typo43/fileadmin/Base_de_Conocimiento/X_Jornada... · la colaboración entre los participantes y propiciando la aplicación

pg.50

• Ejemplo en CollabNet (versión comercial de SourceForge) – diversas herramientas para la gestión de proyectos en todas sus etapas

Referencia: “Next Generation ALM: Collaborative Software Development on Demand”, CollabNet, 2010http://www.collab.net/ http://www.techrepublic.com/whitepapers/next-generation-alm-collaborative-software-development-on-demand/1297121

Facilidades para el manejo de

tareas:

• sincronización bidireccional

con MS-Project

• asignación de tareas a

miembros del proyecto

• reportes sobre el progreso

y estado de cada proyecto

Page 51: Los ambientes colaborativos como entornos …52.0.140.184/typo43/fileadmin/Base_de_Conocimiento/X_Jornada... · la colaboración entre los participantes y propiciando la aplicación

(3) Facilidades ofrecidas para apoyar el control y proyección de un proyecto

pg.51

• Ejemplo en Gforge: Reportes de ejecución del proyecto: tiempos y recursos realmente utilizados

a. Reporte de tiempo invertido en las actividades de los trackers

Page 52: Los ambientes colaborativos como entornos …52.0.140.184/typo43/fileadmin/Base_de_Conocimiento/X_Jornada... · la colaboración entre los participantes y propiciando la aplicación

pg.52

b. Reporte de estado de avance de los productos del proyecto

Page 53: Los ambientes colaborativos como entornos …52.0.140.184/typo43/fileadmin/Base_de_Conocimiento/X_Jornada... · la colaboración entre los participantes y propiciando la aplicación

pg.53

• Ejemplo en Jazz (IBM Rational):

– Dashboard de seguimiento

Referencia: “The IBM Rational Jazz Strategy for Collaborative Application Lifecycle Management”, Liz Barnett, EZ Insight, Inc. July 2009http://jazz.net/projects/rational-team-concert

Page 54: Los ambientes colaborativos como entornos …52.0.140.184/typo43/fileadmin/Base_de_Conocimiento/X_Jornada... · la colaboración entre los participantes y propiciando la aplicación

pg.54

• Ejemplo en eTask– dashboard ejecutivo

Referencia: ““eTask.it –orquestación de servicioselimine los sobrecostos de sus proyectos””, eTaskhttp://www.etask.it

Page 55: Los ambientes colaborativos como entornos …52.0.140.184/typo43/fileadmin/Base_de_Conocimiento/X_Jornada... · la colaboración entre los participantes y propiciando la aplicación

pg.55

• Ejemplo en eTask

– Las cargas de trabajo de los recursos y las asignaciones de tareas son

fáciles de rastrear, asegurando así una asignación más eficiente a través de

toda la empresa

Referencia: ““eTask.it –orquestación de servicioselimine los sobrecostos de sus proyectos””, eTaskhttp://www.etask.it

Page 56: Los ambientes colaborativos como entornos …52.0.140.184/typo43/fileadmin/Base_de_Conocimiento/X_Jornada... · la colaboración entre los participantes y propiciando la aplicación

Integración de herramientas que apoyan el ciclo de vida de los proyectos

• Ejemplo: Jazz de IBM (Rational)

– Ambiente global que proporciona facilidades de colaboración para el ciclo de vida de los proyectos, basándose en metodologías ágiles.

– Se basa en 3 iniciativas que habilitan el ALM colaborativo:

• arquitectura de integración abierta

que favorece entregas continuas de

software de forma colaborativa,

productiva y transparente

• conjunto de servicios básicos que

habilitan la integración de

herramientas ALM heterogéneas

• Comunidad de desarrollo de más

servicios y herramientas asociadas

pg.56

Referencia: “The IBM Rational Jazz Strategy for Collaborative Application Lifecycle Management”, Liz Barnett, EZ Insight, Inc. July 2009http://jazz.net/projects/rational-team-concert

Page 57: Los ambientes colaborativos como entornos …52.0.140.184/typo43/fileadmin/Base_de_Conocimiento/X_Jornada... · la colaboración entre los participantes y propiciando la aplicación

• Otros ambientes colaborativos

– Tasktop Sync: basado en Eclipse Mylyn http://tasktop.com/sync

• Facilidades para unificar y conectar herramientas heterogéneas

con los equipos de desarrollo que aplican metodologías ágiles

• Cada cliente o desarrollador tiene acceso a los datos que necesita

utilizando la herramienta de su elección

– ThoughtWorks Studios http://www.thoughtworks-studios.com

• ambiente compartido para el manejo de proyectos bajo

metodologías ágiles que permite que los equipos (distribuidos

geográficamente) estén en contacto permanente con los clientes

• Permite adaptarse a los cambios en los requerimientos y a la

manera en que trabaja cada equipo

pg.57

Page 58: Los ambientes colaborativos como entornos …52.0.140.184/typo43/fileadmin/Base_de_Conocimiento/X_Jornada... · la colaboración entre los participantes y propiciando la aplicación

Conclusiones respecto a ALM

& ambientes colaborativos &

metodologías ágiles

pg.58

Page 59: Los ambientes colaborativos como entornos …52.0.140.184/typo43/fileadmin/Base_de_Conocimiento/X_Jornada... · la colaboración entre los participantes y propiciando la aplicación

• La revolución industrial del desarrollo de proyectos de software requiere metodologías ágiles y ambientes colaborativos

– las metodologías ágiles promueven calidad, comunicación y agilidad en la entrega del producto al cliente

– los ambientes colaborativos permiten explotar la colaboración del equipo que participa en un proyecto, automatizar las actividades y controlar la gestión mediante mediciones y análisis permanentes

– En la era de la automatización del software los ambientes colaborativos son el entorno tecnológico indispensable para la gerencia de proyectos, a fin de lograr ALM con los beneficios de las metodologías ágiles

pg.59

Page 60: Los ambientes colaborativos como entornos …52.0.140.184/typo43/fileadmin/Base_de_Conocimiento/X_Jornada... · la colaboración entre los participantes y propiciando la aplicación

• Beneficios de los ambientes colaborativos

– Colaboración en contexto

• Cada miembro de un proyecto tiene su propio rol y contexto de

trabajo y al mismo tiempo puede trabajar con otros en

entregables compartidos de la manera más productiva.

– Procesos en sus justas proporciones

• Un ambiente colaborativo facilita y automatiza el uso de mejores

prácticas sin afectar la productividad individual o de equipo. Además

permite definir múltiples tipos de procesos (desde livianos hasta

altamente estructurados) disponibles para los distintos tipos de

proyectos.

– Transparencia global.

• El ambiente colaborativo proporciona la transparencia requerida

por la gobernabilidad de los proyectos que siguen un ALM ágil

pg.60

Referencia: “The IBM Rational Jazz Strategy for Collaborative Application Lifecycle Management”, Liz Barnett, EZ Insight, Inc. July 2009http://jazz.net/projects/rational-team-concert

Page 61: Los ambientes colaborativos como entornos …52.0.140.184/typo43/fileadmin/Base_de_Conocimiento/X_Jornada... · la colaboración entre los participantes y propiciando la aplicación

– Otros beneficios:

• Reducción del tiempo de entrega de productos

• Involucrar a los clientes en el mismo ambiente logrando

retroalimetnación más temprana

• Reducción de los costos de desarrollo

• Mejora la calidad del software porque los nuevos proyectos

aprovechan código hecho por otros proyectos, el cual está

disponible en el mismo ambiente

pg.61

Page 62: Los ambientes colaborativos como entornos …52.0.140.184/typo43/fileadmin/Base_de_Conocimiento/X_Jornada... · la colaboración entre los participantes y propiciando la aplicación

• Metodologías ágiles:

– http://www.extremeprogramming.org

– http://www.xprogramming.com

– Craig Larman, "Agile and Iterative Development: A Manager's Guide".

Addison Wesley, 2004.

• Ambientes colaborativos para el desarrollo de proyectos de

software:

– Booch, G., & Brown, A. W, “Collaborative Development Environments”,

Cupertino, CA, USA. 2002

– Leigh Williamson, “The Rational approach to automation”, IBM, 2009

pg.62

Referencias adicionales

Page 63: Los ambientes colaborativos como entornos …52.0.140.184/typo43/fileadmin/Base_de_Conocimiento/X_Jornada... · la colaboración entre los participantes y propiciando la aplicación

• Trabajos en la U. Javeriana:

– "ConstruColectiva: Guía metodológica para la gestión de proyectos de

software basados en metodologías ágiles, utilizando ambientes de

desarrollo colaborativo. Caso de estudio: GForge". John Diaz, Juan Felipe

Olaya. Memoria del trabajo de grado en Ingeniería de Sistemas,

Universidad Javeriana, 2010.

– Productos disponibles de ConstruColectiva: leer instrucciones en

http://orion.javeriana.edu.co:81/gf/

– Consuelo Franky, “Agile Management and Development of Software

Projects based on Collaborative Environments”, ACM Software Engineering

Notes (ACM SIGSOFT SEN) , Mayo de 2011, http://www.sigsoft.org/SEN/

pg.63