Archivo por meses: noviembre 2013

Metodologías ágiles de gestión de proyectos

Las metodologías ágiles nacen a finales del siglo XX con las nuevas necesidades de desarrollo imperantes especialmente en la industria del software como alternativa al modelo de desarrollo tradicional [1].

Las metodologías ágiles (Agile) se definen como un marco de trabajo para la entrega de productos rápida y eficientemente [2]. Se caracterizan por ser:

  • Iterativas. El desarrollo se hace mediante la repetición de una serie de pasos.
  • Incrementales. El desarrollo se realiza modularmente hasta formar el producto final.
  • Altamente flexibles. La metodología cuenta con procedimientos para el cambio y repriorización de objetivos.
  • Interactivas. Requieren de una interacción e implicación de todo el equipo y del cliente.
comparativa-agil-tradicional

Comparativa entre el enfoque tradicional y el enfoque ágil de gestión de proyectos

Una de las metodologías ágiles más extendidas es Scrum.

Hoy en el 41% de la industria del software se emplean metodologías ágiles o similares. Además, este tipo de metodologías está presente en cada vez más sectores económicos [3].

Un caso de éxito fuera de la industria de software es Zara, cuyo modelo de producción tiene rasgos de las metodologías ágiles, habiendo revolucionado la producción en el sector [4].

Referencias
[1] Manifiesto por el desarrollo ágil del software (2001)
[2] SADDINGTON, P. (2012): A Quick Start to Making Your Business Agile Using Scrum and Beyond. Wiley. Somerset, NJ, USA.
[3] SCRUM ALLIANCE (2013): "State of Scrum Report 2013"
[4] FORBES (2012): "When will US firms become Agile? Part two: Internal agility at Zara"

El firmware de Toyota y lecciones que aprender

Se cierra el juicio de Toyota acerca de las aceleraciones no intencionadas. Por desgracia, como en todo lo que respecta la seguridad, se necesitan noticias trágicas para que se tome consciencia de la importancia que tienen ciertos sistemas.

En edn.com, hay un extenso análisis técnico acerca del caso.

Las conclusiones del análisis son:

  • El código fuente del sistema de control del acelerador electrónico de Toyota (ETCS) es de una excesiva mala calidad.
  • El código fuente es defectuoso y contiene bugs, incluyendo algunos que pueden causar la aceleración no intencionada (unintended acceleration).
  • Las métricas de calidad del código predicen la presencia de más bugs.
  • Las medidas a prueba de fallos son defectuosas e inadecuadas (calificándolas de castillo de naipes).
  • La causa de la aceleración no intencionada es debida al mal funcionamiento del ETCS.

Algunas de las propuestas que se incluyen son:

  • Es necesario un cambio de cultura que abogue por una mayor calidad.
  • Dada la dificultad de testear todos los posibles fallos en un sistema complejo, es necesario utilizar todas las buenas prácticas y realizar un código que sea resistente a los fallos por diseño.
  • Es necesario el testeo desde un equipo de ingenieros externo al equipo de desarrollo.

Además, se enlaza a un exhaustivo análisis que se le encargó a la NASA. Me ha parecido interesante adjuntar el sistema de control de posición del acelerador.

toyota-etcs

Esquema del control de posición de la válvula aceleradora

Esperemos que sirva para que la industria reaccione y se tomen más en serio este tipo de sistemas críticos.

inFORM, despliegue dinámico de formas

real-3d-plot

Gráfica de la superficie z=x*y

Desde el MIT llega un asombroso proyecto del grupo Tangible Media. Se llama inFORM, este proyecto es un display dinámico de formas. Consta de 900 actuadores mecánicos, una cámara de profundidad (una Kinect) y un proyector que da soporte visual.

Ellos proponen tres aplicaciones diferentes:

  • Aportar utilidades (affordances) físicas dinámicas a través del cambio de forma.
  • Guiar a los usuarios mediante restricciones físicas.
  • Manipular mediante objetos actuadores físicos.
inform-esquema

Esquema del sistema inFORM

Sin embargo, lo mejor es ver el vídeo demostrativo en las que se pueden apreciar todas las aplicaciones.

Referencia: inFORM - Tangible Media Group, MIT Media lab.