Está en la página 1de 12

MEJORES PRÁCTICAS

PARA LA DIRECCIÓN, GESTIÓN E


INNOVACIÓN DE PROYECTOS
UNIDAD 2: PROYECTOS ÁGILES, SOSTENIBLES Y
NORMA ISO 21500. PROJECT Y PRINCE.

SEMANA 3
Agil Project Ma-
nagement.
Norma ISO
21500.
Agil Project Management. Norma ISO 21500.

MATERIAL DE LECTURA:

Desarrollo ágil de software Los modelos iterativos e incrementales agilizan


las entregas, ya que pueden trabajar sobre el
desarrollo de un conjunto menor de requerimientos.
Estos métodos se hacen pesados, como RUP
En el último tiempo las empresas en un entorno cuando se utilizan todos los modelos o diagramas
global cambiante, por lo que es necesario responder de UML y se debe actualizar continuamente la
rápidamente al mercado, cubrir las oportunidades documentación. Es por ello que algunos grupos de
que se presentan y estar atentos a las novedades desarrollo utilizan solo los diagramas necesarios
de la competencia. El dinamismo de la operatoria para documentar el funcionamiento del sistema
de las empresas debería ser acompañado por y los procesos de negocio, agilizando en parte el
el software que utiliza para su gestión, lo que la tiempo de desarrollo y despliegue del software.
mayoría de las veces no sucede por varios motivos,
destacamos dos como muy importantes: Si bien a partir de la década de los ’80 se
comienza a trabajar sobre agilizar los procesos,
▶ El software se desarrolla de acuerdo a las recién a fines de los ’90 prospera la idea con
necesidades del cliente en un momento enfoques de metodologías ágiles. En 1997 en
dado, anterior. el Reino Unido se desarrolla DSDM (Dynamic

▶ Los nuevos requerimientos llevan mucho


tiempo desarrollarlos, entendiendo por
mucho tiempo a que siempre es mayor al
tiempo que requiere y necesita el cliente.

Otro factor a tener en cuenta es que al momento


de comenzar a utilizar el software los usuarios
podrán detectar algunos requerimientos
que son necesarios pero que no aparecieron
anteriormente en la etapa de relevamiento o en
la validación con el cliente.

Los procesos de desarrollo que en su


metodología requieren del total de los
requerimientos para comenzar el análisis,
diseño desarrollo y prueba, son los más lentos,
ya que el usuario deberá esperar al desarrollo y
despliegue de todo el sistema para comenzar
a utilizarlo. Por lo tanto no están orientados al
desarrollo rápido de software.

3
MEJORES PRÁCTICAS PARA LA DIRECCIÓN, GESTIÓN E INNOVACIÓN DE PROYECTOS

Systems Development Method), luego estuvo la En la década de 1980, la concepción de calidad de


aparición de Scrum (Schwabwer y Beedle, 2001) software lograda por una detallada planificación,
y XP programación extrema (Beck, 1999, 2000). gestión y control del proceso, respetando las etapas
El objetivo de las metodologías ágiles es producir de análisis y diseño apoyados por herramientas
rápidamente un software útil, el cual se desarrolla CASE y una grancantidad de documentación de
como una serie de incrementos incluyendo una apoyo. Esta visión generada por la comunidad
nueva funcionalidad del sistema. de Ingeniería de software marca el comienzo de
la ingeniería de software dando fin al arte, sobre
Todas comparten algunas características que son todo para los grandes sistemas, como fueron los
fundamentales, Ian Sommerville destaca tres de aeroespaciales y gubernamentales.
ellas:
Cuando este enfoque basado en la planeación
1. Los procesos de especificación, diseño e se aplica a sistemas de negocios pequeños
implementación están entrelazados, esto o medianos, los costos son demasiados y el
provoca que no exista una especificación tiempo empleado es mayor en el diseño que
detallada del sistema, la documentación del en la programación y prueba, también influye el
diseño se minimiza. El ERS define sólo las tiempo de actualización de la documentación.
características más importantes del sistema. Este incremento de tiempo y costo se hace más
relevante aun con cada nuevo requerimiento o
2. El sistema se desarrolla en diferentes versiones, actualización de uno existente, de lo contrario el
para ello es indispensable la participación activa
del cliente y usuarios del sistema en cada
versión.

3. Las interfaces de usuario se desarrollan


utilizando herramientas que permitan la
construcción rápida e interactiva.

