@carlosble. Carlos Ble. Para CITIUS, Universidad de Santiago de Compostela 18 Febrero 2014



Documentos relacionados
Artesanía de So-ware y Desarrollo Dirigido por Pruebas

CENTRO DE TECNOLOGIA AVANZADA. Instalar Windows 7 desde cero paso a paso.

XP- EXTREME PROGRAMMING

Pruebas de unidad con JUnit

El podcast de PrestAyuda vende más y más rápido con Gert Mellak.

Evangelia CURSO PARA EL ULTIMO MOMENTO 3. LECCIÓN

Haz tu propio museo. Qué es un museo y para qué sirve

3 Errores fatales que cometen muchos autónomos

Transcripción entrevista Carlos. Entrevistadora: entonces tu lengua materna es náhuatl? Entrevistado: sí, náhuatl.

HACER UN SEGUIMIENTO Y PONER LAS HERRAMIENTAS EN ACCIÓN.

L204 DVD-ROM 1 Audio transcripts: Unidad 1

Cómo funciona el Mercadeo en Red - Cómo funciona el Mercadeo en Red

Guiones para La Llamada y El Contacto

alumnos y alumnas Queremos un mundo mejor? Hagámoslo! La violencia no resuelve los conflictos. Sólo crea conflictos nuevos.

Homilía del Padre Cipriano Sánchez, L.C. Misa del Espíritu Santo 5 de noviembre de 2015 Capilla Universitaria.

Curso Introducción a Community Manager Día 4

La Verdad Sobre Ser Un Coach y el Coaching"

Azul o Rosa? Fernanda González Viramontes

Entrevistadora: entonces el español lo aprendiste en la escuela y el ngigua en la casa

DIOS ES NUESTRO PADRE BUENO (A.3.1.1)

Informe de la Sesión Núm. 1 Visión de los. Estudiantes

[ TALLER DE RADIO-TEATRO PARA JÓVENES] Guión de radiofónico Voces Mesoamericanas Acción con Pueblos Migrantes A.C.

HOJA DE TRABAJO Típico español y típico alemán

Tema 3. Test Driven Development

Sistema Comprobado de Duplicación

Introducción a las Metodologías Ágiles. Nicolás Brailovsky March 7, 2009

EL SAUCE QUE NO QUERÍA LLORAR

En qué momento decidieron diseño industrial? Qué opinan, diseño industrial es una carrera cara?

LAS FRACCIONES DE CARLOS


Contenidos vocabulario gramática funciones comunicativas cultura y sociedad

Probablemente, el mejor test de personalidad que existe para conocerse!

Mejor Framework PythonOO + SOLID. Vivir sin Frameworks

Si quieres, te enseño mi pueblo!

En este caso presionamos ENTER para empezar nuestra instalación

PARA QUÉ TANTO ESCUCHAR Y HABLAR? : EL PARA QUÉ DE LA COMUNICACIÓN TERAPÉUTICA EN ENFERMERÍA Clara Valverde Equip Aquo 2007

Por la Inteligencia Emocional empieza todo...

AUTOCRÍTICA VS. PROSPERIDAD 1. EJERCICIO PARA DESCUBRIR, LOS PATRONES DE CREENCIAS QUE NOS CONDICIONAN

Contenidos gramática funciones comunicativas cultura y sociedad

Módulo 3 Medios de información

Juan Manuel González Gavira DNI J MOMENTOS DE RELAJACIÓN EN EL AULA

Para trabajar en EL PLAN GENIAL SOLO NECESITAMOS A 6 SOCIOS que quieran trabajar con nosotros toda la vida.

Mamá quiero un móvil nuevo!

Health Coaches. Recursos para. Como crear un programa de coaching

UNIVERSIDAD DEL ÉXITO WINALITE. Una nueva forma de aprender del Negocio!

Vamos a imaginar Ir al dentista

Es mejor que se relacione con otras niñas y niños sordos?

QUEREMOS CONOCER A JESÚS

RESUMEN. Colegio Antonio Machado Baeza (Jaén)

Universidad de destino: Universidad Santiago de Compostela Período de intercambio: 2do semestre 2012

COMO DESARROLLAR UNA CLASE DE ESCUELA BIBLICA. Preparado por: Milka Mendez Domingo 18 de noviembre de 2012

Ahorro Protección Inversión

Mujer Hombre. Bachillerato Formación Profesional Grado o licenciatura. , Código Postal: Sí No

LLAMADAS EFECTIVAS. Una real llamada de negocios, NO más llamadas misteriosas, nerviosas y engañosas

El Supermercado. Hoy tengo que ir yo solo al supermercado a comprar un kilo de. . Voy a pasármelo bien en el supermercado.

Filezilla: Qué es y para qué sirve un cliente FTP

William Shakespeare. Es el destino quien baraja las cartas pero nosotros somos los que jugamos

Descubra el plan de Dios: paz y vida

QUÉ SIGNIFICA CREER?

En cualquier caso, tampoco es demasiado importante el significado de la "B", si es que lo tiene, lo interesante realmente es el algoritmo.

