El Hacker, el novato, el artista y el artesano

22 views
Skip to first unread message

Pedro Arana

unread,
Sep 24, 2010, 12:37:28 PM9/24/10
to Artesanos de Software
Traducido de http://thecleancoder.blogspot.com/2010/09/hacker-novice-artist-and-craftsman.html

Glosario:
http://es.wikipedia.org/wiki/Indicador_Myers-Briggs
ROI : Return On Investment => (Ganancia - Costo) / Costo
artesania (craft): indica mas a el trabajo "hecho a mano" o que no
se puede automatizar, en vez del objeto o producto en si. El artesano
es quien puede hacer ese trabajo.


En un post anterior, hice la afirmacion:
"El código limpio siempre ha sido por causa del dinero, y nunca por el
arte"

Aparentemente esto ha tomado a varias personas por sorpresa. Una
persona comento:

" ... pienso que estamos hablando acerca de la artesania, y la
reducción de costos es un subproducto ..."

Entonces ¿cual es la diferencia entre un artesano y un artista? Y solo
para añadir algo de sabor ¿como se diferencia de un hacker y un
novato?

Me doy cuenta que estoy cayendo en un error de tipo Myers-Briggs. La
gente no puede ser clasificada usando atributos binarios. Una persona
clasificada como MBTI ,un introvertido, seguramente tiene algunas
características extrovertidas. Por el mismo principio un programador
con características de hacker probablemente tiene también algunos
atributos de artesano.

Aun así, pienso que las definiciones de estos términos pueden ser
útiles como una forma de clasificar el comportamiento de los
programadores.

¿Cual es la diferencia entre el hacker, el novato, el artista y el
artesano? Es su definición de "Esta terminado"

El Artista
Esta terminado cuando la estructura y comportamiento del código del
artista ha alcanzado la perfección a los ojos del artista. No hay
consideración de dinero gastado o dinero que sera obtenido. El artista
no se preocupa acerca del ROI. El artista no se preocupa que tanto
tarde. Al artista solo le preocupa el resultado final.

Un artista pasara horas, días, incluso semanas, en una sola linea de
código. Un artista desechara funciones enteras y módulos completos
solamente por que no siente que sean correctos. Un artista pule, y
vuelve a pulir y pule una vez mas (su código) para alcanzar la elusiva
meta de la perfección.

El Hacker.
Esta terminado cuando el comportamiento del código alcanza alguna meta
personal. El hacker no esta preocupado por el ROI. El hacker no se
preocupa en absoluto del código. El hacker no se preocupa que tanto o
que tan poco tiempo se tarde en crear el código. El hacker no le
preocupa si alguien mas usa el código alguna vez. El hacker solo se
preocupa de hacerlo que funcione -- al menos una vez. Después de eso ,
el hacer pierde interés.


El Novato
Esta terminado tan pronto como el código es "suficientemente bueno".
El novato se esfuerza para minimizar el tiempo inicial de
programación. El novato no se preocupa por el ROI. El costo futuro de
el código no es motivo de preocupación para el novato. Tampoco le
importa acerca del numero de ocultos y/o sutiles defectos dejados en
el código. El novato simplemente quiere llegar a la siguiente tarea
tan pronto como sea posible. El novato esta guiado por la planeación,
o mas bien, el novato esta guiado por satisfacer a los gerentes que
manejan la planeación

El Artesano.
Esta terminado cuando el ROI sea maximizado. El artesano se esfuerza
por ser un buen administrador de el dinero que es gastado. El artesano
quiere estar seguro que cada dolar dure tanto como sea posible, y que
obtenga la mayor ganancia. Por lo tanto el artesano se asegura de que
el código trabaje, y que pueda mantenerse trabajando con un mínimo de
costo extra.

El artesano entiende que la mayoría de los defectos en comportamiento
y estructura serán bastante caros de reparar después y que es bastante
barato eliminarlos ahora. Por lo tanto el artesano impulsa una
implementación en código muy limpia. Sin embargo el artesano también
reconoce que existen algunos raros defectos en estructura y
comportamiento que costaran mas si se eliminan que si se toleran,
entonces el artesano usa su juicio , adquirido durante años, para
maximizar el ROI
Reply all
Reply to author
Forward
0 new messages