Cuanto peor equipamiento tenga el desarrollador mejor rendimiento tendrá la aplicación

Cable - La Foto de ayer Según el test de Joel para el desarrollo de software, el desarrollador debe tener las mejores herramientas que se puedan pagar.

La experiencia me dice que en algunos casos esta regla es contraproducente para la calidad del producto resultante.
Mientras se desarrolla, la velocidad de ejecución de los procesos se miden en el tiempo que siente el desarrollador.

  • Si en la máquina del desarrollador va bien, el código esta bien.
  • Si en la máquina del desarrollador va lento, él mismo, se preocupará de hacer que vaya bien.

Muchas de las incidencias que conozco relacionadas con el rendimiento de las aplicaciones son derivadas de que las conexiones y rendimientos de las máquinas donde se programa son superiores a donde se ejecuta en producción.

Lo ideal es que el desarrollador ejecute sus pruebas con la peor máquina donde pueda correr en producción, de esta manera nos aseguraremos que en ejecución siempre funcionará muy rápido.

Esto es aplicable a procesador, tamaño de pantalla, memoria, velocidad de conexión al servidor, etc.

Un caso que conozco en Velneo que demuestra esta teoría, son las optimizaciones del protocolo VATP. Cuando se estaba desarrollando por parte de Juan Muñoz-Cobos y su equipo, se contaba con de una infraestructura de comunicación penosa, una latencia de 1 segundo. El resultado es un protocolo de comunicaciones muy optimizado y preparado para las peores circunstancias.

Cuando el desarrollador trabaja con un muy buen equipamiento suele ser más habitual escuchar «No se porque va lento, en mi equipo va bien» 😉

Los desarrolladores hablan klingon y los de soporte hablan esperanto

Los equipos de desarrollo y soporte suelen ser habituales en cualquier empresa de desarrollo de software. Y también es habitual que estos dos equipos tengan mucha colaboración y puntos de conflicto.

Realmente todos en la empresa suelen tener el mismo objetivo, satisfacción del cliente y un buen producto, el problema viene que cada departamento habla idiomas distintos, sin un idioma común es difícil comunicarse 😉

Los desarrolladores

Los desarrolladores viven en su planeta Kronos ( Departamento de desarrollo ), buscan el silencio, el reposo y la tranquilidad. Entre dos desarrolladores la comunicación es fluida y cordial, generalmente todo se puede explicar perfectamente en su idioma. Se sienten creadores del universo conocido y dicha creación se ha hecho en el idioma Klingon.

El equipo de soporte

El esforzado equipo de soporte vive en un planeta regido por el caos, las llamadas, los emails y las consultas de los clientes entran sin ningún criterio lógico. Los integrantes del equipo han tenido que  inventar un idioma universal para poder entender toda esta actividad. Entre ellos tienen su propia jerga comprendiéndose perfectamente, con un par de palabras saben referirse a cualquier situación. El idioma creado por el equipo de soporte es el Esperanto.

Cada equipo por separado trabaja en sintonia, el problema viene cuando la persona de soporte le comenta lo que esta sucediendo a un desarrollador. Uno le da la versión en esperanto de lo que le ha comentado el cliente y el otro espera una explicación en klingon. Lo que entiende cada uno de la misma situación puede ser algo como esto:

  • Consulta
    Usuario (Idioma sin especificar): Le doy al botón y no funciona
    Soporte (Esperanto) : Pulsa el botón de facturar desde el menu principal sin exito
    Desarrollador (Klingon) : Le manda un señal de click al widget
  • Respuesta
    Desarrollador (Klingon) : El IsEnabled del widget esta condicionado
    Soporte (Esperanto) : Solo se puede pulsar el botón si la factura tiene importe
    Usuario (Idioma sin especificar) : Solo funciona si le pongo algo

¿Como mejorar la comunicación de los dos equipos?
Es importante que alguna persona de soporte haya vivido en kronos y conozca algo de klingon. Por otro lado los programadores deben salir de vez en cuando de su planeta y ver que se hablan muchas lenguas a lo largo y ancho de la galaxia conocida 😉