SlideShare una empresa de Scribd logo
¿Te sientes orgulloso del
 código que escribes?

            Israel Antezana R.
    www.israelantezana.wordpress.com
        Twitter: @israelantezana
Definición
• orgullo s. m.
 1 Exceso de valoración propia por el que
 uno se cree superior a los demás.
 soberbia.

 2 Sentimiento de satisfacción por un
 comportamiento bueno o por una obra
 bien hecha
                  (http://es.thefreedictionary.com/orgullo)
¿Te sientes orgulloso del código
         que escribes?
¿Qué buscamos del código que
           escribimos?

• Que produzca valor para el usuario

• Que sea robusto

• Que sea eficiente

• Que pueda evolucionar
Todo en el software cambia!
•   Requerimientos
•   Diseño
•   Contexto (negocio)
•   Tecnología
•   …

• El problema no es el cambio, sino nuestra
  preparación para enfrentarlo
¿Queremos que nuestro software
          sobreviva?

• => Debe poder responder al cambio!
Código limpio que funciona

• Un pilar fundamental de la agilidad
Código limpio que funciona
• ¡Es parte de nuestra responsabilidad y
  ética profesional!
• Refleja nuestro compromiso con nuestra
  profesión
Nuestro código de ética
Extreme Programming
• Basada en un conjunto de:
  – Valores -> Principios -> Prácticas
Prácticas de XP
•   El juego de la planificación
•   Entregas pequeñas
•   Programación dirigida por pruebas
•   Diseño simple
•   Refactorización
•   Programación en pares
•   Integración continua
•   Propiedad colectiva
•   Estándares de programación
•   Trabajo energizado
•   Cliente en sitio
TDD


Escribir una prueba
                                Hacer que la prueba pase
      que falle



                       < 5 min




                      Refactorizar
TDD
• Somos usuarios del código, antes de
  escribirlo
• Expresamos el qué antes del cómo
  – Expresamos la intención
• Las pruebas están bien focalizadas
  – Acoplamiento / cohesión
• Escencialmente una práctica de diseño
Refactorización
• Ejemplo 1:
  If (date.before(Summer_Start)||date.after(Summer_End)){
      charge = quantity * winterRate + winterServiceCharge;
  else
     charge = quantity * summerRate;
  }

• Ejemplo 2:
  If (isSummer(date)) {
         charge = summerCharge(quantity);
   else
         charge = winterCharge(quantity);
   }
Refactorización
Diseño Simple
Programación por pares
Integración Continua
Las prácticas se complementan




         SINERGIA
Y claro, muchas más prácticas…
•   Patrones de diseño
•   Patrones Arquitectónicos
•   Principios de diseño OO – SOLID, DRY
•   Code Smells
•   …
Estas prácticas técnicas no se
         aprenden en 1 día

• La agilidad asume el craftsmanship
http://manifesto.softwarecraftsmanship.org/
Dos niveles de aprendizaje
Teoría….
Y práctica
Niveles para el desarrollo de
           Competencias
               Competente




Inconciente                   Conciente




               Incompetente
Nuestro trabajo es traducir
   historias de usuarios en código
• No Woman No Cry – Bob Marley:
              4.times{
                 !woman == !cry
               }

• Yellow Submarine – The Beatles:
      Submarine yellowSubmarine = new Submarine(Color.Yellow)
      for (Person person : allPersons) {
           person.lives(yellowSubmarine)
      }

                                          twitter: #songsincode
¡Escribamos código del cual
podamos sentirnos orgullosos!!
Info de Contacto

           Israel Antezana Rojas
• Blog: www.israelantezana.wordpress.com
• Twitter: @israelantezana
• Email: israelantezana@gmail.com

Más contenido relacionado

La actualidad más candente

Seminario MetodologíAs áGiles Y Xp, Tema 3 Extreme Programming
Seminario MetodologíAs áGiles Y Xp, Tema 3   Extreme ProgrammingSeminario MetodologíAs áGiles Y Xp, Tema 3   Extreme Programming
Seminario MetodologíAs áGiles Y Xp, Tema 3 Extreme Programmingguest123148
 
Td dvs bdd
Td dvs bddTd dvs bdd
Td dvs bddlsajrf
 
Behavior Driven Development (BDD)
Behavior Driven Development (BDD) Behavior Driven Development (BDD)
Behavior Driven Development (BDD)
Scio Consulting
 
Valores y prácticas XP
Valores y prácticas XPValores y prácticas XP
Valores y prácticas XP
Domingo Gallardo
 
Refactor y deuda técnica
Refactor y deuda técnicaRefactor y deuda técnica
Refactor y deuda técnica
Joan Sebastián Ramírez Pérez
 
Argentesting 2017 - The evolving role of QA
Argentesting 2017 - The evolving role of QAArgentesting 2017 - The evolving role of QA
Argentesting 2017 - The evolving role of QA
Argentesting
 
Metodos agiles 4
Metodos agiles 4Metodos agiles 4
Metodos agiles 4
Diego Hernández Maya
 
Metodologías Ágiles - Scrum y XP
Metodologías Ágiles - Scrum y XPMetodologías Ágiles - Scrum y XP
Metodologías Ágiles - Scrum y XP
Jose I. Honrado
 
Estrategias ágiles para incrementar calidad al construir y probar software
Estrategias ágiles para incrementar calidad al construir y probar softwareEstrategias ágiles para incrementar calidad al construir y probar software
Estrategias ágiles para incrementar calidad al construir y probar software
Domingo Suarez Torres
 
Introducción Ágil a eXtreme Programming
Introducción Ágil a eXtreme ProgrammingIntroducción Ágil a eXtreme Programming
Introducción Ágil a eXtreme Programming
ChileAgil
 
Tw ¿Por qué elegir ágil?
Tw   ¿Por qué elegir ágil? Tw   ¿Por qué elegir ágil?
Tw ¿Por qué elegir ágil?
Agile Express Ecuador / Thoughtworks
 
Calidad de software
Calidad de softwareCalidad de software
Calidad de software
Software Guru
 
Psp (personal software process)
Psp (personal software process)Psp (personal software process)
Psp (personal software process)
Luis Angel Robles Aguilar
 
Extreme programming
Extreme programmingExtreme programming
Extreme programming
Jonatán Estrada
 
Software Debt: Qué Es y Cómo Gestionarlo Holísticamente
Software Debt: Qué Es y Cómo Gestionarlo HolísticamenteSoftware Debt: Qué Es y Cómo Gestionarlo Holísticamente
Software Debt: Qué Es y Cómo Gestionarlo Holísticamente
Angel Nuñez
 
Xtreme Programming
Xtreme ProgrammingXtreme Programming
Xtreme Programming
NoretSarted
 

La actualidad más candente (20)

Seminario MetodologíAs áGiles Y Xp, Tema 3 Extreme Programming
Seminario MetodologíAs áGiles Y Xp, Tema 3   Extreme ProgrammingSeminario MetodologíAs áGiles Y Xp, Tema 3   Extreme Programming
Seminario MetodologíAs áGiles Y Xp, Tema 3 Extreme Programming
 
BDD para la mejora de la calidad software
BDD para la mejora de la calidad softwareBDD para la mejora de la calidad software
BDD para la mejora de la calidad software
 
Td dvs bdd
Td dvs bddTd dvs bdd
Td dvs bdd
 
Behavior Driven Development (BDD)
Behavior Driven Development (BDD) Behavior Driven Development (BDD)
Behavior Driven Development (BDD)
 
TDD
TDDTDD
TDD
 
Valores y prácticas XP
Valores y prácticas XPValores y prácticas XP
Valores y prácticas XP
 
Refactor y deuda técnica
Refactor y deuda técnicaRefactor y deuda técnica
Refactor y deuda técnica
 
Argentesting 2017 - The evolving role of QA
Argentesting 2017 - The evolving role of QAArgentesting 2017 - The evolving role of QA
Argentesting 2017 - The evolving role of QA
 
Metodos agiles 4
Metodos agiles 4Metodos agiles 4
Metodos agiles 4
 
Metodologías Ágiles - Scrum y XP
Metodologías Ágiles - Scrum y XPMetodologías Ágiles - Scrum y XP
Metodologías Ágiles - Scrum y XP
 
Estrategias ágiles para incrementar calidad al construir y probar software
Estrategias ágiles para incrementar calidad al construir y probar softwareEstrategias ágiles para incrementar calidad al construir y probar software
Estrategias ágiles para incrementar calidad al construir y probar software
 
Introducción Ágil a eXtreme Programming
Introducción Ágil a eXtreme ProgrammingIntroducción Ágil a eXtreme Programming
Introducción Ágil a eXtreme Programming
 
Tw ¿Por qué elegir ágil?
Tw   ¿Por qué elegir ágil? Tw   ¿Por qué elegir ágil?
Tw ¿Por qué elegir ágil?
 
Calidad de software
Calidad de softwareCalidad de software
Calidad de software
 
Psp (personal software process)
Psp (personal software process)Psp (personal software process)
Psp (personal software process)
 
Ciclo devida
Ciclo devidaCiclo devida
Ciclo devida
 
Extreme programming
Extreme programmingExtreme programming
Extreme programming
 
Metodología scrum
Metodología scrumMetodología scrum
Metodología scrum
 
Software Debt: Qué Es y Cómo Gestionarlo Holísticamente
Software Debt: Qué Es y Cómo Gestionarlo HolísticamenteSoftware Debt: Qué Es y Cómo Gestionarlo Holísticamente
Software Debt: Qué Es y Cómo Gestionarlo Holísticamente
 
Xtreme Programming
Xtreme ProgrammingXtreme Programming
Xtreme Programming
 

Destacado

competencia comunicativa
competencia comunicativacompetencia comunicativa
competencia comunicativa
Emerson Quejada
 
Competencia Comunicativa
Competencia ComunicativaCompetencia Comunicativa
Competencia Comunicativa
Mremeblu
 
LA COMPETENCIA COMUNICATIVA
LA COMPETENCIA COMUNICATIVALA COMPETENCIA COMUNICATIVA
LA COMPETENCIA COMUNICATIVALilia Calderon
 
Competencia comunicativa
Competencia comunicativaCompetencia comunicativa
Competencia comunicativa
Eliana Torres
 
Resumen Competencias Comunicativas
Resumen Competencias ComunicativasResumen Competencias Comunicativas
Resumen Competencias ComunicativasGsolar
 
Competencia comunicativa
Competencia comunicativaCompetencia comunicativa
Competencia comunicativa
julizaporta
 
COMPETENCIAS BASICAS Y COMPETENCIAS COMUNICATIVAS
COMPETENCIAS BASICAS Y COMPETENCIAS COMUNICATIVASCOMPETENCIAS BASICAS Y COMPETENCIAS COMUNICATIVAS
COMPETENCIAS BASICAS Y COMPETENCIAS COMUNICATIVAS
guest448765
 
Teoría sobre el lenguaje de Chomsky
Teoría sobre el lenguaje de ChomskyTeoría sobre el lenguaje de Chomsky
Teoría sobre el lenguaje de Chomsky
educadorasjverne
 
Las Competencias Comunicativas
Las Competencias ComunicativasLas Competencias Comunicativas
Las Competencias Comunicativasguest35ce2f6
 

Destacado (11)

Chomsky y las competencias
Chomsky y las competenciasChomsky y las competencias
Chomsky y las competencias
 
competencia comunicativa
competencia comunicativacompetencia comunicativa
competencia comunicativa
 
Competencia Comunicativa
Competencia ComunicativaCompetencia Comunicativa
Competencia Comunicativa
 
LA COMPETENCIA COMUNICATIVA
LA COMPETENCIA COMUNICATIVALA COMPETENCIA COMUNICATIVA
LA COMPETENCIA COMUNICATIVA
 
Competencia comunicativa
Competencia comunicativaCompetencia comunicativa
Competencia comunicativa
 
Chomsky y su teoria
Chomsky  y su teoriaChomsky  y su teoria
Chomsky y su teoria
 
Resumen Competencias Comunicativas
Resumen Competencias ComunicativasResumen Competencias Comunicativas
Resumen Competencias Comunicativas
 
Competencia comunicativa
Competencia comunicativaCompetencia comunicativa
Competencia comunicativa
 
COMPETENCIAS BASICAS Y COMPETENCIAS COMUNICATIVAS
COMPETENCIAS BASICAS Y COMPETENCIAS COMUNICATIVASCOMPETENCIAS BASICAS Y COMPETENCIAS COMUNICATIVAS
COMPETENCIAS BASICAS Y COMPETENCIAS COMUNICATIVAS
 
Teoría sobre el lenguaje de Chomsky
Teoría sobre el lenguaje de ChomskyTeoría sobre el lenguaje de Chomsky
Teoría sobre el lenguaje de Chomsky
 
Las Competencias Comunicativas
Las Competencias ComunicativasLas Competencias Comunicativas
Las Competencias Comunicativas
 

Similar a ¿Te Sientes Orgulloso Del CóDigo Que Escribes?

Trabajando con código heredado y ser feliz
Trabajando con código heredado y ser felizTrabajando con código heredado y ser feliz
Trabajando con código heredado y ser feliz
Diego Caballero
 
Scrum y craftsmanship
Scrum y craftsmanshipScrum y craftsmanship
Scrum y craftsmanship
Kleer Agile Coaching & Training
 
Artesanía de software y desarrollo dirigido por pruebas (tdd)
Artesanía de software y desarrollo dirigido por pruebas (tdd)Artesanía de software y desarrollo dirigido por pruebas (tdd)
Artesanía de software y desarrollo dirigido por pruebas (tdd)
Software Guru
 
Módulo 4. Desarrollador ágil
Módulo 4. Desarrollador ágilMódulo 4. Desarrollador ágil
Módulo 4. Desarrollador ágil
Johnny Ordóñez
 
Bddtddatdd
BddtddatddBddtddatdd
Artesania de Software y TDD
Artesania de Software y TDDArtesania de Software y TDD
Artesania de Software y TDD
Alfredo Chavez
 
Agile practices
Agile practicesAgile practices
Agile practices
Sebastian Martinez
 
Un dia en la vida de un Software Engineer
Un dia en la vida de un Software EngineerUn dia en la vida de un Software Engineer
Un dia en la vida de un Software Engineer
Sergio Castillo Yrizales
 
Cómo aplicar TDD. Almería 13/05/2014
Cómo aplicar TDD. Almería 13/05/2014Cómo aplicar TDD. Almería 13/05/2014
Cómo aplicar TDD. Almería 13/05/2014
Javier_J
 
Day01
Day01Day01
Day01
peterpunk
 
Esto es ingeniería inversa
Esto es ingeniería inversaEsto es ingeniería inversa
Esto es ingeniería inversa
Katerinne Mosquera
 
Betabeers Barcelona - Buenas prácticas
Betabeers Barcelona - Buenas prácticasBetabeers Barcelona - Buenas prácticas
Betabeers Barcelona - Buenas prácticas
Ricard Clau
 
Coding dojo - Kata The Cube
Coding dojo - Kata The CubeCoding dojo - Kata The Cube
Coding dojo - Kata The Cube
Oriol del Barrio
 
Coding dojo
Coding dojoCoding dojo
Coding dojo
Oriol del Barrio
 
Artesania de Software y TDD
Artesania de Software y TDDArtesania de Software y TDD
Artesania de Software y TDDAlfredo Chavez
 
Yoseki Coding Dojo - Agosto 2012 (Lima)
Yoseki Coding Dojo - Agosto 2012 (Lima)Yoseki Coding Dojo - Agosto 2012 (Lima)
Yoseki Coding Dojo - Agosto 2012 (Lima)
Hiroshi Hiromoto
 
Software Craftsmanship
Software CraftsmanshipSoftware Craftsmanship
Software Craftsmanship
Edson Chávez Montaño
 
Defensive code
Defensive codeDefensive code
Defensive code
Germán Küber
 
Defensive code C#
Defensive code C#Defensive code C#
Defensive code C#
Germán Küber
 
Buenas practicas desarrollando software
Buenas practicas desarrollando softwareBuenas practicas desarrollando software
Buenas practicas desarrollando software
Gabriel Moral
 

Similar a ¿Te Sientes Orgulloso Del CóDigo Que Escribes? (20)

Trabajando con código heredado y ser feliz
Trabajando con código heredado y ser felizTrabajando con código heredado y ser feliz
Trabajando con código heredado y ser feliz
 
Scrum y craftsmanship
Scrum y craftsmanshipScrum y craftsmanship
Scrum y craftsmanship
 
Artesanía de software y desarrollo dirigido por pruebas (tdd)
Artesanía de software y desarrollo dirigido por pruebas (tdd)Artesanía de software y desarrollo dirigido por pruebas (tdd)
Artesanía de software y desarrollo dirigido por pruebas (tdd)
 
Módulo 4. Desarrollador ágil
Módulo 4. Desarrollador ágilMódulo 4. Desarrollador ágil
Módulo 4. Desarrollador ágil
 
Bddtddatdd
BddtddatddBddtddatdd
Bddtddatdd
 
Artesania de Software y TDD
Artesania de Software y TDDArtesania de Software y TDD
Artesania de Software y TDD
 
Agile practices
Agile practicesAgile practices
Agile practices
 
Un dia en la vida de un Software Engineer
Un dia en la vida de un Software EngineerUn dia en la vida de un Software Engineer
Un dia en la vida de un Software Engineer
 
Cómo aplicar TDD. Almería 13/05/2014
Cómo aplicar TDD. Almería 13/05/2014Cómo aplicar TDD. Almería 13/05/2014
Cómo aplicar TDD. Almería 13/05/2014
 
Day01
Day01Day01
Day01
 
Esto es ingeniería inversa
Esto es ingeniería inversaEsto es ingeniería inversa
Esto es ingeniería inversa
 
Betabeers Barcelona - Buenas prácticas
Betabeers Barcelona - Buenas prácticasBetabeers Barcelona - Buenas prácticas
Betabeers Barcelona - Buenas prácticas
 
Coding dojo - Kata The Cube
Coding dojo - Kata The CubeCoding dojo - Kata The Cube
Coding dojo - Kata The Cube
 
Coding dojo
Coding dojoCoding dojo
Coding dojo
 
Artesania de Software y TDD
Artesania de Software y TDDArtesania de Software y TDD
Artesania de Software y TDD
 
Yoseki Coding Dojo - Agosto 2012 (Lima)
Yoseki Coding Dojo - Agosto 2012 (Lima)Yoseki Coding Dojo - Agosto 2012 (Lima)
Yoseki Coding Dojo - Agosto 2012 (Lima)
 
Software Craftsmanship
Software CraftsmanshipSoftware Craftsmanship
Software Craftsmanship
 
Defensive code
Defensive codeDefensive code
Defensive code
 
Defensive code C#
Defensive code C#Defensive code C#
Defensive code C#
 
Buenas practicas desarrollando software
Buenas practicas desarrollando softwareBuenas practicas desarrollando software
Buenas practicas desarrollando software
 

Último

Ventajas y desventajas de la desinfección con cloro
Ventajas y desventajas de la desinfección con cloroVentajas y desventajas de la desinfección con cloro
Ventajas y desventajas de la desinfección con cloro
durangense277
 
modelosdeteclados-230114024527-aa2c9553.pptx
modelosdeteclados-230114024527-aa2c9553.pptxmodelosdeteclados-230114024527-aa2c9553.pptx
modelosdeteclados-230114024527-aa2c9553.pptx
evelinglilibethpeafi
 
(PROYECTO) Límites entre el Arte, los Medios de Comunicación y la Informática
(PROYECTO) Límites entre el Arte, los Medios de Comunicación y la Informática(PROYECTO) Límites entre el Arte, los Medios de Comunicación y la Informática
(PROYECTO) Límites entre el Arte, los Medios de Comunicación y la Informática
vazquezgarciajesusma
 
TECLADO ERGONÓMICO Y PANTALLAS TACTILES - GESTIÓN INTEGRAL EDUCATIVA
TECLADO ERGONÓMICO Y PANTALLAS TACTILES - GESTIÓN INTEGRAL EDUCATIVATECLADO ERGONÓMICO Y PANTALLAS TACTILES - GESTIÓN INTEGRAL EDUCATIVA
TECLADO ERGONÓMICO Y PANTALLAS TACTILES - GESTIÓN INTEGRAL EDUCATIVA
LilibethEstupian
 
Estructuras básicas_ conceptos de programación (1).docx
Estructuras básicas_ conceptos de programación  (1).docxEstructuras básicas_ conceptos de programación  (1).docx
Estructuras básicas_ conceptos de programación (1).docx
SamuelRamirez83524
 
Inteligencia Artificial y Ciberseguridad.pdf
Inteligencia Artificial y Ciberseguridad.pdfInteligencia Artificial y Ciberseguridad.pdf
Inteligencia Artificial y Ciberseguridad.pdf
Emilio Casbas
 
absorcion de gases y practicas de laboratorios
absorcion de gases y practicas de laboratoriosabsorcion de gases y practicas de laboratorios
absorcion de gases y practicas de laboratorios
JuanAlvarez413513
 
ACTIVIDAD 2P de Tecnología, 10-7, 2024..
ACTIVIDAD 2P de Tecnología, 10-7, 2024..ACTIVIDAD 2P de Tecnología, 10-7, 2024..
ACTIVIDAD 2P de Tecnología, 10-7, 2024..
IsabelQuintero36
 
INFORME DE LAS FICHAS.docx.pdf LICEO DEPARTAMENTAL
INFORME DE LAS FICHAS.docx.pdf LICEO DEPARTAMENTALINFORME DE LAS FICHAS.docx.pdf LICEO DEPARTAMENTAL
INFORME DE LAS FICHAS.docx.pdf LICEO DEPARTAMENTAL
CrystalRomero18
 
SISTESIS RETO4 Grupo4 co-creadores .ppsx
SISTESIS RETO4 Grupo4 co-creadores .ppsxSISTESIS RETO4 Grupo4 co-creadores .ppsx
SISTESIS RETO4 Grupo4 co-creadores .ppsx
tamarita881
 
Desarrollo de Habilidades de Pensamiento.
Desarrollo de Habilidades de Pensamiento.Desarrollo de Habilidades de Pensamiento.
Desarrollo de Habilidades de Pensamiento.
AlejandraCasallas7
 
Posnarrativas en la era de la IA generativa
Posnarrativas en la era de la IA generativaPosnarrativas en la era de la IA generativa
Posnarrativas en la era de la IA generativa
Fernando Villares
 
trabajo de tecnologia, segundo periodo 9-6f
trabajo de tecnologia, segundo periodo 9-6ftrabajo de tecnologia, segundo periodo 9-6f
trabajo de tecnologia, segundo periodo 9-6f
zoecaicedosalazar
 
Estructuras Básicas_Tecnología_Grado10-7.pdf
Estructuras Básicas_Tecnología_Grado10-7.pdfEstructuras Básicas_Tecnología_Grado10-7.pdf
Estructuras Básicas_Tecnología_Grado10-7.pdf
cristianrb0324
 
TAREA #6 - RECURSOS INCLUSIVOS POR ANGGIE ARRIAGA
TAREA #6 - RECURSOS INCLUSIVOS POR ANGGIE ARRIAGATAREA #6 - RECURSOS INCLUSIVOS POR ANGGIE ARRIAGA
TAREA #6 - RECURSOS INCLUSIVOS POR ANGGIE ARRIAGA
arriagaanggie50
 
Conceptos Básicos de Programación. Tecnología
Conceptos Básicos de Programación. TecnologíaConceptos Básicos de Programación. Tecnología
Conceptos Básicos de Programación. Tecnología
coloradxmaria
 
Conceptos Básicos de Programación Proyecto
Conceptos Básicos de Programación ProyectoConceptos Básicos de Programación Proyecto
Conceptos Básicos de Programación Proyecto
cofferub
 
3Redu: Responsabilidad, Resiliencia y Respeto
3Redu: Responsabilidad, Resiliencia y Respeto3Redu: Responsabilidad, Resiliencia y Respeto
3Redu: Responsabilidad, Resiliencia y Respeto
cdraco
 
DESARROLO DE HABILIDADES DE PENSAMIENTO.pdf
DESARROLO DE HABILIDADES DE PENSAMIENTO.pdfDESARROLO DE HABILIDADES DE PENSAMIENTO.pdf
DESARROLO DE HABILIDADES DE PENSAMIENTO.pdf
marianabz2403
 
Índice del libro "Big Data: Tecnologías para arquitecturas Data-Centric" de 0...
Índice del libro "Big Data: Tecnologías para arquitecturas Data-Centric" de 0...Índice del libro "Big Data: Tecnologías para arquitecturas Data-Centric" de 0...
Índice del libro "Big Data: Tecnologías para arquitecturas Data-Centric" de 0...
Telefónica
 

Último (20)

Ventajas y desventajas de la desinfección con cloro
Ventajas y desventajas de la desinfección con cloroVentajas y desventajas de la desinfección con cloro
Ventajas y desventajas de la desinfección con cloro
 
modelosdeteclados-230114024527-aa2c9553.pptx
modelosdeteclados-230114024527-aa2c9553.pptxmodelosdeteclados-230114024527-aa2c9553.pptx
modelosdeteclados-230114024527-aa2c9553.pptx
 
(PROYECTO) Límites entre el Arte, los Medios de Comunicación y la Informática
(PROYECTO) Límites entre el Arte, los Medios de Comunicación y la Informática(PROYECTO) Límites entre el Arte, los Medios de Comunicación y la Informática
(PROYECTO) Límites entre el Arte, los Medios de Comunicación y la Informática
 
TECLADO ERGONÓMICO Y PANTALLAS TACTILES - GESTIÓN INTEGRAL EDUCATIVA
TECLADO ERGONÓMICO Y PANTALLAS TACTILES - GESTIÓN INTEGRAL EDUCATIVATECLADO ERGONÓMICO Y PANTALLAS TACTILES - GESTIÓN INTEGRAL EDUCATIVA
TECLADO ERGONÓMICO Y PANTALLAS TACTILES - GESTIÓN INTEGRAL EDUCATIVA
 
Estructuras básicas_ conceptos de programación (1).docx
Estructuras básicas_ conceptos de programación  (1).docxEstructuras básicas_ conceptos de programación  (1).docx
Estructuras básicas_ conceptos de programación (1).docx
 
Inteligencia Artificial y Ciberseguridad.pdf
Inteligencia Artificial y Ciberseguridad.pdfInteligencia Artificial y Ciberseguridad.pdf
Inteligencia Artificial y Ciberseguridad.pdf
 
absorcion de gases y practicas de laboratorios
absorcion de gases y practicas de laboratoriosabsorcion de gases y practicas de laboratorios
absorcion de gases y practicas de laboratorios
 
ACTIVIDAD 2P de Tecnología, 10-7, 2024..
ACTIVIDAD 2P de Tecnología, 10-7, 2024..ACTIVIDAD 2P de Tecnología, 10-7, 2024..
ACTIVIDAD 2P de Tecnología, 10-7, 2024..
 
INFORME DE LAS FICHAS.docx.pdf LICEO DEPARTAMENTAL
INFORME DE LAS FICHAS.docx.pdf LICEO DEPARTAMENTALINFORME DE LAS FICHAS.docx.pdf LICEO DEPARTAMENTAL
INFORME DE LAS FICHAS.docx.pdf LICEO DEPARTAMENTAL
 
SISTESIS RETO4 Grupo4 co-creadores .ppsx
SISTESIS RETO4 Grupo4 co-creadores .ppsxSISTESIS RETO4 Grupo4 co-creadores .ppsx
SISTESIS RETO4 Grupo4 co-creadores .ppsx
 
Desarrollo de Habilidades de Pensamiento.
Desarrollo de Habilidades de Pensamiento.Desarrollo de Habilidades de Pensamiento.
Desarrollo de Habilidades de Pensamiento.
 
Posnarrativas en la era de la IA generativa
Posnarrativas en la era de la IA generativaPosnarrativas en la era de la IA generativa
Posnarrativas en la era de la IA generativa
 
trabajo de tecnologia, segundo periodo 9-6f
trabajo de tecnologia, segundo periodo 9-6ftrabajo de tecnologia, segundo periodo 9-6f
trabajo de tecnologia, segundo periodo 9-6f
 
Estructuras Básicas_Tecnología_Grado10-7.pdf
Estructuras Básicas_Tecnología_Grado10-7.pdfEstructuras Básicas_Tecnología_Grado10-7.pdf
Estructuras Básicas_Tecnología_Grado10-7.pdf
 
TAREA #6 - RECURSOS INCLUSIVOS POR ANGGIE ARRIAGA
TAREA #6 - RECURSOS INCLUSIVOS POR ANGGIE ARRIAGATAREA #6 - RECURSOS INCLUSIVOS POR ANGGIE ARRIAGA
TAREA #6 - RECURSOS INCLUSIVOS POR ANGGIE ARRIAGA
 
Conceptos Básicos de Programación. Tecnología
Conceptos Básicos de Programación. TecnologíaConceptos Básicos de Programación. Tecnología
Conceptos Básicos de Programación. Tecnología
 
Conceptos Básicos de Programación Proyecto
Conceptos Básicos de Programación ProyectoConceptos Básicos de Programación Proyecto
Conceptos Básicos de Programación Proyecto
 
3Redu: Responsabilidad, Resiliencia y Respeto
3Redu: Responsabilidad, Resiliencia y Respeto3Redu: Responsabilidad, Resiliencia y Respeto
3Redu: Responsabilidad, Resiliencia y Respeto
 
DESARROLO DE HABILIDADES DE PENSAMIENTO.pdf
DESARROLO DE HABILIDADES DE PENSAMIENTO.pdfDESARROLO DE HABILIDADES DE PENSAMIENTO.pdf
DESARROLO DE HABILIDADES DE PENSAMIENTO.pdf
 
Índice del libro "Big Data: Tecnologías para arquitecturas Data-Centric" de 0...
Índice del libro "Big Data: Tecnologías para arquitecturas Data-Centric" de 0...Índice del libro "Big Data: Tecnologías para arquitecturas Data-Centric" de 0...
Índice del libro "Big Data: Tecnologías para arquitecturas Data-Centric" de 0...
 

¿Te Sientes Orgulloso Del CóDigo Que Escribes?

  • 1. ¿Te sientes orgulloso del código que escribes? Israel Antezana R. www.israelantezana.wordpress.com Twitter: @israelantezana
  • 2. Definición • orgullo s. m. 1 Exceso de valoración propia por el que uno se cree superior a los demás. soberbia. 2 Sentimiento de satisfacción por un comportamiento bueno o por una obra bien hecha (http://es.thefreedictionary.com/orgullo)
  • 3. ¿Te sientes orgulloso del código que escribes?
  • 4. ¿Qué buscamos del código que escribimos? • Que produzca valor para el usuario • Que sea robusto • Que sea eficiente • Que pueda evolucionar
  • 5. Todo en el software cambia! • Requerimientos • Diseño • Contexto (negocio) • Tecnología • … • El problema no es el cambio, sino nuestra preparación para enfrentarlo
  • 6. ¿Queremos que nuestro software sobreviva? • => Debe poder responder al cambio!
  • 7. Código limpio que funciona • Un pilar fundamental de la agilidad
  • 8. Código limpio que funciona • ¡Es parte de nuestra responsabilidad y ética profesional! • Refleja nuestro compromiso con nuestra profesión
  • 10. Extreme Programming • Basada en un conjunto de: – Valores -> Principios -> Prácticas
  • 11. Prácticas de XP • El juego de la planificación • Entregas pequeñas • Programación dirigida por pruebas • Diseño simple • Refactorización • Programación en pares • Integración continua • Propiedad colectiva • Estándares de programación • Trabajo energizado • Cliente en sitio
  • 12. TDD Escribir una prueba Hacer que la prueba pase que falle < 5 min Refactorizar
  • 13. TDD • Somos usuarios del código, antes de escribirlo • Expresamos el qué antes del cómo – Expresamos la intención • Las pruebas están bien focalizadas – Acoplamiento / cohesión • Escencialmente una práctica de diseño
  • 14. Refactorización • Ejemplo 1: If (date.before(Summer_Start)||date.after(Summer_End)){ charge = quantity * winterRate + winterServiceCharge; else charge = quantity * summerRate; } • Ejemplo 2: If (isSummer(date)) { charge = summerCharge(quantity); else charge = winterCharge(quantity); }
  • 19. Las prácticas se complementan SINERGIA
  • 20. Y claro, muchas más prácticas… • Patrones de diseño • Patrones Arquitectónicos • Principios de diseño OO – SOLID, DRY • Code Smells • …
  • 21. Estas prácticas técnicas no se aprenden en 1 día • La agilidad asume el craftsmanship
  • 23. Dos niveles de aprendizaje
  • 26. Niveles para el desarrollo de Competencias Competente Inconciente Conciente Incompetente
  • 27. Nuestro trabajo es traducir historias de usuarios en código • No Woman No Cry – Bob Marley: 4.times{ !woman == !cry } • Yellow Submarine – The Beatles: Submarine yellowSubmarine = new Submarine(Color.Yellow) for (Person person : allPersons) { person.lives(yellowSubmarine) } twitter: #songsincode
  • 28. ¡Escribamos código del cual podamos sentirnos orgullosos!!
  • 29. Info de Contacto Israel Antezana Rojas • Blog: www.israelantezana.wordpress.com • Twitter: @israelantezana • Email: israelantezana@gmail.com