Logo Studenta

Procesos Agiles de Desarrollo de Software

¡Estudia con miles de materiales!

Vista previa del material en texto

Estudiante: Diego Barrientos Jaldín 
 
Procesos Ágiles de Desarrollo de Software 
 
¿Por qué usar procesos ágiles? Los procesos ágiles surgen como una forma 
de superar las deficiencias de la ingeniería de software convencional que 
considera, al parecer, que el proceso lo es todo, que los grupos son 
homogéneos y que los desarrolladores carecen de los problemas de las 
personas comunes. También es un hecho que los requerimientos del 
software cambian constantemente y que es muy costoso hacer cambios en 
las fases más avanzadas de un proyecto. De igual manera, es demasiado 
común creer que se han entendido las necesidades del cliente y, sin 
embargo, hacer las cosas de un modo diferente a lo requerido por éste. Por 
último, y no menos importante, lo que de verdad le da confianza al cliente en 
el equipo de desarrollo es el producto; al cliente no le sirven los documentos 
que se generan en el proceso. Es por eso que se buscó un enfoque diferente 
para el desarrollo de software, el enfoque ágil. 
Lo que nos dice el enfoque ágil de desarrollo de software es lo siguiente: 
 Los desarrolladores son personas y como tales tienen limitaciones y 
problemas, por tanto el proceso debe adaptarse a las personas y no al 
revés. Se debe confiar en que harán su trabajo y se les debe brindar el 
apoyo necesario. Son ellos los que se organizarán así mismos para el 
trabajo. 
 La prioridad es dejar satisfecho al cliente por sobre todo. Esto se hace 
con la entrega pronta y continua de software que funciona y mediante 
la capacidad de adaptarse a los cambios en los requerimientos, sin 
incurrir en grandes gastos. 
 
 
 Se debe trabajar conjuntamente con el cliente. El Ilieミte deHe seヴ さuミo 
マásざ del eケuipo de desaヴヴollo. Es la mejor forma de ver cómo 
realmente funciona el negocio, observar que es lo que de verdad se 
necesita y crear un mejor ambiente de trabajo. 
 La medida principal del trabajo es el software que funciona, es lo único 
que puede indicar que el trabajo está yendo por buen camino o que 
hay algo que está fallando y además es lo que al cliente realmente le 
interesa: el producto. 
Todo esto está condensado en el Manifiesto Ágil de la Alianza Ágil del año 
2001: 
さEstamos descubriendo mejores formas de desarrollar software, haciéndolo y 
dando ayuda a otros para que lo hagan. Este trabajo nos ha hecho valorar: 
Los individuos y sus interacciones, sobre los procesos y las herramientas. 
El software que funciona, más que la documentación exhaustiva. 
La colaboración con el cliente, y no tanto la negociación del contrato. 
Responder al cambio, mejor que apegarse a un plan. 
Es decir, si bien son valiosos los conceptos que aparecen en segundo lugar, 
valoramos más los que aparecen en el primer sitioざ. 
 
Ahora que vimos qué son los procesos ágiles, vamos a ver cómo son 
revisando uno de éstos: Scrum. 
Scrum (cuyo nombre proviene de una jugada de rugby en la que los 
jugadores trabajan juntos) es un proceso ágil de desarrollo de software 
basado en la auto-organización, creado a principios de los 90 por Jeff 
Sutherland y su equipo de desarrollo. 
 
 
Los pasos que en esencia deben seguirse son: 
 El equipo debe reunirse con el cliente, empaparse del negocio y en 
base a eso hacer las historias de usuario, que son en realidad una 
descripción de funcionalidad. El formato es el siguiente: 
Yo como __________ 
Requiero __________ 
Tal que __________ 
 A cada historia se le asigna un valor de complejidad. Esto puede ser 
hecho con Scrum Póker. El juego consiste en repartir cartas con valores 
de 0, 1, 2, 3, 5, 8, 13, 20, 40 y 100 (que representan la complejidad de 
la historia) a cada desarrollador. Luego se lee en voz alta la descripción 
del requerimiento, después cada participante debe escoger una carta y 
ponerla boca abajo. Una vez que todos hayan puesto las cartas, éstas 
se voltean y se muestran los valores. Si se diera el caso en que hay 
mucha diferencia entre dos cartas, se discute el porqué y se vuelven a 
escoger cartas. Y así sucesivamente hasta que se llegue a un valor 
parecido entre todos. 
 Se le asigna un valor que representa cuán importante para el cliente es 
esa historia (ROI). Normalmente es el Product Owner quien se encarga 
de ello. Ésta persona tiene que estar en contacto con el negocio, debe 
hacerse pasar como un cliente y actuar como actuaría uno. 
 Luego se procede a escoger las historias que entraran en el Sprint, que 
es una iteración de treinta días. Lo recomendable es escoger las 
historias que no sean tan complejas pero que sí sean valiosas para el 
cliente. En segundo lugar están las que son valiosas pero son 
complejas, a éstas hay que dividirlas para reducir la complejidad y 
puedan entrar al Sprint. Se deja de lado las historias sencillas pero de 
valor pobre y también las complejas de poco valor para un próximo 
Sprint. 
 Se definen las tareas de cada historia, los estándares y un contenedor 
para las tareas ya terminadas. Se elabora un cuadro con 3 columnas, 
para indicar el avance del equipo: さPor Hacerざ, さHaciendoざ y さHechoざ. 
Las tareas son escritas en unas notas y son pegadas en la parte さPor 
Hacerざ. Cada integrante del equipo escoge las tareas que vea 
conveniente, se compromete a terminarlas y las coloca en la columna 
さHaciendoざ. 
 Comienza el Sprint. Cada día debe haber una reunión diaria de unos 15 
minutos, donde cada miembro del equipo responde a las siguientes 
preguntas: ¿qué hiciste desde la última reunión? ¿qué harás hasta la 
próxima reunión? ¿tienes algún obstáculo? Esto ayuda a detectar 
problemas tan pronto como sea posible y a darles una solución. 
 Una vez terminado el Sprint se hace una retrospectiva. Se analizan los 
aciertos y desaciertos. Se hace una evaluación de qué tan bien 
divididas están las historias, cuán bien se ha planificado, los errores 
cometidos, etc. El próximo Sprint con seguridad saldrá mejor gracias a 
lo aprendido. 
 Software que funciona es mostrado al cliente, quien evalúa el 
resultado. 
Como se ha podido observar, lo que hacen los procesos ágiles es tomar las 
cosas como son. Lo importante son las personas, el software y no tanto el 
proceso o la documentación. El cliente es parte esencial del proceso de 
desarrollo y, aunque es bueno planificar, lo mejor es ser adaptable a los 
cambios ya que éstos siempre se dan.

Más contenidos de este tema