y Artesanía del Software - ARCO...

58
1 1 Profesionalidad y Artesanía del Software [email protected]@david_vi11a

Transcript of y Artesanía del Software - ARCO...

Page 1: y Artesanía del Software - ARCO Researcharco.esi.uclm.es/~david.villa/puff/artesania-del-software.pdf · 4646 ¿Por qué fallan las metodologías tradicionales? • El proyecto trata

11

Profesionalidad y

Artesanía del Software

[email protected] – @david_vi11a

Page 2: y Artesanía del Software - ARCO Researcharco.esi.uclm.es/~david.villa/puff/artesania-del-software.pdf · 4646 ¿Por qué fallan las metodologías tradicionales? • El proyecto trata

22

Juguemos a «verdad o atrevimiento»

Page 3: y Artesanía del Software - ARCO Researcharco.esi.uclm.es/~david.villa/puff/artesania-del-software.pdf · 4646 ¿Por qué fallan las metodologías tradicionales? • El proyecto trata

33

«Cualquiera puede escribir código»

VERDAD ATREVIMIENTO

Page 4: y Artesanía del Software - ARCO Researcharco.esi.uclm.es/~david.villa/puff/artesania-del-software.pdf · 4646 ¿Por qué fallan las metodologías tradicionales? • El proyecto trata

44

VERDAD ATREVIMIENTO

«Cualquiera puede escribir código»

Page 5: y Artesanía del Software - ARCO Researcharco.esi.uclm.es/~david.villa/puff/artesania-del-software.pdf · 4646 ¿Por qué fallan las metodologías tradicionales? • El proyecto trata

55

«Cualquiera puede usar un bisturí»

ATREVIMIENTOVERDAD

Page 6: y Artesanía del Software - ARCO Researcharco.esi.uclm.es/~david.villa/puff/artesania-del-software.pdf · 4646 ¿Por qué fallan las metodologías tradicionales? • El proyecto trata

66

«Cualquiera puede usar un bisturí»

VERDAD ATREVIMIENTO

Page 7: y Artesanía del Software - ARCO Researcharco.esi.uclm.es/~david.villa/puff/artesania-del-software.pdf · 4646 ¿Por qué fallan las metodologías tradicionales? • El proyecto trata

77

«Cualquiera puede extirparun tumor cerebral»

VERDAD ATREVIMIENTO

Page 8: y Artesanía del Software - ARCO Researcharco.esi.uclm.es/~david.villa/puff/artesania-del-software.pdf · 4646 ¿Por qué fallan las metodologías tradicionales? • El proyecto trata

88

ATREVIMIENTOVERDAD

«Cualquiera puede extirparun tumor cerebral»

Page 9: y Artesanía del Software - ARCO Researcharco.esi.uclm.es/~david.villa/puff/artesania-del-software.pdf · 4646 ¿Por qué fallan las metodologías tradicionales? • El proyecto trata

99

«Cualquiera puedeprogramar

un sistema de vuelo para misiles de crucero»

VERDAD ATREVIMIENTO

Page 10: y Artesanía del Software - ARCO Researcharco.esi.uclm.es/~david.villa/puff/artesania-del-software.pdf · 4646 ¿Por qué fallan las metodologías tradicionales? • El proyecto trata

1010

«Cualquiera puedeprogramar

un sistema de vuelo para misiles de crucero»

VERDAD ATREVIMIENTO

Page 11: y Artesanía del Software - ARCO Researcharco.esi.uclm.es/~david.villa/puff/artesania-del-software.pdf · 4646 ¿Por qué fallan las metodologías tradicionales? • El proyecto trata

1111

«Cualquiera puedeprogramar

un driver de dispositivo»

VERDAD ATREVIMIENTO

Page 12: y Artesanía del Software - ARCO Researcharco.esi.uclm.es/~david.villa/puff/artesania-del-software.pdf · 4646 ¿Por qué fallan las metodologías tradicionales? • El proyecto trata

1212

«Cualquiera puedeprogramar

un ray-tracer»

VERDAD ATREVIMIENTO

Page 13: y Artesanía del Software - ARCO Researcharco.esi.uclm.es/~david.villa/puff/artesania-del-software.pdf · 4646 ¿Por qué fallan las metodologías tradicionales? • El proyecto trata

1313

VERDAD ATREVIMIENTO

«Cualquiera puedeprogramar

un codec de compresión de vídeo»

