37. ¿QUÉ SON?
•Métodos de I.S.
•Desarrollo iterativo e incremental
•Grupos auto-organizados
•Lapsos cortos
http://commons.wikimedia.org/wiki/File:Agile_Software_Development_methodology.svg
38. ORIGEN
● Mediados de los 90
● Respuesta al modelo en cascada
– Burocrático
– Lento
– Degradante
– Ineficiente
http://commons.wikimedia.org/wiki/File:El_modelo_de_desarrollo_en_cascada.svg
39. MANIFIESTO ÁGIL
● 17 de febrero de 2001, Kent Beck
Estamos poniendo al descubierto mejores métodos para desarrollar software, haciéndolo y ayudando a otros a que
lo hagan. Con este trabajo hemos llegado a valorar:
A los individuos y su interacción, por encima de los procesos y las herramientas.
El software que funciona, por encima de la documentación exhaustiva.
La colaboración con el cliente, por encima de la negociación contractual.
La respuesta al cambio, por encima del seguimiento de un plan.
Aunque hay valor en los elementos de la derecha, valoramos más los de la izquierda.
● Firmantes: Kent Beck, Mike Beedle, Arie van Bennekum, Alistair Cockburn, Ward Cunningham, Martin Fowler,
James Grenning, Jim Highsmith, Andrew Hunt, Ron Jeffries, Jon Kern, Brian Marick, Robert C. Martin, Steve
Mellor, Ken Schwaber, Jeff Sutherland y Dave Thomas
http://agilemanifesto.org/
40. METODOLOGÍAS
● Adaptive Software Development (ASD).
●
Agile Unified Process (AUP).
● Crystal Clear.
● Essential Unified Process (EssUP).
● Feature Driven Development (FDD).
●
Lean Software Development (LSD).
● Kanban.
● Open Unified Process (OpenUP).
●
Programación Extrema (XP).
● Método de desarrollo de sistemas dinámicos (DSDM).
●
Scrum.
● G300.
41. AGILE UNIFIED PROCESS
AUP
● Test Driven Development
● Modelado ágil
● Gestión de cambios ágil
● Refactorización de BBDD
RUP
● Iterativo e incremental
● Dirigido por casos de uso
● Centrado en la arquitectura
● Enfocado en los riesgos
● Versión simplificada de RUP
42. LEAN SOFTWARE DEVELOPMENT
● Eliminar desperdicios:
– Código y funcionalidades
innecesarias
– Retraso en el proceso de
desarrollo de software
– Requisitos poco claros
– Burocracia
– Comunicación interna lenta
● Características:
– Ampliar aprendizaje
– Decidir lo más tarde posible
– Just in time
– Potenciar el equipo
– Crear integridad
Adaptación del sistema de producción TOYOTA
43. EXTREME PROGRAMMING
Todo en el software cambia. Los requisitos cambian. El diseño cambia. El negocio cambia. La tecnología cambia.
El equipo cambia. Los miembros del equipo cambian. El problema no es el cambio en sí mismo, puesto que sabemos
que el cambio va a suceder; el problema es la incapacidad de adaptarnos a dicho cambio cuando éste tiene lugar.
Kent Beck.
● Desarrollo iterativo e incremental
● Pruebas unitarias continuas
● Programación en parejas
● Integración equipo-cliente
● Corrección de todos los errores
● Refactorización del código
● Propiedad del código compartida
● Simplicidad en el código
45. SCRUM II - Elementos
● Product Backlog
– Lista de objetivos
priorizada
– Visión del cliente
(Product Owner)
– Muestra iteraciones
y entregas
– Riesgos y cómo
mitigarlos
http://agilesoftwaredevelopment.com/files/apostimages/Scrum/simple-product-backlog.png
46. ● Sprint Backlog
– Lista de tareas de
la iteración
– Autoasignación
– Muestra el
esfuerzo pendiente
– Actualizado a diario
http://www.agile-tools.net/i/simple-sprint-backlog.png
47. ● Tablón de tareas
– Tres estados:
pendiente, en curso
y terminado
– Objetivo del sprint
– Gráfico Burn Down
– No planificados y
siguientes
http://2.bp.blogspot.com/-G_zrSqnCsL0/TyhQg6ojwiI/AAAAAAAAGf0/TkZhwzxscqE/s1600/taskboard.jpg
48. SCRUM III - Roles
● Scrum Master
– Facilitador/gestor
– Guía en la práctica
de Scrum
– Elimina
impedimentos
– Protege al equipo
● Product Owner
– “Cliente”
– Define
funcionalidades
– Prioriza f.
– Acepta o rechaza
resultados
● Equipo
– Desarrolladores del
proyecto
– Responsabilidad
compartida
– De 5 a 9 personas
– Auto-organizados
– Cambios de
personal entre
sprints
58. Lan askatasuna
Proiektuek beren helburuak lortzeko
“edozein gauza” egiteko eskubidea
dute, beraien ezaugarrien barruan.
BAINA proiektuen arteko koordinazioa
beharrezkoa da.
60. • Kodea beste pertsonaren batek
errebisatu beharko du.
• Kode konbentzioak jarraitu.
• Aldagaien izenak zentzudunak izan
daitezela, mesedez.
Always code as if the person who ends
up maintaining your code is a violent
psychopath who knows where you live.
61. Gurpila asmatu zen
aspaldi
• Ahal bada, ez programatu:
Wordpress, Drupal, etab.
• Beharrezkoa bada, framework-ak
erabili: Play! (Scala, Java),
Symfony (PHP), Django (Python),
Ruby on Rails, etab.
• Eta liburutegiak eskura badaude,
erabili.
62. Taldean lan egitean dena ezin
da egin norberaren gustora
• Bileretan zerbait defendatzean,
etsitzeko prest egon.
• Gai polemikoak eztabaidara eraman
lehenbailehen.
BAINA Batzuetan hobe da barkamena eskatzea
baimena eskatzea baino.
64. Bezeroa (1...)
• Galdetu, galdetu, galdetu
(agobiatu gabe).
• Prototipo erabilgarriak maiz.
• Aurrekontua egitean ondo definitu,
batez ere bere eskutan dauden
elementuak.
65. Bezeroa (... eta 2)
• Jabetza Intelektualaren Legea:
egindako lanaren esplotazio
eskubideak norenak dira?
• Debranding: zenbat balio du
norbere marka produetan ez
agertzeak?
67. Etxekolanak
1. Enpresa baten jabe bazinate, zenbat
kobratuko zeniokete P2-n egiten ari
zareten produktua beste enpresa bati?
2. Enpresa baten jabe bazinate, zenbat
ordainduko zenukete P2-n egiten ari
zareten produktuaren truke?
3. Hona langile moduan ordu eta erdi
etortzeagatik, zenbat soldata jaso
beharko zenukete?
69. Formas de participar
en la universidad
• Voluntariado
• Representación estudiantil
• Activismo político/social
• Junior Empresas
• Publicaciones culturales y científicas
• Becas de colaboración
• Otros proyectos por alumnos
70. ¿Qué ofrecemos?
• Proyectos, clientes (y quebraderos de
cabeza) reales.
• Aprender herramientas y tecnologías
novedosas y demandadas.
• Hacer funcionar una empresa.
71. Lo que no ofrecemos
• Dinero.
• Aprobado (o buena nota) en GP.