CICLO DE CHARLAS TRABAJO EN EQUIPO

GRABACIÓN DE DATOS Apuntes de mecanografía

Ejercicios de futuro, condicional y presente de subjuntivo. 1.Termina el texto conjugando los verbos entre paréntesis o en el

El Producto. Qué es la Ingeniería de Software? Tecnología para construir software Un proceso Un conjunto de métodos Herramientas

Nueve Bloques de Un Modelo de Negocio Plan Presto!

Porcentajes. Cajón de Ciencias. Qué es un porcentaje?

Super-Trafico. Aprende a llevar toneladas de trafico cualificado a tu sitio web sin que te cueste un ojo de la cara.

KJV King James Bible Study Correspondence Course An Outreach of Highway Evangelistic Ministries 5311 Windridge lane ~ Lockhart, Florida ~ USA

RESPUESTA.- Vine a la Comisión de Hacienda, que siempre tengo el agrado de que me inviten aquí para tratar diferentes temas.

Creación y Optimización De Web

DIEZ HOMBRES SON SANADOS (A )

Cómo Contar Cuentos. Lección 2. Por Guillermo Kratzig

Y tú, cómo mides tus campañas? Las claves para aumentar tus conversiones.

Las tres lecciones que tú tienes que saber de los TACOS DE CANASTA.

Quiero mucho este trabajo, me llena a pesar de sus pros y contras.

Puedes Desarrollar Tu Inteligencia

Los 7 pasos para elegir la computadora adecuada para mis necesidades

CUESTIONARIO CMC.2 (ESO y Bachillerato).

Byclosure Lisboa, Portugal

EL CIEGO BARTIMEO ES SANADO (D )

Querido Dios, cuida por favor, de todos los que quiero. Protege a las personas que me quieren y me cuidan, y haz que siempre sean felices.

Quieres conocer como se pone en marcha el Programa ECG. Estimulación Cognitiva Global dirigido a pacientes en fase leve, moderada o severa?

NIVEL A. Cádiz, la mar de bonita TEXTO. w w w. e d u c a c i o n. g o b. e s / u k. Cádiz está rodeada de mar por todas partes, es casi una isla.

Título: Educar para fabricar ciudadanos emisión 49 (13/12/2009, 21:00 hs) temporada 14

Vender y comprar objetos

Textos: Dr. José Sánchez de Toledo, Dr. Jordi Giralt - Ilustraciones: Agustí Giralt

COMO INVITAR. Edificar es elevar el nivel de influencia de otra persona. No crees rechazo innecesario:

Actividad 1: Olivia y los osos polares

Blinkey. Va a la escuela

EL OTRO ES MI HERMANO

A2 PLATAFORMA. Dotar de autonomía al alumno para encontrar piso. Ver desarrollo de la actividad. 3 sesiones de hora y media

Cartas y correos electrónicos

Mientras, yo estoy aquí, en Alemania, escondido, hay muchas personas que continúan

En la medida de tu esfuerzo e investigación podrás encontrar otras opciones iguales o mejores. La decisión es tuya, a publicar tu página!

Audífonos e implantes cocleares

El don anónimo o la paradoja de Berta

LEARNIT LAS MUJERES EN LAS TIC

RESULTADOS DE LA ENCUESTA EFECTUADA A LOS USUARIOS DE LA PLATAFORMA DE ENOTURISMO CATADELVINO.com

Transcripción:

Carlos Ble Para CITIUS, Universidad de Santiago de Compostela 18 Febrero 2014

Hoy hablaremos de... El vinagre, en la dieta mediterránea

Era broma! Nos os vayáis!

TDD y otras prácticas de XP Profesionalidad Calidad del software Métodos de desarrollo

- Quién es Carlos Blé? - Yo he venido aquí a hablar de mi libro

Los usuarios se merecen algo mejor porque... No les entregamos lo que necesitan: No nos entendemos con el cliente. El software es defectuoso, provoca: Pérdida de confianza, de datos, de tiempo y de oportunidad frente a competidores. El código es de mala calidad: Difícil de entender y de mantener. En el mejor caso mueren de éxito: Nos cuesta horrores introducir cambios de forma competitiva.

Aún ves las cosas así? Cómo ven los usuarios al programador Cómo ve el programador a los usuarios

Y esto por qué pasa? Valores Valores Principios Principios Prácticas Prácticas No estamos bien entrenados Falta el corage para decir: NO No se dan las condiciones adecuadas El modelo industrial no funciona en la fabricación de software

Kent Beck, Ward Cunningham & amigos al rescate! Courage, Feedback, Respect, Simplicity, Communication

Veamos esto de la agilidad con un juego The Marshmallow Challenge Gracias a @ydarias por habermelo enseñado

Lecciones aprendidas del juego Prueba primero cobarde! Hay que equivocarse y aprender rápido... minimizar riesgos! Mejor entregar algo de valor que nada! Real como el software mismo Considera los medios que tienes! Considera el tiempo que tienes! No hagas trampa! te pillarán!