Page 14: y Artesanía del Software - ARCO Researcharco.esi.uclm.es/~david.villa/puff/artesania-del-software.pdf · 4646 ¿Por qué fallan las metodologías tradicionales? • El proyecto trata

1414

«Cualquiera puedeprogramar

un SO para móviles»

VERDAD ATREVIMIENTO

Page 15: y Artesanía del Software - ARCO Researcharco.esi.uclm.es/~david.villa/puff/artesania-del-software.pdf · 4646 ¿Por qué fallan las metodologías tradicionales? • El proyecto trata

1515

«Cualquiera puedeprogramar

un sistema de captura de movimiento»

VERDAD ATREVIMIENTO

Page 16: y Artesanía del Software - ARCO Researcharco.esi.uclm.es/~david.villa/puff/artesania-del-software.pdf · 4646 ¿Por qué fallan las metodologías tradicionales? • El proyecto trata

1616

«Cualquiera puedeprogramar

una base de datos distribuida»

VERDAD ATREVIMIENTO

Page 17: y Artesanía del Software - ARCO Researcharco.esi.uclm.es/~david.villa/puff/artesania-del-software.pdf · 4646 ¿Por qué fallan las metodologías tradicionales? • El proyecto trata

1717

«Cualquiera puedeprogramar

un videojuego multiplayer multiplataforma»

VERDAD ATREVIMIENTO

Page 18: y Artesanía del Software - ARCO Researcharco.esi.uclm.es/~david.villa/puff/artesania-del-software.pdf · 4646 ¿Por qué fallan las metodologías tradicionales? • El proyecto trata

1818

Vale, vale, ya lo pillo. Para programar «ciertas cosillas»

necesitamos ingenierosmuy cualificados.

Page 19: y Artesanía del Software - ARCO Researcharco.esi.uclm.es/~david.villa/puff/artesania-del-software.pdf · 4646 ¿Por qué fallan las metodologías tradicionales? • El proyecto trata

1919

Pero...¿En qué se parece un cirujano

a un ingeniero informático?

Page 20: y Artesanía del Software - ARCO Researcharco.esi.uclm.es/~david.villa/puff/artesania-del-software.pdf · 4646 ¿Por qué fallan las metodologías tradicionales? • El proyecto trata

2020

Ambos son «artesanos»

Pero...¿En qué se parece un cirujano

a un ingeniero informático?

Page 21: y Artesanía del Software - ARCO Researcharco.esi.uclm.es/~david.villa/puff/artesania-del-software.pdf · 4646 ¿Por qué fallan las metodologías tradicionales? • El proyecto trata

2121

¿Artesanos?

Page 22: y Artesanía del Software - ARCO Researcharco.esi.uclm.es/~david.villa/puff/artesania-del-software.pdf · 4646 ¿Por qué fallan las metodologías tradicionales? • El proyecto trata

2222

¿Artesanos?

Sí, artesanos

Page 23: y Artesanía del Software - ARCO Researcharco.esi.uclm.es/~david.villa/puff/artesania-del-software.pdf · 4646 ¿Por qué fallan las metodologías tradicionales? • El proyecto trata

2323

¿En qué se parecen el trabajodel cirujano y el del ingeniero?

● Deben conocer las técnicas y decidir cuál es la más adecuada en cada caso.

● Deben conocer las herramientas.● Deben tener mucha experiencia.● Cada operación es distinta a las demás.● Deben tomar decisiones sobre muchos pequeños

detalles que afectan decisivamente al resultado.● La satisfacción del cliente es lo más importante.● satisfacción != exigencias.

Page 24: y Artesanía del Software - ARCO Researcharco.esi.uclm.es/~david.villa/puff/artesania-del-software.pdf · 4646 ¿Por qué fallan las metodologías tradicionales? • El proyecto trata

2424

Y ¿qué tiene todo eso que ver con el arte?

Page 25: y Artesanía del Software - ARCO Researcharco.esi.uclm.es/~david.villa/puff/artesania-del-software.pdf · 4646 ¿Por qué fallan las metodologías tradicionales? • El proyecto trata

2525

Nada ¿por?

Y ¿qué tiene todo eso que ver con el arte?

Page 26: y Artesanía del Software - ARCO Researcharco.esi.uclm.es/~david.villa/puff/artesania-del-software.pdf · 4646 ¿Por qué fallan las metodologías tradicionales? • El proyecto trata

2626

Estoy confuso¿Qué es artesanía?

toda técnica creativa, para producir individualmente bienes y servicios.

Page 27: y Artesanía del Software - ARCO Researcharco.esi.uclm.es/~david.villa/puff/artesania-del-software.pdf · 4646 ¿Por qué fallan las metodologías tradicionales? • El proyecto trata

2727

En la factoría del Ferrari 599 GTB, cada motor es montado a mano por un ingeniero mecánico.

Es uno de los trabajos que requiere mayor cualificación y mejor pagados de la industria.

http://www.streetfire.net/video/ultimate-factories-ferrari_713772.htm

Page 28: y Artesanía del Software - ARCO Researcharco.esi.uclm.es/~david.villa/puff/artesania-del-software.pdf · 4646 ¿Por qué fallan las metodologías tradicionales? • El proyecto trata

2828

¿Y las empresas de softwaretambién saben esto?

Page 29: y Artesanía del Software - ARCO Researcharco.esi.uclm.es/~david.villa/puff/artesania-del-software.pdf · 4646 ¿Por qué fallan las metodologías tradicionales? • El proyecto trata

2929

Sí bueno, algunas, igual te suenan...

¿Y las empresas de softwaretambién saben esto?

Page 30: y Artesanía del Software - ARCO Researcharco.esi.uclm.es/~david.villa/puff/artesania-del-software.pdf · 4646 ¿Por qué fallan las metodologías tradicionales? • El proyecto trata

3030

Google:

http://www.google.ie/intl/en/jobs/dublin/engops/engmng/engineering-manager-director-google-com-eu-headquarters/index.html

¿Y las empresas de softwaretambién saben esto?

Page 31: y Artesanía del Software - ARCO Researcharco.esi.uclm.es/~david.villa/puff/artesania-del-software.pdf · 4646 ¿Por qué fallan las metodologías tradicionales? • El proyecto trata

3131

Google:

http://www.google.ie/intl/en/jobs/dublin/engops/engmng/software-development-lead-eu-headquarters/index.html

¿Y las empresas de softwaretambién saben esto?

Page 32: y Artesanía del Software - ARCO Researcharco.esi.uclm.es/~david.villa/puff/artesania-del-software.pdf · 4646 ¿Por qué fallan las metodologías tradicionales? • El proyecto trata

3232

Google:

http://www.google.ie/intl/en/jobs/dublin/engops/engmng/software-development-manager-eu-headquarters/index.html

¿Y las empresas de softwaretambién saben esto?

Page 33: y Artesanía del Software - ARCO Researcharco.esi.uclm.es/~david.villa/puff/artesania-del-software.pdf · 4646 ¿Por qué fallan las metodologías tradicionales? • El proyecto trata

3333

Facebook:

http://www.facebook.com/careers/department.php?dept=engineering&req=a2KA0000000LpMKMA0

¿Y las empresas de softwaretambién saben esto?

Page 34: y Artesanía del Software - ARCO Researcharco.esi.uclm.es/~david.villa/puff/artesania-del-software.pdf · 4646 ¿Por qué fallan las metodologías tradicionales? • El proyecto trata

3434

Facebook:

http://www.facebook.com/careers/department.php?dept=engineering&req=a2KA0000000LjWfMAK

¿Y las empresas de softwaretambién saben esto?

Page 35: y Artesanía del Software - ARCO Researcharco.esi.uclm.es/~david.villa/puff/artesania-del-software.pdf · 4646 ¿Por qué fallan las metodologías tradicionales? • El proyecto trata

3535

● https://careers.microsoft.com/search.aspx

● https://twitter.com/jobs/engineering

● http://www.atlassian.com/company/careers/jobs

● http://www.tuenti.com/jobs/department/?department_id=1

● http://codicesoftware-es.blogspot.com/2011/09/test-hacker-plastic-scm.html

¿Y las empresas de softwaretambién saben esto?

Page 36: y Artesanía del Software - ARCO Researcharco.esi.uclm.es/~david.villa/puff/artesania-del-software.pdf · 4646 ¿Por qué fallan las metodologías tradicionales? • El proyecto trata

3636

Un ingeniero altamente cualificado que tiene:● Los conocimientos● La práctica

¿Qué es unartesano del software?(software craftmanship)

Page 37: y Artesanía del Software - ARCO Researcharco.esi.uclm.es/~david.villa/puff/artesania-del-software.pdf · 4646 ¿Por qué fallan las metodologías tradicionales? • El proyecto trata

3737

Un ingeniero altamente cualificado que tiene:● Los conocimientos: principios, patrones,

buenas prácticas, técnicas y heurísticas.● La práctica

¿Qué es unartesano del software?(software craftmanship)