Las metodologías ágiles desarrollan y entregan


software en periodos de tiempo muy cortos,
dos o tres semanas con incrementos mínimos,
la retroalimentación de los usuarios es continua
generando los nuevos requerimientos para la
próxima versión, minimiza la documentación
utilizando comunicación informal, como puede
ser una foto y las reuniones son diarias y de
poco tiempo, también informales, aunque un
mínimo de documentación queda de respaldo
de cada reunión.

Métodos ágiles, concepto

4
Agil Project Management. Norma ISO 21500.

riesgo de tener una documentación que no refleje


el sistema actual es grande.

En la década de 1990 con el cambio que


comienza a producir la globalización el tiempo
de respuesta para la toma de decisiones debe
ser menor, el software debe acompañar los
cambios que se manifiestan en corto plazo y la
metodología actual no lo permitía, es por ello
que un grupo de desarrolladores de software
proponen nuevos ‘métodos ágiles’, permitiendo
que se concentren en el software y no en el
diseño y la documentación. Este cambio trajo el
riesgo de volver al estado del arte en el desarrollo
de software y los avances que había realizado
la Ingeniería de software se perdiese, es por
ello que no se eliminan las etapas sino que se
minimiza el tiempo de diseño y se simplifica o
lleva a la mínima expresión la documentación.
Este cambio requiere de capacitación de los
integrantes del equipo, lo que marca la diferencia
con las metodologías más pesadas que permiten
que un integrante junior pueda entender y producir
a corto plazo, mientras que en las metodologías Ambas metodologías muestran ventajas y
ágiles los nuevos integrantes del equipo deben desventajas en su uso, entre ellas podemos destacar:
tener cierto conocimiento y manejo del proceso y
la metodología para poder sumarse y producir en
Metodologías basadas en la planifi-
corto tiempo.
cación y documentación:
Es así que la comunidad de ‘métodos ágiles’
establecen el manifiesto ágil que afirma: ▶ Demuestran el sistema a todos los roles
que intervienen en el proceso de desarrollo.
Estamos descubriendo mejores formas para
desarrollar software, al hacerlo y al ayudar a ▶ Los nuevos integrantes pueden entender
otros a hacerlo. Gracias a este trabajo llegamos aunque no tengan mucho conocimiento.
a valorar: A los individuos y las interacciones
sobre los procesos y herramientas. Al software ▶ Son organizados y si las iteraciones
operativo sobre la documentación exhaustiva. La contienen componentes de pocos
colaboración con el cliente sobre la negociación requerimientos funcionales el tiempo de
del contrato. La respuesta al cambio sobre el respuesta al cliente es menor.
seguimiento de un plan. Esto es, aunque exista
valor en los objetos a la derecha, valoraremos ▶ En sistemas muy dinámicos se corre el
más los de la izquierda. (Ian Sommerville, 2011) riesgo de desactualizar la documentación o
que no se utilice.

5
MEJORES PRÁCTICAS PARA LA DIRECCIÓN, GESTIÓN E INNOVACIÓN DE PROYECTOS

▶ La base de diseño es sólida para que el Programación extrema XP


sistema sea escalable.
En la programación extrema, llamada así
Metodologías ágiles: porque el enfoque se desarrolló llevando a
niveles ¿extremos? Las prácticas del desarrollo
▶ El cliente está involucrado activamente en el iterativo, donde los requerimientos se expresan
proceso. ¿Qué sucede cuando no puede? como escenarios (historias de usuario), que son
implementadas como una serie de tareas. Estas
▶ El tiempo de respuesta es de 2 o 3 semanas tareas son probadas y tienen que pasar con
lo que permite que sea dinámico y acompaña éxito para ser integrada al sistema. En XP los
los cambios de la empresa. programadores trabajan de a pares desarrollando
las pruebas antes de codificar. En un día de trabajo
varios grupos de programadores pueden estar
▶ El diseño no es lo fundamental, por lo que trabajando en varias versiones que luego de ser
¿podrá ser escalable en el tiempo? probadas se integran y se prueban nuevamente,
liberando la versión en el día.
▶ La documentación es mínima, no obstante
¿se mantiene en el tiempo? Las prácticas de XP responden a un ciclo repetitivo
que incluye:
No hay metodologías mejores ni peores, hay
distintas metodologías para distintos sistemas y ▶ Selección de historias de usuarios para
distintos equipos. liberar.

Veamos entonces la representación del Desarrollo ▶ Desglose de las historias en tareas


basado en un plan y el Desarrollo ágil.
▶ Planificación de la liberación

▶ Desarrollo, integración, prueba del software

▶ Liberación del software

▶ Evaluación del sistema

Tipos de métodos ágiles ▶ Comienza nuevamente con la selección de


historias de usuario.

Para que este ciclo sea realmente iterativo en el


mínimo de tiempo es necesario:

▶ Que el desarrollo incremental se apoye en


pequeñas y frecuentes liberaciones del
sistema, los requerimientos se fundamentan
en pequeñas historias del cliente.

6
Agil Project Management. Norma ISO 21500.

innecesarios en el sistema.
▶ Que el cliente participe activamente y
diariamente, existe un representante del Al formar parte del equipo el cliente define las
cliente participa en el desarrollo y es quien necesidades, en conjunto se desarrollan ‘tarjetas
definir las pruebas. de historia’ que son la entrada principal al
proceso de planeación XP. Luego el equipo las
▶ Que las personas se basen en la descompone en ‘tareas’ estimando el esfuerzo
programación en pares donde la propiedad y los recursos necesarios para implementar
es colectiva no de un par determinado y en cada una de ellas. El cliente prioriza eligiendo las
un proceso de desarrollo sustentable de historias más urgentes, la implementación de las
jornadas no muy largas. funcionalidades de la historia con todas sus tareas
se realiza en aproximadamente dos semanas.
▶ Que el cambio se acepte mediante
liberaciones regulares con aceptación Es muy común que lleguen requerimientos de
del cliente y refactorización para que sea cambio en funcionalidades ya implementadas,
consistente el sistema. para lo cual se generan nuevas historias, las
historias no implementadas se modifican o
▶ Que se mantenga la simplicidad mediante desechan de acuerdo al cambio solicitado.
la refactorización continua, mejorando
la calidad del código y con el uso de La programación extrema no descuida las fechas
diseños simples que no anticipan cambios de liberación, si hay problemas se consulta con el
cliente y se replanifica.

Un problema general con el desarrollo


incremental es que tiende a degradar la
estructura del software ocasionando mayores
dificultades para implementar los nuevos
requerimientos o cambios, lo cual lo hace débil
en el concepto de escalabilidad.

Para problemas en las pruebas y validaciones


del sistema se enfatiza en la prueba del
programa, para ello las características claves
aponer a prueba son:

▶ Desarrollo o diseño de la primera prueba


que se elaboran antes de escribir el código,
pudiendo correr las pruebas mientras se
codifica descubriendo problemas durante
el desarrollo.

▶ El desarrollo de pruebas incrementales a


partir de escenarios o historias.

7
MEJORES PRÁCTICAS PARA LA DIRECCIÓN, GESTIÓN E INNOVACIÓN DE PROYECTOS

▶ La participación activa del usuario en el ▶ Proceso de revisión informal ya que al


desarrollo y validación de pruebas. menos dos personas están observando las
líneas de código.
▶ El uso de pruebas automatizadas.
▶ Ayuda a la refactorización, proceso necesario
para el mejoramiento del software. Esta
refactorización es una tarea poco atractiva
Programación en pares comparada con la de generación de código,
la posibilidad de que quien se encargue de
La programación por pares es una innovación esta refactorización pueda ser cualquiera
que introdujo XP, trabajando juntos en la misma de los desarrolladores hace que la tarea se
computadora, aunque no siempre programan tome con mejor ánimo.
juntos, la idea es compartir conocimientos para la
producción más rápida del software.
Es claro pensar que los conocimientos de los pares
debe ser similar, si uno de los integrantes no tiene
Esta metodología de trabajar de a pares trae
conocimientos suficientes no podrá colaborar
aparejado algunas ventajas:
con su par y la producción quedará a cargo de
una sola persona, como consecuencia hay una
▶ Se incrementa la idea de propiedad y
pérdida de productividad significativa comparada
responsabilidad colectiva del trabajo en
con dos programadores expertos trabajando
equipo, para los problemas y errores también,
juntos en la misma tarea. De todos modos es una
ya que se desarrolla el sentido de pertenencia.
forma de capacitación de los nuevos integrantes,

8
Agil Project Management. Norma ISO 21500.

pero hay que tener en cuenta los costos que esto


trae aparejado.

Administración de proyectos
ágiles
Para que las liberaciones se realicen en el
tiempo estimulado es una responsabilidad del
administrador del proyecto quien supervisa el
trabajo de los ingenieros de software y monitorizan
el avance del proceso de desarrollo del sistema.
La aplicación de una administración basada en
el plan, como es la concepción tradicional no
funciona correctamente en los desarrollos con
metodologías ágiles dado que los requerimientos
son desarrollados incrementalmente con entregas
a corto plazo y los cambios y refactorización es una
norma de trabajo. En este caso se debe buscar el
rendimiento de los recursos en el tiempo.

Scrum es un método ágil general donde su


enfoque está en la administración iterativa del Veamos el proceso de Scrum
desarrollo y no en enfoques técnicos tradicionales.
Este método no elimina las pruebas por lo que
puede utilizarse para XP ofreciendo al proyecto
un marco administrativo.

Con Scrum existen tres fases:

1. Planeación del bosquejo, se establecen los


objetivos generales del proyecto y el diseño
de la arquitectura de software.

2. Ciclos sprint, cada ciclo desarrolla un La innovación en Scrum es su fase central, es


incremento del sistema decir los ciclos de sprint, que es una unidad de
planeación en la que se valora el trabajo que
3. Cierre del proyecto, completa la se desarrollará. Al finalizar el sprint se realiza la
documentación requerida, ayudas al sistema entrega de las funcionalidades de las historias
y manuales del usuario, si fuesen necesarios, de usuario que se determinaron para cada uno.
también valora las lecciones aprendidas. Somerville identifica las siguientes características
de los sprint:

9
MEJORES PRÁCTICAS PARA LA DIRECCIÓN, GESTIÓN E INNOVACIÓN DE PROYECTOS

▶ Longitud fija, entre dos y cuatro semanas estar todos en un mismo lugar lo que se adapta a la
para cada sprint. forma de trabajo distribuido de los últimos años.

▶ La planeación comienza con la lista de Escalamiento de métodos


trabajos a realizar en el proyecto y por sprint,
revisando esto en la fase de valoración del ágiles
sprint asignando riesgos y prioridades.
Requiere de la participación activa del cliente Los métodos ágiles se emplean principalmente
o usuario quien el comienzo de cada sprint para el diseño y desarrollo de sistemas
puede incorporar nuevos requerimientos. pequeños o medianos, ya que estos métodos se
desarrollaron para usarse en equipos pequeños
▶ La selección incluye a todo el equipo de programación. Como también creció la
definiendo los requerimientos a necesidad de implementarlos en sistemas más
desarrollarse, recuerde la relación con grandes es que nace la necesidad de escalar
historias de usuario y tareas. estos métodos para que puedan ser aplicados en
grandes organizaciones.
▶ Se organiza el equipo para el desarrollo En 2007 Leffingwell estudia cuáles métodos ágiles
del software, aislándose del cliente y la se escalan a sistemas mayores. En 2008 Moore
organización, manteniendo la comunicación y Spens cuentan sus experiencias con equipos
con el ‘maestro de Scrum’, quien protege de 300 personas distribuidas geográficamente
al equipo de desarrollo de distracciones usando prácticas ágiles para desarrollar un gran
externas. Pueden utilizar las prácticas de
XP si lo consideran oportuno.

▶ Al finalizar el desarrollo se revisa,


prueba y se presenta a los participantes,
comenzando el cierre del ciclo sprint y
comenzar el siguiente.

Se autoriza a todo el equipo para tomar


decisiones, por lo que no hay ‘un administrador
de proyecto’, en su lugar el ‘maestro de Scrum’
es el facilitador que ordena las reuniones diarias,
revisa avances, retrasos, propone cambios, se
comunica con el cliente, entre otros.

Las reuniones diarias son cortas, por lo general


los integrantes no se sientan, suelen ser de 15
minutos, se comparte información, avances,
problemas y se planifican las tareas diarias,
participando todos de ella. Estas reuniones
pueden hacerse de forma remota, no necesitan

10
Agil Project Management. Norma ISO 21500.

sistema médico. En el mismo año, Denning Para solucionar estos problemas los métodos
sostiene que la única manera de enfrentar los ágiles presentan dos expectativas para el
problemas de la Ingeniería de software en sistemas escalamiento de los grandes sistemas:
que exceden el presupuesto y no satisfacen las
necesidades del cliente es encontrar la forma 1. La perspectiva de ‘expansión’ (scaling up) se
de que los métodos ágiles se puedan aplicar a interesa en utilizar los métodos ágiles en el
grandes sistemas. desarrollo de los grandes sistemas de software.