Wikispeed: Test-first aplicado a un coche We then bought an emissions test machine and started developing and iterating emissions systems in order to pass the test provided by the emissions test machine. In this way, we started with a failing test (100g of CO2 per 100km driven). Of course, the test was failing as we didn t have a car at all at that point. We acquired a test fixture to let us quickly and inexpensively (time and money, but most importantly for us low-frustration) check if the test was passing - http://wikispeed.org/2013/07/tdd-for-hardware/

TDD: Test Driven Development TDD TDD no no es es testing testing!!

Red: a valid email contains @ symbol public class A_valid_email { @Test public void contains_the_at_symbol(){ asserttrue(isvalidemail( test@test.com )); } private boolean isvalidemail(string email){ // autogenerated method stub return false; } }

Green: a valid email contains @ symbol public class A_valid_email { @Test public void contains_the_at_symbol(){ asserttrue(isvalidemail( test@test.com )); } private boolean isvalidemail(string email){ return true; } }

Refactor: extract class public class A_valid_email { @Test public void contains_the_at_symbol(){ asserttrue(isvalidemail( test@test.com )); } private boolean isvalidemail(string email){ return new EmailValidator().isValidEmail(email); } } ///////////////////////////////////////////// public class EmailValidator { public boolean isvalidemail(string email){ return true; } }

Red: an invalid email misses the @ symbol public class An_invalid_email { @Test public void misses_the_at_symbol(){ assertfalse(isvalidemail( test.com )); } private boolean isvalidemail(string email){ return new EmailValidator().isValidEmail(email); } } ///////////////////////////////////////////// public class EmailValidator { public boolean isvalidemail(string email){ return true; } }

Green: an invalid email misses the @ symbol public class An_invalid_email { @Test public void misses_the_at_symbol(){ assertfalse(isvalidemail( test.com )); } private boolean isvalidemail(string email){ return new EmailValidator().isValidEmail(email); } } ///////////////////////////////////////////// public class EmailValidator { public boolean isvalidemail(string email){ return email.contains( @ ); } }

Refactor: extract base test class public class EmailValidatorTests { EmailValidator validator; @Before public void setup(){ validator = new Validator(); } protected boolean isvalidemail(string email){ return validator.isvalidemail(email); } } ///////////////////////////////////////////// public class A_valid_email extends EmailValidatorTests { } public class An_invalid_email_extends EmailValidatorTests { }

TDD es un método de desarrollo profesional Evita la sobre-ingeniería Garantiza un mínimo de calidad reproducible Produce: Código minimalista, testeable, modular Completas baterías de tests Evita problemas de regresión Documenta el código de manera fiable

TDD fomenta los valores de XP Nos aporta feedback rápido Nos ganamos el respeto de los compañeros Nos permite ser valientes antes cambios Los tests comunican la intención del código Desarrollamos la implementación más simple

TDD sin código limpio?, mejor estáte quiet@ Es o i p lim ó c tu? o dig

Y la arquitectura? Es todo emergente? NO I18n / l10n Scalability Fault tolerance Security Deployability Traceability Responsiveness...

En la ULPGC ya llevan dos años enseñando TDD! Estudiantes de la Universidad de Las Palmas en el coding dojo de fin de curso - 2013

Los mejores resultados vienen, cuando se trabaja en pares: Pair Programming El cuello de botella de los proyectos NO es el teclado Entre dos, a menudo escribimos menos código... y eso es muy bueno! Dialogar y hablar de la solución antes de implementarla, permite encontrar mejores opciones.

Pair Programming: Lo que necesitas es amor Hace falta empatía para que tu compañer@ de lo mejor de sí mism@ Es duro, no lo practiques más de 4 o 5 horas al día Es bueno rotar, cambiar de pareja Poneos cómodos: conectad dos teclados a la misma computadora. Usad pantallas grandes o varias en espejo. Dios mio tengo miedo! Ya no quiero programar solo!

Cómo se aprende todo esto? Practicando! Simplemente practica y practica Lee buenos libros: Extreme Programming Kent Beck TDD by example Kent Beck Clean Code Robert Martin Refactoring Martin Fowler Test Driven Lasse Koskela Code Complete Steve McConnell Un buen curso acelera tu aprendizaje, mañana tenemos uno! (y la gente dice que es bueno)

Consejo: se siempre lo más profesional que sepas No hagas lo que sabes que está mal hecho Preocúpate por aprender qué está mal Escribe el código tal como te gustaría encontrarlo Cuando modifiques código, déjalo mejor de lo que lo encontraste Ponte en el lugar de tus clientes y pregúntate me contrataría a mi mismo o a mi equipo?

Videos vistos durante la sesion: Douglas Crockford Programming Style & Your Brain: http://www.youtube.com/watch?v=taaezhi9xyy Robert C. Martin Clean Coders Episode 1: http://www.cleancoders.com Password validator kata Carlos Ble para isqi.org No disponible en la red, sólo para los cursos de TDD

Moitas grazas!