En el desarrollo de software, nos encontramos con un conjunto de muros contra losque nos golpeamos una y otra vez. Describ...
¿qué mueve el mundo?Foto:http://www.flickr.com/photos/49120045@N03/4501214175/                                            ...
Generalmente decimos que ¡el amor mueve el mundo! Pero no nos quedemos conesta visión romántica, por que…Foto:http://www.f...
…realmente, ¿qué controla el mundo?Foto:http://www.flickr.com/photos/monte-biju/6707585301/                               ...
El software!Foto:http://www.flickr.com/photos/beatkueng/5182116596/sizes/z/in/photostream/                                ...
La responsabilidad es nuestra, de los desarrolladores de software. Nosotros somoslos responsables de qué hacemos y cómo ha...
Hay un dicho que nos gusta y es que para conocer a una persona no hay quepreguntarle lo que piensa si no que es lo que ver...
8
9
Foto:http://www.flickr.com/photos/sudhamshu/3202963823                                                    10
Estamos aquí, porque hace unos diez años más o menos estábamos al otro lado. Sinsaber qué nos depararía el futuro y con ga...
Por eso estamos aquí. Porque existe una forma de trabajar distinta que hace que laspersonas se sientan realizadas. Porque ...
Nuestro objetivo, nuestro fin, es ser felices haciendo lo que hacemos. Creandosoftware. La felicidad no es ser jefe de pro...
Pero esto no es fácil. Para llegar a esto tenemos que derribar los muros que nosencontramos por el camino. ¿Cuáles son est...
Estas leyes estaban escritas en un pergamino ¡de la era de los romanos! ;) Sinembargo, no terminamos de creérnoslas, e int...
Salimos de la carrera y nos encontramos así: flotando con otras personas con las queno sabemos como trabajar. Recibimos fo...
No nos enseñan a comunicarnos y además usamos las herramientas inadecuadas. Undiagrama de Gantt no se puede usar como una ...
No creamos ambientes de colaboración sin comunicación, sin confianza. La falta decomunicación impide muchas veces ver lo q...
Si seguimos haciendo las cosas como las hemos hechos siempre, tiene poco sentidoesperar que el resultado vaya a cambiar. L...
Tradicionalmente ser programador venía a ser algo parecido a hacer las ranitas depapel de la imagen. Recortar un lado de l...
Repetir una y otra vez lo mismo, sin posibilidad de aportar nada conllevaaburrimiento y merma la motivación. Cada persona ...
En lugar de crear ranitas de papel con un recortable y unos pasos, el programadorrealmente es una persona creativa que con...
Nosotros conseguimos nuestro objetivo de felicidad (pelotitas verdes), pero nodebemos descuidar al cliente (pelotita amari...
El enfoque más tradicicional de la gestión de proyectos pone el foco en el arranquedel proyecto, donde se generan toda cla...
Los proyectos ágiles son como un misil teledirigidoHipótesis:    El cliente va descubriendo lo que quiere    Los desarroll...
El puente que nos permitirá saltar los muros serán la metodologías ágiles. Cambiar elenfoque básico para afrontar los proy...
¿Dónde aparecen las metodologías ágiles? Se llaman así desde la escritura delmanifiesto ágil,donde se plasmó lo que se con...
Las personas son el ingrediente principal. Personas que trabajan en equiposautoorganizados:• Participan en la creación de ...
¡Divide y vencerás! Dividimos el producto y el tiempo.• Dividimos el producto en pequeñas funcionalidades y hacemos que el...
Tras cada ciclo, en reuniones de retrospectiva, analizamos qué cosas han funcionadoy cuáles no. Qué problemas ha habido, y...
Creamos espacios de confianza, y la transparencia es fundamental. Se utiliza muchola información pública en forma de tablo...
http://www.flickr.com/photos/royskeane/413103429/                                                    31
32
33
¿Cómo lo hacemos utilizando Scrum?• El equipo se reúne con el cliente para tener una visión general global: todos  conocem...
cómo se está haciendo y si es lo que el quiere realmente (feedback del cliente)• Al final del sprint, además el equipo se ...
Existen tres roles definidos en Scrum• Producto Owner: El “propietario del producto” es el único representante de   todos ...
Scrum es un marco de gestión de equipos (y de proyectos), pero no debemos olvidarla parte técnica, fundamente en cualquier...
37
Escribe tu propia historia. Nunca te desanimes en el camino a la meta, recuerda quetodo en la vida se trata de superar obs...
Acércate a tu comunidad local de Agile-Spain, y ven a aprender con nosotroshttp://agile-spain.org/ En la zona norte nos ju...
40
41
Upcoming SlideShare
Loading in …5
×

La visión "ágil" del software para universitarios

2,181 views

Published on

¿Que es lo que mueve al mundo? ¡El amor! Vale... pero... ¿qué es lo que realmente lo controla? ¡El software!
El desarrollo de software va más allá de lo que nos enseñan en la facultad de informática. Más allá de computación numérica, ingeniería del software y arquitectura de computadores, necesitamos habilidades que debemos desarrollar en nuestra carrera profesional. Así seremos capaces de entrar en un ciclo de mejora continua. Nos centraremos en lo más importante: en las personas. Nos centraremos en la colaboración con el cliente y en la respuesta al cambio. Objetivos: crear software de calidad y la felicidad. Movamos el mundo.

Por Jessica Aguado y Jose Ramón Díaz

Published in: Education
0 Comments
3 Likes
Statistics
Notes
  • Be the first to comment

No Downloads
Views
Total views
2,181
On SlideShare
0
From Embeds
0
Number of Embeds
1,243
Actions
Shares
0
Downloads
11
Comments
0
Likes
3
Embeds 0
No embeds

No notes for slide

La visión "ágil" del software para universitarios

  1. 1. En el desarrollo de software, nos encontramos con un conjunto de muros contra losque nos golpeamos una y otra vez. Describiremos algunos de los más típicos, y cómolevantaremos puentes con las metodologías ágiles para salvarlos. 1
  2. 2. ¿qué mueve el mundo?Foto:http://www.flickr.com/photos/49120045@N03/4501214175/ 2
  3. 3. Generalmente decimos que ¡el amor mueve el mundo! Pero no nos quedemos conesta visión romántica, por que…Foto:http://www.flickr.com/photos/vegard/193666911/sizes/z/in/photostream/ 3
  4. 4. …realmente, ¿qué controla el mundo?Foto:http://www.flickr.com/photos/monte-biju/6707585301/ 4
  5. 5. El software!Foto:http://www.flickr.com/photos/beatkueng/5182116596/sizes/z/in/photostream/ 5
  6. 6. La responsabilidad es nuestra, de los desarrolladores de software. Nosotros somoslos responsables de qué hacemos y cómo hacemos. Nosotros tenemos el control.Cuatro casos relevantes. 1) Google presenta las gafas de realidad aumentada. Elmérito del invento es el control preciso que necesita de los datos, de tu posición, dedónde miras, de lo que te interesa, de lo que elige ofrecerte en cada momento comoinformación, de los datos que recopila… todo, controlado por software. Alguienprogramó lo que vas a ver por el resto de tu vida.2) Si tienes un smartphone, ¿cuántas horas, cientos, miles o millones de horas, llevasdedicadas al desarrollo en el bolsillo? ¿cuántas noches de programadores sin dormir?¿de pizzas a las 10 de la noche en una oficina? ¿cuánta dedicación?3) Un altísimo porcentaje de las operaciones en Bolsa, hoy en día son controladas poralgoritmos implementados en software. ¿qué puede suceder ante un fallo, o unabuso de poder?4) En el futuro, la investigación en los robots dará resultados impresionantes. ¿quiénlos controla? 6
  7. 7. Hay un dicho que nos gusta y es que para conocer a una persona no hay quepreguntarle lo que piensa si no que es lo que verdaderamente le gusta y le hace feliz.En base a esto, vamos a presentarnos. 7
  8. 8. 8
  9. 9. 9
  10. 10. Foto:http://www.flickr.com/photos/sudhamshu/3202963823 10
  11. 11. Estamos aquí, porque hace unos diez años más o menos estábamos al otro lado. Sinsaber qué nos depararía el futuro y con ganas de que alguien nos contase algo.Estamos aquí porque tenemos una historia a cuestas que nos ha marcado.Cuando estaba a punto de terminar la carrera no teníamos claro nuestro futuro, peronos lo imaginábamos como un bonito amanecer (foto amanecer). Un largo caminopor recorrer, empezando como programadores para algún día llegar a ser jefe deproyecto. Para programar estaría la gente de FP.Terminamos la carrera y nos lanzamos al mundo profesional. Desde fuera todoparecía bonito (foto huracán): has terminado la carrera y tienes un trabajo de lo tuyo!Pero la realidad es que desde dentro se ve diferente. Te encuentras metiendo horas,haciendo cosas que te dicen que sabes que se pueden hacer mejor, te aburres,deseas cambiar de trabajo…. Al cabo de los años, 5 en mi caso, te das cuenta de queno has avanzado a penas: no tengo 5 años de experiencia si no que uno repetido 5veces (foto espiral).En este punto conocí a Joserra que se había embarcado en un nuevo proyecto paracrear una oficina en San Sebastián desde 0 (foto oficina vacía). Poco a poco fuimoscreciendo y la oficina se fue llenando de personas que trabajábamos juntas (fototrabajando). La diferencia con respecto a trabajos anteriores: las personas eranimportantes. La confianza entre las personas era importante. La transparencia eraimportante. Llegamos a convertirnos en una pequeña familia (foto bikodonosti-family) 11
  12. 12. Por eso estamos aquí. Porque existe una forma de trabajar distinta que hace que laspersonas se sientan realizadas. Porque existe una forma de trabajar que nos ha hechoser felices.Fotos:Amanecer: http://www.flickr.com/photos/tpenalver/2087638944Huracán: http://www.flickr.com/photos/gsfc/6086341900/ 11
  13. 13. Nuestro objetivo, nuestro fin, es ser felices haciendo lo que hacemos. Creandosoftware. La felicidad no es ser jefe de proyectoLa felicidad no es ser programador. La felicidad está en poder decidir cómotrabajamos, y en poder ser partícipe de la creación de proyectos e ideas.Foto:http://www.flickr.com/photos/pinksherbet/4463360814 12
  14. 14. Pero esto no es fácil. Para llegar a esto tenemos que derribar los muros que nosencontramos por el camino. ¿Cuáles son estos muros?Foto:http://www.flickr.com/photos/oshkar/2914122863/ 13
  15. 15. Estas leyes estaban escritas en un pergamino ¡de la era de los romanos! ;) Sinembargo, no terminamos de creérnoslas, e intentamos esquivarlas escribiendo másrequisitos al principio, protegiéndonos de manera más cerrada contra los cambios, yprometiendo que las cosas siempre estarán en la fecha estimada.Foto:http://www.flickr.com/photos/devontt/167285659 14
  16. 16. Salimos de la carrera y nos encontramos así: flotando con otras personas con las queno sabemos como trabajar. Recibimos formación sobre como trabajar con máquinaspero no con personas. Alguien nos ha explicado ¿Cómo liderar? ¿Cómo motivar?¿Cómo generar confianza? ¿Qué es la empatía?El desarrollo de software va más allá de picar código, el desarrollo de software es unjuego colaborativo entre personas.Foto: 15
  17. 17. No nos enseñan a comunicarnos y además usamos las herramientas inadecuadas. Undiagrama de Gantt no se puede usar como una herramienta de comunicación. Loscanales escritos reducen el ancho de banda de la colaboración. Creamos pequeñosejércitos de programadores/analistas, donde no les dejamos comunicarse más que através de canales mediocres: email, documentos, etc. Donde cada uno ve unaparcelita del proyecto. Pero luego jugamos al teléfono roto con los proyectos, pues elcliente habla con el jefe de proyecto, que pasa la información a los análistas senior,que a lo mejor generan documentación para los programadores,… y hemos perdidomuchísima información por el camino.Fotos:http://www.flickr.com/photos/basel/105997652http://www.flickr.com/photos/d35ign/6226852671http://www.flickr.com/photos/legofenris/4641828205 16
  18. 18. No creamos ambientes de colaboración sin comunicación, sin confianza. La falta decomunicación impide muchas veces ver lo que realmente sucede en un proyecto, losintereses ocultos impiden que la colaboración en post del éxito sea total. Así esimposible colaborar en la búsqueda de un objetivo común. 17
  19. 19. Si seguimos haciendo las cosas como las hemos hechos siempre, tiene poco sentidoesperar que el resultado vaya a cambiar. Las cosas no cambian por ciencia infusa.¡Cambiemos la forma de hacer las cosas! 18
  20. 20. Tradicionalmente ser programador venía a ser algo parecido a hacer las ranitas depapel de la imagen. Recortar un lado de la hoja y seguir las instrucciones, que en elmundo del software se traduce en: recibir una especificación y plasmarla en código.El cliente se reúne con el jefe de proyecto, este con el analista funcional, este con elanalista, ….. Así hasta crear la especificación que llega al programador.No hay margen a la creatividad. No hay posibilidad de utilizar nuestra imaginación.Hacemos lo que hay que hacer, seguimos los pasos y así una y otra vez.Foto:http://www.flickr.com/photos/jacquedavis/3051222260/ 19
  21. 21. Repetir una y otra vez lo mismo, sin posibilidad de aportar nada conllevaaburrimiento y merma la motivación. Cada persona puede tener su propiamotivación, y la tiene! Poder decidir sobre su propio trabajo, motiva. Ver la películacompleta, motiva. Aprender, motiva…Estar motivado en el trabajo es básico.Foto:http://www.flickr.com/photos/assbach/220318384 20
  22. 22. En lugar de crear ranitas de papel con un recortable y unos pasos, el programadorrealmente es una persona creativa que conoce la necesidad del cliente y construye elsoftware. Es algo similar a un lego: dadas las piezas y el objetivo, el programador creael software, basándose en su creatividad.Todo el equipo habla con el cliente, todo el equipo opina y todo el equipo decide quéhacer y cómo hacerlo. Este modelo si que favorece motivación. Es una estructura sinjerarquías, donde solo importan las personas: completas, creativas y llenas derecursos.Foto:http://www.flickr.com/photos/kenjiys/3173014217/ 21
  23. 23. Nosotros conseguimos nuestro objetivo de felicidad (pelotitas verdes), pero nodebemos descuidar al cliente (pelotita amarilla). Nuestro objetivo debe ser que elcliente sea feliz. Es algo muy sencillo: tiene que tener lo que necesita. Para ello,tenemos que acertar en la diana de sus necesidades. 22
  24. 24. El enfoque más tradicicional de la gestión de proyectos pone el foco en el arranquedel proyecto, donde se generan toda clase de artefactos y un plan detallado de pordónde debe marchar el proyecto para ir correctamente. Pero planeamos el disparo, yluego descubrimos vientos o problemas nuevos con los que no contábamos, y que ladirección a la que debíamos apuntar no era la correcta. 23
  25. 25. Los proyectos ágiles son como un misil teledirigidoHipótesis: El cliente va descubriendo lo que quiere Los desarrolladores descubren cómo construirlo Las cosas cambian durante todo el desarrolloRealizamos ciclos cortos de desarrollo, comprobando tras cada uno de ellos, si vamosen la buena dirección, o tenemos problemas para solucionar. 24
  26. 26. El puente que nos permitirá saltar los muros serán la metodologías ágiles. Cambiar elenfoque básico para afrontar los proyectos software.http://www.flickr.com/photos/ecstaticist/902533511/ 25
  27. 27. ¿Dónde aparecen las metodologías ágiles? Se llaman así desde la escritura delmanifiesto ágil,donde se plasmó lo que se consideró buenas prácticas y valores que expertos habíanobservado que contribuían al desarrollo con éxito del software.http://agilemanifesto.org/iso/es/Existen muchas metodologías ágiles, siendo algunas de las más extendidas:Scrum o eXtremmeProgramming(http://www.extremeprogramming.org/). 26
  28. 28. Las personas son el ingrediente principal. Personas que trabajan en equiposautoorganizados:• Participan en la creación de la oferta y en su estimación• Cada día se reúnen y deciden qué van a hacer el resto del día• Si terminan algo saben con qué van a seguir, no dependen de un jefe que les diga qué hacer y comoResultado: personas comprometidas que saben qué hacer y cómo en cada momento. 27
  29. 29. ¡Divide y vencerás! Dividimos el producto y el tiempo.• Dividimos el producto en pequeñas funcionalidades y hacemos que el cliente las ponga ordenadas por prioridades.• Fijamos periodo en el cual vamos a “crear” software (iteración). El equipo junto con el cliente detallan las funcionalidades más prioritarias a desarrollar en ese periodo de tiempo.• El equipo estima más fácilmente esas funcionalidades y adquiere un compromiso: al final de ese periodo de tiempo el cliente tendrá la funcionalidad a la que se ha comprometido el equipo• Obtenemos feedback del cliente, para saber si vamos por buen camino tras cada iteración y poder así rectificar nuestro rumbo (cambiamos de rumbo al misil) 28
  30. 30. Tras cada ciclo, en reuniones de retrospectiva, analizamos qué cosas han funcionadoy cuáles no. Qué problemas ha habido, y qué soluciones podemos tomar. Trabajamospara no dejar de mejorar, en ciclos cortos, que nos permiten aprender rápidamente sivamos por el camino correcto. Tratamos mejoras a nivel global del equipo, tantomejoras técnicas como de comunicación, personales, problemas de colaboración, etc.Todo aquello que nos permita mejorar nuestro producto software. 29
  31. 31. Creamos espacios de confianza, y la transparencia es fundamental. Se utiliza muchola información pública en forma de tablones, que representan los proyectos demanera explícita, permitiendo a cualquier persona conocer el estado de un proyectoo producto y el equipo. Esta transparencia es básica para lograr una buenacomunicación, y nos permite sentar las bases de la confianza entre todas las partesimplicadas. 30
  32. 32. http://www.flickr.com/photos/royskeane/413103429/ 31
  33. 33. 32
  34. 34. 33
  35. 35. ¿Cómo lo hacemos utilizando Scrum?• El equipo se reúne con el cliente para tener una visión general global: todos conocemos qué necesita el cliente.• El resultado es una pila de funcionalidades: Product Backlog. Es imposible capturar todos los requerimiento al comienzo del proyecto y sean cuales sean seguro que cambiarán: así que son especificaciones de funcionalidad a grandes rasgos, sin mucho detalle.• El equipo planifica una iteración o sprint. Para ello, se basa en las funcionalidades más prioritarias del Product Backlog que desgrana junto con el cliente, para llegar a un nivel de detalle máximo.• Como resultado de la planificación, el equipo tiene una pila de funcionalidades que se ha comprometido a tener lista para el final del sprint: Sprint Backlog.• El sprint dura entre 1 y 4 semanas. Cada día de ese sprint, el equipo se reúne 15: Daily Scrum. En esta reunión, cada miembro del equipo cuenta: qué ha hecho el día anterior, qué impedimentos se ha encontrado y qué va a hacer el resto del día. Esto favorece la comunicación entre los miembros del equipo, la colaboración y la posibilidad de detectar desvíos en lo planificado para el sprint y poder hablar con el cliente.• Al final del sprint, el resultado es que el equipo ha generado un incremento de software con las funcionalidades a que se había comprometido y se lo enseña al cliente en una demo. Así el cliente es capaz de ver lo que se está construyendo, 34
  36. 36. cómo se está haciendo y si es lo que el quiere realmente (feedback del cliente)• Al final del sprint, además el equipo se reune para ver qué impedimentos se han econtrado y qué tienen que cambiar para hacer mejor las cosas: Retrospectiva de sprint. Siempre se puede mejorar (mejora contínua), estas reuniones ayudan al equipo a identificar qué han hecho bien para potenciarlo y qué han hecho mal para poder poner remedio. 34
  37. 37. Existen tres roles definidos en Scrum• Producto Owner: El “propietario del producto” es el único representante de todos los interesados en el proyecto. Puede ser interno o externo. Define los objetivos, los prioriza y dirige los resultados del proyecto para maximizar el ROI.• Equipo: El equipo es multidisciplinar, autogestionado y comparte un mismo objetivo. Normalmente cada equipo es de 5 a 9 personas*, que trabajan en un espacio común para permitir la comunicación cara a cara y que se sincronizan diariamente. Realiza las estimaciones.• Scrum Master: Facilitador de la colaboración intraequipo y con el cliente (por ejemplo en las reuniones de Scrum) y quita impedimentos para que el equipo se mantenga enfocado. Es el responsable del proceso. Impide interferencias externas. 35
  38. 38. Scrum es un marco de gestión de equipos (y de proyectos), pero no debemos olvidarla parte técnica, fundamente en cualquier desarrollo de software.Extremme Programming es una metodología para el desarrollo de software completa,pero incluye las prácticas técnicas más básicas para garantizar que podemosdesarrollar software de calidad, y muchas veces tomamos estas técnicas de XP ygestionamos el proyecto con Scrum.Prácticas como Test Driven Development o Continous Integration han sobrepasado yaincluso la frontera de las metodologías ágiles, y se reconocen como básicas en laingeniería del software. 36
  39. 39. 37
  40. 40. Escribe tu propia historia. Nunca te desanimes en el camino a la meta, recuerda quetodo en la vida se trata de superar obstáculos. 38
  41. 41. Acércate a tu comunidad local de Agile-Spain, y ven a aprender con nosotroshttp://agile-spain.org/ En la zona norte nos juntamos en Durango (normalmente)una vez al mes para hablar de nuestras experiencias o intereses, somos Agile-Norte(síguenos en @agileNorte)Eventos recomendables:• AOS2012 (Agile Open Space 2012 ) – 23 de junio en Zaragoza - http://aos2012.wordpress.com/• Conferencia Agile-Spain (CAS2012) – sobre Octubre en CáceresLecturas interesantes:• Descargable y traducido por la comunidad, un libro muy ameno: http://www.proyectalis.com/wp-content/uploads/2008/02/scrum-y-xp-desde-las- trincheras.pdf• Un libro sobre TDD : http://www.dirigidoportests.com/el-libroUn grupo que está arrancando dedicado a la puesta en práctica de los principiosAgile/Lean con relación a la creación de nuevas empresas: Agile EntrepreneurshipEuskadi http://www.meetup.com/Agile-Entrepreneurs-Euskadi/ 39
  42. 42. 40
  43. 43. 41

×