La diferencia entre hacer una tarea bien o excelente

Muchas veces cuando pensamos en realizar un trabajo en particular, por más pequeño o grande que sea, no nos detenemos a pensar en la calidad del mismo y como impacta el esfuerzo que empeñamos en el, así como esto se transforma en resultados.

Lo tradicional es pensar que el resultado tiende a óptimo a mayor cantidad de horas de esfuerzo invertidas, por ejemplo, alguien podría pensar que, un programador tarda en realizar un programa de extraordinaria calidad unas 10 horas, y la calidad del mismo va a evolucionando de forma escalonada, como la siguiente imagen:

calidad tiempo

Como verán los intervalos en que este programador realiza el trabajo y va escalando en cuanto a calidad se refiere esta definido por periodos equitativos. El problema aquí es que este pensamiento es lineal y es completamente incorrecto. Explico mi razonamiento y el porque de que esta gráfica, a mi entender, es completamente incorrecta.Si seguimos esta gráfica el programador hizo:

  • 0hs a 2,5hs: El programador en esta etapa estaría haciendo un programa funcional, de cero a una calidad aceptable y funcional, no muy bueno, pero funcional.
  • 2,5hs a 5hs: El programador en las siguientes dos horas y media perfeccionaría el programa para llevarlo de una etapa mediocre a un programa de muy buena calidad.
  • 5hs a 7,5hs: Continuando con el pensamiento incorrecto, aquí el programador seguiría avanzando el código, haciendo algo muy bueno en excelente.
  • 7,5hs a 10hs: Aquí el programador se convertiría en las últimas dos horas en una especie de dios de la programación y haría lo que solo esta al alcance de los dioses, hacer un programa perfecto (también en solo 2,5 hs)

Como se habrán percatado, lo que liste arriba esta lleno de errores, por lo general un programador demora al menos un 50% del tiempo total de un proyecto en tener una copia funcional de su sistema, algo muy distinto al cuarto del tiempo empleado por nuestro ejemplo incorrecto, a su vez también es engañoso que se hable de perfección cuando esta no se alcanza nunca prácticamente. Y por sobre todo estamos dejando muchas variables importantes fuera de la grafica: ¿Donde esta la motivación? ¿Cansancio? ¿Cómo se puede tardar lo mismo en pasar de una etapa a la otra?

Si damos por sentada la gráfica anterior estaríamos diciendo que todos podemos tener un programa perfecto solo empleando mas horas. Pero hace tiempo leyendo una genial entrada de Charlie Gilkey entendí un poco mejor como en verdad funciona esto, y que tan impactante y pequeña es la diferencia entre hacer las cosas bien y excelentes. La gráfica solución al mismo problema es la siguiente:

hacer trabajos bien

Y ahora si la gráfica se condice mucho mas con la realidad de todos nosotros, no solamente con la del programador del ejemplo. Como pueden ver en todos nuestros proyectos casi siempre lo que mas tiempo consume es llegar a un punto de calidad aceptable, que podría definirse hasta como mediocre, es casi como aprobar una materia con una nota un poco superior o igual a la necesaria para no aplazar. Pero si nos esforzamos un poco mas, la distancia recorrida es muy inferior a la que ya pasamos para llegar a una calidad muy buena.

Es simple, pero a veces la primera etapa nos desgasta demasiado, pero estoy convencido que podemos llevar todos nuestros trabajos y todo lo que hagamos al próximo nivel, ¿porque quedarnos en simplemente bien cuando podemos ser excelentes?

A mí particularmente, y como programador, me gusta lo que defino como zona clave:

zona clave

La zona clave es donde radica la diferencia entre un profesional mediocre y uno excelente, muchos se preguntaran porque no marco dentro de esta zona al punto de perfección, la respuesta es simple, no creo que realmente exista ese punto, al menos no en áreas de tecnología o similares, es realmente imposible encontrar la perfección, tecnologías que evolucionan hacen que algo nunca pueda ser perfecto, sino ya tendríamos un sistema operativo sin fallas desde hace mucho tiempo 😛

Categorizado en: