La respuesta es que siento vergüenza. Nadie puede verme mientras me pongo rojo, nervioso, frustrado, auto acusatorio. Nadie sabe que me cuesta dormir porque he estado codificando 20 horas seguidas para lanzar una función que prometí a los usuarios, pero luego publiqué, descubrí un error y necesito dormir de todos modos.
Sin embargo … también a casi ningún usuario le importa. En realidad, no, e incluso las personas que “se preocupan”, solo se preocupan si se les incomoda “ahora” y qué tan rápido soy responsable del problema. Lo que he encontrado es que los usuarios se enojarán cuando haya un problema, hasta que les diga que una función no funciona (o incluso mejor, cómo solucionar el problema), entonces se relajarán. No necesitan la función para funcionar “Ahora”, pero no quieren quedarse en la oscuridad preguntándose si están haciendo algo mal, si hay algo mal con su dispositivo, etc. Nadie quiere ser cambiar a diferentes fuentes de Internet, diferentes dispositivos, borrar cookies, etc., solo para descubrir que el problema es “yo”.
Trato de ser considerado con el tiempo de las personas. Además, las cosas son un poco diferentes de cuando era dueño de topwebcomics.com. Entonces, mis usuarios querían promocionar sus webcomics y los estaba reteniendo de su creación “artística” y la expusieron a millones de personas. Un gran problema, pero estaban bien. Ahora, mis usuarios manejan sus compañías de seguros desde la parte posterior de nuestro software. Si estamos rotos, podríamos calcular el precio incorrecto o podríamos evitar registrar nuevos negocios.
Siendo responsable del software de misión crítica, podría haber decidido que simplemente no permitiría que ningún código se activara hasta que se haya probado más allá de lo razonable. Muchos de mis pares en otras compañías han decidido seguir ese camino porque se niegan a ser culpados.
Sus cronogramas de desarrollo pueden ser meses o trimestres, como los nuestros, nuestros días o semanas.
“Mi” preferencia es tratar de pensarlo desde la perspectiva del usuario y liberarlo de manera rápida o lenta, dependiendo de lo importante que sea. En general, aquí están mis reglas que le doy a mi equipo.
- Si una función es vital y no estamos seguros, envíe un mensaje a los usuarios, pruébela hasta que estemos seguros y luego realice un lanzamiento.
- Si una característica es importante, pero no vital, y se ha sometido a pruebas, publíquela, discúlpese por cualquier problema y vuelva a publicarla.
- Para cualquier otro código, si no ha pasado por las pruebas, suponga que tiene problemas. Eso es un hecho, “tiene” problemas, somos humanos, siempre se puede mejorar. PERO, ¿cuántos usuarios podrán usar / ver esta función? Si no hay muchos y / o solo usuarios beta, suéltelo, permita que los usuarios beta informen cualquier problema. Si es un área ampliamente utilizada del sistema y todos la verían, simplemente nunca la libere hasta que se haya encontrado el tiempo para probarla. Si las partes interesadas se niegan a probarlo (sin tiempo, etc.), archívelo, dígales que puede activarse cuando puedan probarlo.
Intento preocuparme MUCHO por el código que escribo, pero realmente intento NO preocuparme por los problemas que existen. Mi código puede ser literalmente perfecto, pero sé que los navegadores cambiarán con el tiempo y eventualmente romperán mi código. Los requisitos del usuario cambiarán con el tiempo y mi código dejará de tener sentido para ellos. Eso significa que incluso el código que se publica hoy, tendré a alguien escribiéndome un correo electrónico en algún momento diciéndome que no funciona (ya, pero a ellos, como tal vez un nuevo usuario, alguna vez). No se castigue por ello siempre y cuando se sienta bien acerca de “cómo” se está comunicando con los usuarios y reconociendo lo que ha construido.