SlideShare una empresa de Scribd logo
Algunas Técnicas
Carlos García T.



                   Ninja
         en el Proceso de
          Desarrollo de
             Software
Primer Objetivo

   Encontrar al ”Chicho”
Perfil del ”Chicho”

   Tiene mucho interés en el
    desarrollo del proyecto
   Tiene autoridad para hacer ajustes
    en cuestiones de tiempo y
    presupuesto

   No siempre es un usuario final del
    sistema, o el que más lo va a usar
   Suele tener conocimientos
    generales del dominio del
    problema
El ”chicho” es un aliado,
     no un enemigo
   De hecho es muy
    provechoso y
    muy
    recomendable
    hacer que trabaje
    junto con
    nosotros

   Que sepa lo que
    estamos haciendo
    y como lo
    estamos haciendo
Preceptos básicos de la
filosofía Ninja moderna
El ninja trabaja en equipo

   El arma secreta es
    la comunicación
    frecuente

   Escucha, aprende
    y mejora de los
    demás elementos
    de su equipo
    (feedbak)

   No tiene miedo a
    equivocarse
El proyecto y el código es
        de todos
   No hay de que
    ”esa parte del
    sistema no me
    tocó a mi sino a
    Donatello...”

   ”Esto que hizo
    Miguel Angel, no
    me gustó nada
    como quedó,
    pero mejor asi lo
    dejo porque no
    es mi sección...”
No buscamos heroes
   Solo se trabajan
    40 horas a la
    semana

   El cansancio es
    contraproducent
    e
El ambiente Zen
   Tratar de que el
    equipo tenga un
    buen ambiente de
    trabajo

   Que cada uno se
    sienta valorado e
    importante
Contrata al que mejor
       escriba
El ninja nunca trabaja
              solo
   Siempre trabaja en
    parejas (pair
    programming)


   Cada semana cambia
    de compañero de
    trabajo

   Así los novatos se
    integran más rápido y
    todos aprenden de
El ninja previene
   Antes de escribir el
    código de un módulo,
    escribe el código para
    probar lo que incluso
    todavía no hace

   Esto previene errores
    y además da claridad
    sobre lo que se
    necesita

   Estas pruebas son
    automatizadas
El ninja primero piensa:
         YAGNI
   You Aren't Going to
    Need It

   Siempre implementar
    cosas cuando
    realmente se necesitan,
    no cuando se piense
    que se necesitarán

   Mantener ante todo un
    diseño simple

   Menos es mas, no hay
    que emocionarse
Refactorizar todo el
            tiempo
   El ninja sabe volver
    sobre sus pasos

   Cuando ya se tiene
    un modulo
    funcionando, el ninja
    siempre se pregunta
    si existe una mejor
    manera de hacerlo

   No es volver a
    hacerlo... solo re-
    pensarlo
Estándares de Codificación

   Los elementos del
    equipo deben usar
    un mismo estilo de
    codificación y
    acordar las reglas
    que todos seguirán

   Lo ideal es que el
    código sea
    autodocumentado
    (self-documented)
Que NO debe faltar en el
   arsenal de armas
   Control de versiones

   Un analizador estático

   Automatizar la
    generación de
    entregables
Se deben tener pequeños
       objetivos
        (sprints)

             Levanta la moral
              del equipo

             Da sensación de
              logro

             El cliente ve
              resultados muy
              pronto
Los ninja juegan Poker




   Las estimaciones de tiempo
    siempre dependen de la
    experiencia de cada elemento del
    equipo
Tablero del Sprint
La reunión matutina
       diaria
A lo largo del sprint
El ninja siempre gana por
          nockout
   Evitar estimaciones parciales en el
    avance de las tareas, siempre es
    0% o 100%
Por último: El ninja
siempre está afilando la
         katana
   Siempre lee sobre
    nuevas tecnologías

   No menosprecia
    paradigmas ni
    lenguajes, siempre
    trata de encontrar la
    herramienta que
    mejor se adecúa a
    cada misión
Preguntas?

Más contenido relacionado

Similar a Tecnicas ninja

Coding Dojo, Campus Party México 2011
Coding Dojo, Campus Party México 2011Coding Dojo, Campus Party México 2011
Coding Dojo, Campus Party México 2011
Domingo Suarez Torres
 
Universo Agile
Universo AgileUniverso Agile
Universo Agile
lucsat
 
Aprender a programar
Aprender a programarAprender a programar
Aprender a programar
Jair Carcamo Cardenas
 
Como triunfar con tu proyecto en un hackatón
Como triunfar con tu proyecto en un hackatónComo triunfar con tu proyecto en un hackatón
Como triunfar con tu proyecto en un hackatón
Juan J. Merelo
 
Introducción al 7º hackathon UGR
Introducción al 7º hackathon UGRIntroducción al 7º hackathon UGR
Introducción al 7º hackathon UGR
Juan J. Merelo
 
Enrique Sánchez. Cómo ser un agile tester (y no morir intentándolo)
Enrique Sánchez. Cómo ser un agile tester (y no morir intentándolo)Enrique Sánchez. Cómo ser un agile tester (y no morir intentándolo)
Enrique Sánchez. Cómo ser un agile tester (y no morir intentándolo)
233 Grados de TI
 
Cómo ser un Agile Tester (y no morir intentándolo)
Cómo ser un Agile Tester (y no morir intentándolo)Cómo ser un Agile Tester (y no morir intentándolo)
Cómo ser un Agile Tester (y no morir intentándolo)
Enrique Sánchez-Bayuela
 