Algunas características de los grandes sistemas 2. La perspectiva de ’ampliación’ (scaling out) se


que difieren de los sistemas pequeños son: interesa en introducir los métodos ágiles en
las grandes organizaciones con muchos años
▶ Los grandes sistemas por lo general de experiencia en el desarrollo de software.
son colecciones de sistemas separados
en comunicación que desarrollan cada Para enfrentar la Ingeniería de software de los
sistema, los cuales pueden trabajar en grandes sistemas es necesario que los métodos
distintos lugares. ágiles se adapten, según Leffingwell en 2007
sostuvo que para ello deben mantener sus
▶ Según Hopkins y Jenkins en 2008, fundamentos que son:
establecen que los grandes sistemas son
“Sistemas abandonados”, cuando existen ▶ planeación flexible
sistemas que no son flexibles ni escalables
los nuevos requerimientos pueden ▶ liberación frecuente del sistema
determinar un nuevo sistema que interactúe
con el existente y si no se puede, la decisión
es parte de la política de la empresa y los ▶ integración continua
administradores, lo cual no siempre es fácil.
▶ desarrollo dirigido por pruebas
▶ Los grandes sistemas y sus procesos de
desarrollo están restringidos por reglas ▶ buena comunicación del equipo.
y/o normas externas que pueden limitar
la forma de desarrollarlos, necesitando Leffingwell considera que deben introducirse
documentación del sistema a crear. adaptaciones críticas, entre ellas podemos
destacar las siguientes:
▶ Los grandes sistemas requieren de
prolongados tiempos para desarrollarlos ▶ No deben enfocarse sólo en el código, es
lo que dificulta la documentación que se necesario diseñar la arquitectura y documentar
necesita para el conocimiento del mismo. los aspectos críticos del sistema.

▶ Los grandes sistemas tienen numerosos ▶ Deben usarse variados mecanismos y


usuarios que cambian en el tiempo los cuales canales de comunicación entre equipos
pueden rotar y se dificulta su participación previamente diseñados.
en el desarrollo del crecimiento del sistema.
▶ Para continuar con liberaciones continuas
puede ser necesario incorporar nuevas
herramientas de gestión de configuración

11
MEJORES PRÁCTICAS PARA LA DIRECCIÓN, GESTIÓN E INNOVACIÓN DE PROYECTOS

que administren y soporten el desarrollo de los métodos ágiles.


software realizado por múltiples equipos.
▶ Resistencia cultural a incorporar las
▶ Las pequeñas empresas de software metodologías ágiles lo que implica la
adquieren las metodologías ágiles más necesidad de evangelización.
fácilmente que las grandes compañías.
Lindwall y sus colaboradores en 2004 La ingeniería de software plantea como buena
analizan algunos de los problemas y práctica el control de cambio y las pruebas lo que
plantean algunas razones, las cuales son: se plantea incompatible con las metodologías
ágiles ya que en XP cualquier desarrollador puede
▶ Carecen de experiencia con los métodos modificar el código sin autorización externa. En
ágiles por lo que los gerentes de proyectos cuanto a las pruebas, en los grandes sistemas
se muestran reticentes a aceptar el riesgo es común que se envíen a realizar por equipos
por desconocimiento de cómo afectarán a externos lo que entra en conflicto con los enfoques
sus proyectos. de primera prueba y pruebas frecuentes de XP.

▶ Tienen procedimientos y estándares de Todo lo anterior planteado indica que introducir


calidad para todos los proyectos que a y sostener metodologías ágiles en grandes
menudo son burocráticos lo que lo hacen empresas es un proceso de cambio cultural, el
incompatibles con las metodologías ágiles.cual normalmente tarda mucho tiempo para lograr
Cuando definen el uso de herramientas de implementarlo y a menudo es necesario el cambio
de administración antes de su incorporación,
soporte en la gestión deben ser incorporadas
en todos los proyectos. requieren también de motivadores de cambio.
Este proceso no es imposible ya que existen en
▶ Existen diferentes niveles de habilidades la actualidad numerosas empresas que están
y destrezas lo que se contrapone con la incorporando y manteniendo las metodologías
existencia de nivel elevado como lo es en ágiles en algunos de sus proyectos.

12

También podría gustarte