Page 38: y Artesanía del Software - ARCO Researcharco.esi.uclm.es/~david.villa/puff/artesania-del-software.pdf · 4646 ¿Por qué fallan las metodologías tradicionales? • El proyecto trata

3838

Un ingeniero altamente cualificado que tiene:● Los conocimientos: principios, patrones,

buenas prácticas, técnicas y heurísticas.● La práctica: ha cometido muchos errores, y

ha aprendido de ellos.

¿Qué es unartesano del software?(software craftmanship)

Page 39: y Artesanía del Software - ARCO Researcharco.esi.uclm.es/~david.villa/puff/artesania-del-software.pdf · 4646 ¿Por qué fallan las metodologías tradicionales? • El proyecto trata

3939

El artesano de softwareescribe

código limpio● Fácil de entender, evidente.● Expresa la intención del autor.● Hace una única cosa.● No hay duplicación.● Utiliza terminología del dominio. Un DSL a la

medida del problema.● Está probado, mediante pruebas automáticas.

Page 40: y Artesanía del Software - ARCO Researcharco.esi.uclm.es/~david.villa/puff/artesania-del-software.pdf · 4646 ¿Por qué fallan las metodologías tradicionales? • El proyecto trata

4040

El artesano de softwareescribe

código limpio● El código se escribe para las personas. Al

compilador le vale todo.● No es código perfecto. Eso no existe.

Page 41: y Artesanía del Software - ARCO Researcharco.esi.uclm.es/~david.villa/puff/artesania-del-software.pdf · 4646 ¿Por qué fallan las metodologías tradicionales? • El proyecto trata

4141

¿Por qué «molestarse»en escribir código limpio?

Page 42: y Artesanía del Software - ARCO Researcharco.esi.uclm.es/~david.villa/puff/artesania-del-software.pdf · 4646 ¿Por qué fallan las metodologías tradicionales? • El proyecto trata

4242

Por que el software es un negocio y el código sucio lleva a la quiebra.

¿Por qué «molestarse»en escribir código limpio?

Page 43: y Artesanía del Software - ARCO Researcharco.esi.uclm.es/~david.villa/puff/artesania-del-software.pdf · 4646 ¿Por qué fallan las metodologías tradicionales? • El proyecto trata

4343

tiempo

prod

uct iv

idad

La catastróficas consecuencias de la

«deuda técnica»

Page 44: y Artesanía del Software - ARCO Researcharco.esi.uclm.es/~david.villa/puff/artesania-del-software.pdf · 4646 ¿Por qué fallan las metodologías tradicionales? • El proyecto trata

4444

¿Por qué escribimos código sucio?

● Programadores poco cualificados.● «No hay tiempo para hacerlo bien».● Quick & Dirty y el «tente mientras cobro».● Falta de profesionalidad.

Page 45: y Artesanía del Software - ARCO Researcharco.esi.uclm.es/~david.villa/puff/artesania-del-software.pdf · 4646 ¿Por qué fallan las metodologías tradicionales? • El proyecto trata

4545

… y el efecto «ventana rota»

Page 46: y Artesanía del Software - ARCO Researcharco.esi.uclm.es/~david.villa/puff/artesania-del-software.pdf · 4646 ¿Por qué fallan las metodologías tradicionales? • El proyecto trata

4646

¿Por qué fallan las metodologías tradicionales?

• El proyecto trata de cumplir la especificación inicial para entregar un producto terminado.

• Cada día el objetivo del equipo y el del cliente están más alejados.

• El mantenimiento repara errores y añade funcionalidad.o Puede implicar hasta un 90% del coste y esfuerzo total.o ¿Qué tiene de «terminado» si está casi todo por hacer?

• «desarrollo» y «mantenimiento» son términos mercantiles (conceptos que cobrar), no de ingeniería.

Page 47: y Artesanía del Software - ARCO Researcharco.esi.uclm.es/~david.villa/puff/artesania-del-software.pdf · 4646 ¿Por qué fallan las metodologías tradicionales? • El proyecto trata

4747

Probemos otra cosa:Desarrollo ágil

• Hagamos al cliente partícipe del proyecto.• Si el cliente cambia los requisitos, no es una

«contingencia»:● Eso es lo normal, lo raro es que no ocurra.● Prepárate para el cambio.

• No importa si está o no acabado.• El objetivo es entregar valor al cliente, lo antes

posible y lo más a menudo posible.• La aplicación seguirá cambiando y adaptándose

mientras se siga usando.