8º hackatón de proyectos libres de la UGR: Ayuda para los participantes
8º hackatón de proyectos libres de la UGR: Ayuda para los participantes8º hackatón de proyectos libres de la UGR: Ayuda para los participantes
8º hackatón de proyectos libres de la UGR: Ayuda para los participantes
Juan J. Merelo
 
Actividad nº 6
Actividad nº 6Actividad nº 6
Actividad nº 6
Jeniffer Ponce
 

Similar a Tecnicas ninja (9)

Coding Dojo, Campus Party México 2011
Coding Dojo, Campus Party México 2011Coding Dojo, Campus Party México 2011
Coding Dojo, Campus Party México 2011
 
Universo Agile
Universo AgileUniverso Agile
Universo Agile
 
Aprender a programar
Aprender a programarAprender a programar
Aprender a programar
 
Como triunfar con tu proyecto en un hackatón
Como triunfar con tu proyecto en un hackatónComo triunfar con tu proyecto en un hackatón
Como triunfar con tu proyecto en un hackatón
 
Introducción al 7º hackathon UGR
Introducción al 7º hackathon UGRIntroducción al 7º hackathon UGR
Introducción al 7º hackathon UGR
 
Enrique Sánchez. Cómo ser un agile tester (y no morir intentándolo)
Enrique Sánchez. Cómo ser un agile tester (y no morir intentándolo)Enrique Sánchez. Cómo ser un agile tester (y no morir intentándolo)
Enrique Sánchez. Cómo ser un agile tester (y no morir intentándolo)
 
Cómo ser un Agile Tester (y no morir intentándolo)
Cómo ser un Agile Tester (y no morir intentándolo)Cómo ser un Agile Tester (y no morir intentándolo)
Cómo ser un Agile Tester (y no morir intentándolo)
 
8º hackatón de proyectos libres de la UGR: Ayuda para los participantes
8º hackatón de proyectos libres de la UGR: Ayuda para los participantes8º hackatón de proyectos libres de la UGR: Ayuda para los participantes
8º hackatón de proyectos libres de la UGR: Ayuda para los participantes
 
Actividad nº 6
Actividad nº 6Actividad nº 6
Actividad nº 6
 

Tecnicas ninja

  • 1. Algunas Técnicas Carlos García T. Ninja en el Proceso de Desarrollo de Software
  • 2. Primer Objetivo  Encontrar al ”Chicho”
  • 3. Perfil del ”Chicho”  Tiene mucho interés en el desarrollo del proyecto  Tiene autoridad para hacer ajustes en cuestiones de tiempo y presupuesto  No siempre es un usuario final del sistema, o el que más lo va a usar  Suele tener conocimientos generales del dominio del problema
  • 4. El ”chicho” es un aliado, no un enemigo  De hecho es muy provechoso y muy recomendable hacer que trabaje junto con nosotros  Que sepa lo que estamos haciendo y como lo estamos haciendo
  • 5. Preceptos básicos de la filosofía Ninja moderna
  • 6. El ninja trabaja en equipo  El arma secreta es la comunicación frecuente  Escucha, aprende y mejora de los demás elementos de su equipo (feedbak)  No tiene miedo a equivocarse
  • 7. El proyecto y el código es de todos  No hay de que ”esa parte del sistema no me tocó a mi sino a Donatello...”  ”Esto que hizo Miguel Angel, no me gustó nada como quedó, pero mejor asi lo dejo porque no es mi sección...”
  • 8. No buscamos heroes  Solo se trabajan 40 horas a la semana  El cansancio es contraproducent e
  • 9. El ambiente Zen  Tratar de que el equipo tenga un buen ambiente de trabajo  Que cada uno se sienta valorado e importante
  • 10. Contrata al que mejor escriba
  • 11. El ninja nunca trabaja solo  Siempre trabaja en parejas (pair programming)  Cada semana cambia de compañero de trabajo  Así los novatos se integran más rápido y todos aprenden de
  • 12. El ninja previene  Antes de escribir el código de un módulo, escribe el código para probar lo que incluso todavía no hace  Esto previene errores y además da claridad sobre lo que se necesita  Estas pruebas son automatizadas
  • 13. El ninja primero piensa: YAGNI  You Aren't Going to Need It  Siempre implementar cosas cuando realmente se necesitan, no cuando se piense que se necesitarán  Mantener ante todo un diseño simple  Menos es mas, no hay que emocionarse
  • 14. Refactorizar todo el tiempo  El ninja sabe volver sobre sus pasos  Cuando ya se tiene un modulo funcionando, el ninja siempre se pregunta si existe una mejor manera de hacerlo  No es volver a hacerlo... solo re- pensarlo
  • 15. Estándares de Codificación  Los elementos del equipo deben usar un mismo estilo de codificación y acordar las reglas que todos seguirán  Lo ideal es que el código sea autodocumentado (self-documented)
  • 16. Que NO debe faltar en el arsenal de armas  Control de versiones  Un analizador estático  Automatizar la generación de entregables
  • 17. Se deben tener pequeños objetivos (sprints)  Levanta la moral del equipo  Da sensación de logro  El cliente ve resultados muy pronto
  • 18. Los ninja juegan Poker  Las estimaciones de tiempo siempre dependen de la experiencia de cada elemento del equipo
  • 21. A lo largo del sprint
  • 22. El ninja siempre gana por nockout  Evitar estimaciones parciales en el avance de las tareas, siempre es 0% o 100%
  • 23. Por último: El ninja siempre está afilando la katana  Siempre lee sobre nuevas tecnologías  No menosprecia paradigmas ni lenguajes, siempre trata de encontrar la herramienta que mejor se adecúa a cada misión