En la conferencia Software Education SDC en Melbourne - Australia y Wellington - Nueva Zelanda, el mes pasado, Ivar Jacobson, autor del trabajo original sobre casos de uso, Unified Modeling Language (UML) y Rational Unified Process (RUP), dice que el desarrollo ágil precisa "ser mas Smart".

Dijo que la industria de la tecnología de la información está muy pendiente de la moda, con una tendencia a apoderarse de las balas de plata y listó los siguientes ejemplos:

  • Hace quince años era todo acerca de OO
  • Hace diez años era sobre componentes, UML, Proceso Unificado
  • Hace cinco años era sobre RUP y CMMI
  • Hace dos años era sobre XP
  • Hoy es sobre Scrum

Todos tienen buenos elementos - pero ninguno es lo que necesitamos, lo que necesitamos es Trabajar con más Inteligencia. Él dice "Ser Smart es una evolución de ser Ágil":

  • Ágil significa ser flexible y adaptable
  • Ágil ofrece puntos simples/leves
  • Ser smart es saber cuándo ir más allá de ágil
    • Saber el momento para seguir las reglas y cuando romperlas
    • Saber cuándo ser consistente y cuando cambiar
    • Saber cuándo crecer y cuando encogerse

Según Jacobson, "Smart es Ágil++". Él siguió dando ejemplos de varias prácticas y enfoques smart (y no-smart) que él reconoció a través de los años. Algunas de las prácticas Smart y no-Smart que él identifico son:

  • Unsmart con las personas - ver los procesos y herramientas más importante que las personas
  • Smart con las personas - reconocer y entender que el software es construido por las personas, no con procesos y herramientas!

"Un tonto con una herramienta sigue siendo un tonto, pero un tonto peligroso"

  • Unsmart con los equipos - los equipos organizados en grupos de responsabilidades independientes (requisitos, análisis, diseño, etc)
  • Smart con los equipos - Multidiciplinarios, pequeños (idealmente de 10 o menos personas), equipos de auto-organizados con una combinación adecuada de habilidades para realizar el trabajo.

"Un equipo de software es un equipo de deporte con todas las habilidades necesarias para ganar"

  • Unsmart con los proyectos - Tratando de seguir un enfoque de cascada
  • Smart con los proyectos - Construir un "sistema delgado" para demostrar que hemos eliminado todos los riesgos críticos y, a continuación, añadadir más capacidad en el sistema delgado conforme sea necesario.

"Piense en grande, construya en varias etapas"

  • Unsmart con los requisitos - Tratar de definir todos los requisitos al comienzo (una constante en el desarrollo de software es que los requisitos cambian)
  • Smart con los requisitos - Base precoz de decisiones sobre requisitos leves y los detalles de cómo y cuando es necesario - los requisitos son negociables y las prioridades cambiarán

"Diseña tu proyecto para cambios de requisitos"

  • Unsmart con la arquitectura - sin arquitectura es tan malo como tratar de diseñar todo antes del desarrollo
  • Smart con la arquitectura - la arquitectura de sólo lo suficiente para construir el sistema delgado, la arquitectura debe resultar en código ejecutable.

"Comenzar a construir sistemas delgados, y después de añadir músculos en pequeños pasos"

  • Unsmart con pruebas - tener dos tipos de personas - los desarrolladores y testers. Los testers de proyectos unsmart son "los de limpieza en el mundo del software" - sacan el desorden dejado por los desarrolladores
  • Smart con pruebas - todo el equipo es co-responsables de la calidad y los testers son ciudadanos de primera clase

"Lo que hacemos,  no está hecho hasta que hayamos verificado lo hicimos y lo que tenía que hacer"

  • Unsmart con Documentación - rellenar ciegamente una plantilla de un documento sólo porque algunas normas de procedimiento dicen que eso  tiene que ser hecho.
  • Smart con Documentación - reconocer la "ley de la naturaleza: las personas no leen los documentos." Documente sólo lo que es absolutamente necesario

"Concentrarse en lo esencial - el espacio reservado a las conversaciones - las personas descubrirán el resto por sí mismas"

  • Unsmart con el Proceso - continuamente apoderarse de la última moda y tratar de cambiar todo lo que hacemos en respuesta al nuevo libro de reglas
  • Smart con el Proceso - No juegue al bebé junto con el agua de la bañera:
  1. Comience con su actual forma de trabajar
  2. Encuentre los puntos problemáticos
  3. Cambie una práctica a la vez

"Las personas no leen libros de proceso, concentremonos en lo esencial, las personas descubrirán el resto por sí mismas"

El elemento clave para ser Smart es centrarse en las personas, como Jacobson dice "todo se reduce a ti".

Basado en Pai dos Casos de Uso diz: Agile precisa ser mais Smart

Inspiración.

"Si tú tienes una manzana y yo tengo una manzana e intercambiamos las manzanas, entonces tanto tú como yo seguiremos teniendo una manzana cada uno. Pero si tú tienes una idea y yo tengo una idea, e intercambiamos las ideas, entonces ambos tendremos dos ideas"

Bernard Shaw