Page 48: y Artesanía del Software - ARCO Researcharco.esi.uclm.es/~david.villa/puff/artesania-del-software.pdf · 4646 ¿Por qué fallan las metodologías tradicionales? • El proyecto trata

4848

Manifiesto ágilEstamos descubriendo mejores formas de desarrollar software

tanto por nuestra propia experiencia como ayudando a terceros. A través de este trabajo hemos aprendido a valorar:

• Individuos e interacciones sobre procesos y herramientas• Software funcionando sobre documentación extensiva• Colaboración con el cliente sobre negociación contractual• Respuesta ante el cambio sobre seguir un plan

Esto es, aunque valoramos los elementos de la derecha, valoramos más los de la izquierda.

Page 49: y Artesanía del Software - ARCO Researcharco.esi.uclm.es/~david.villa/puff/artesania-del-software.pdf · 4646 ¿Por qué fallan las metodologías tradicionales? • El proyecto trata

4949

Manifiesto ágil

Kent BeckMike Beedle

Arie van BennekumAlistair Cockburn

Ward CunninghamMartin Fowler

James GrenningJim HighsmithAndrew HuntRon Jeffries

Jon KernBrian Marick

Robert C. MartinSteve Mellor

Ken SchwaberJeff SutherlandDave ThomasKen SchwaberJeff SutherlandDave Thomas

Page 50: y Artesanía del Software - ARCO Researcharco.esi.uclm.es/~david.villa/puff/artesania-del-software.pdf · 4646 ¿Por qué fallan las metodologías tradicionales? • El proyecto trata

5050

• Es una actitud más que un aptitud.

• Ser honesto y crítico con el trabajo propio y ajeno.

• Airear los trapos sucios (y lavarlos).

• Hacer los cosas lo mejor que podamos.

• Mejorarlas cuando aprendamos a hacerlo mejor.

Agilismo

Page 51: y Artesanía del Software - ARCO Researcharco.esi.uclm.es/~david.villa/puff/artesania-del-software.pdf · 4646 ¿Por qué fallan las metodologías tradicionales? • El proyecto trata

5151

No hay magia:

• Adquiere conocimientos● lee, escucha, aprende.

• Practica● practica, practica, practica.

¿Qué hago para ser ágil?

Page 52: y Artesanía del Software - ARCO Researcharco.esi.uclm.es/~david.villa/puff/artesania-del-software.pdf · 4646 ¿Por qué fallan las metodologías tradicionales? • El proyecto trata

5252

Hay técnicas muy útiles:

• Las pruebas primero

• Desarrollo dirigido por pruebas (TDD)

• Pair programming

• Scrum

• Kanban

¿Qué hago para ser ágil?

Page 53: y Artesanía del Software - ARCO Researcharco.esi.uclm.es/~david.villa/puff/artesania-del-software.pdf · 4646 ¿Por qué fallan las metodologías tradicionales? • El proyecto trata

5353

Pero ¿qué leo?

Page 54: y Artesanía del Software - ARCO Researcharco.esi.uclm.es/~david.villa/puff/artesania-del-software.pdf · 4646 ¿Por qué fallan las metodologías tradicionales? • El proyecto trata

5454

Pero ¿qué leo?

Page 55: y Artesanía del Software - ARCO Researcharco.esi.uclm.es/~david.villa/puff/artesania-del-software.pdf · 4646 ¿Por qué fallan las metodologías tradicionales? • El proyecto trata

5555

Algo en castellano, por favor :-/

Page 56: y Artesanía del Software - ARCO Researcharco.esi.uclm.es/~david.villa/puff/artesania-del-software.pdf · 4646 ¿Por qué fallan las metodologías tradicionales? • El proyecto trata

5656

Y ¿con qué práctico?

• http://contest.tuenti.net/

• http://12meses12katas.com/

• http://holatdd.com/

• https://sites.google.com/site/agileciudadreal

Page 57: y Artesanía del Software - ARCO Researcharco.esi.uclm.es/~david.villa/puff/artesania-del-software.pdf · 4646 ¿Por qué fallan las metodologías tradicionales? • El proyecto trata

5757

¿Preguntas?

Page 58: y Artesanía del Software - ARCO Researcharco.esi.uclm.es/~david.villa/puff/artesania-del-software.pdf · 4646 ¿Por qué fallan las metodologías tradicionales? • El proyecto trata

5858

http://creativecommons.org/licenses/by/3.0/

https://bitbucket.org/DavidVilla/charla.artesania-del-software

Por favor, no imprimas esta presentación.