Inicio arrow Blog arrow El software es así arrow ¿La programación es ingeniería o artesanía? Make Text BiggerMake Text SmallerReset Text Size
¿La programación es ingeniería o artesanía? Imprimir E-mail
14.03.2009

ruedasencuesta Seguimos las prácticas elegidas por nosotros mismos, para garantizar la calidad de nuestro trabajo. Adoptamos los procesos de desarrollo para que sirvan a nuestras habilidades y talentos. Estamos centrados en la habilidad, antes que en el proceso. Somos generalistas ....

Son los principios del artesano de software, una metáfora acuñada por Pete McBreen en su libro "Software Craftsmanship" (2002) para definir una forma de programar, más próxima a la agilidad que a los procedimientos.

La conferencia del 29 de enero en Londres sobre artesanía del software , junto con la publicación, por parte de la empresa 8th light de del "manifiesto de la artesanía del software " presenta estos días las metáforas de "artesano" "artista" como preferibles a las de "ingeniero" o "arquitecto"

La discusión tiene para rato, y mejor no entrar en un artículo que por largo y denso va a desbordar lo que un sábado de fiesta necesita, pero no nos podemos resistir a la curiosidad de saber qué piensa la mayoría:

 

 ¿La programación está más cercana a la ingeniería o al arte?

¿Ingeniero o Artista?
De los siguientes, el término con el que mejor identificas el trabajo de programación es:
 

 

 

Comentarios (5)Add Comment
Una mezcla entre Artesano y Consultor
escrito por JorgeRubira, March 14, 2009
Pues me quedo con las opciones Artesano + Consultor y un poco de ingenieria.

Según la RAE.
Artesano: Hace por su cuenta objetos de uso doméstico imprimiéndoles un sello personal, a diferencia del obrero fabril. (Normalmente el código fuente es muy personal y se puede hacer una misma cosa de mil formas diferentes. En la ingenieria te enseñan los conceptos básicos pero los modos te los enseña la experiencia y por ello cada uno tiene una diferente)

Consultor: Que da su parecer, consultado sobre algún asunto. (Bueno, aquí matizar que el programador es Consultor y a la vez Consultante. Debe aportar su punto de vista sobre la resolución de un problema a partir de ideas de otros para conseguir un consenso adecuado)

La palabrá ingeniería es muy ambigua
Ingeniería: Estudio y aplicación, por especialistas, de las diversas ramas de la tecnología. (Para mí un ingeniero es el que conoce el por qué de las cosas. Aunque si que conocemos del sistema que desarrollamos, conocemos practicamente poco el sistema operativo que usamos, si es compatible o no con cierta versión de una base de datos, etc. Principalmente porque nuestras bases no dependen de la física (comportamientos naturales), si no de otros algoritmos (comportamientos artificiales y como consecuencia variables en diferentes entornos).

Saludos, Jorge
Informar de comentario inadecuado
voto negativo
voto positivo
Votes: +0
...
escrito por Andrés Panitsch, March 14, 2009
Creo que puede ser un artesano, un arquitecto o un constructor, dependiendo el entorno.
Si estamos en un equipo pequeño de desarrollo ágil serán artesanos. Algunos de ellos serán arquitectos.
Si estamos en una gran consultora con metodologías de tipo top-down muy asentadas serán constructores.
Creo que la industria tiende a ubicar a los programadores como arquitectos/artesanos. Supone en mucho un ahorro de funciones, que terminan uniéndose en apenas dos o tres perfiles. Sin embargo, y sobre todo en grandes software factories, la visión del constructor que rellena una estructura prearmada con bloques prearmados sigue muy difundida.
Informar de comentario inadecuado
voto negativo
voto positivo
Votes: +0
...
escrito por alfredo, March 14, 2009
Yo tengo bastante claro que lo nuestro se parece mucho más a un artesania que a una ingenieria, y creo que en empresas grandes pasa lo mismo pero el proceso artesanal queda oculto tras una cortina de especificaciones, procedicimientos, tropecientos roles que dan la impresión de ingenieria, pero luego que las cosas salgan bien o mal termina dependendiendo en gran medida del proceso artesanal que se aplica en la fase de implementación... y el resto es una bonita fachada que en mi opnión no sirve para mucho más que para dilapidar dinero y tiempo en un proceso pseudo-ingenieril mal entendido y peor aplicado.

De momento esto se parece mucho más a una ingenieria porque en realidad no existen metodos sistematicos que seguir para lograr un proyecto de calidad y exitoso (la prueba es que seguimos discutiendo si agiles o procesos, si tal o cual, esto es porque no hay nada que realmente funcione sin lugar a dudas y que todos sigamos como metodo irrebatible) , lo que si existen es un conjunto de buenas practicas más o menos extendidas que al final cada uno termina adaptando a su entorno de trabajo de la mejor forma posible, esto a mi me suena mucho más artesania.

De todos modos, tampoco creo que sea tan necesario buscar etiquetas para todo, lo que seguro que somos es desarrolladores de software, con los problemas propios de nuestra profesión que son sólo nuestros y no tienen porque parecerse ni a los de un ingeniero ni a los de un artesano, es un debate más interesante por las discusiones laterales que se suelen producir que por el fondo del debate, llameme usted como quiera, artesano o ingeniero, lo que soy es desarrollador de software y lo voy a seguir siendo me pongan la etiqueta que me pongan.
Informar de comentario inadecuado
voto negativo
voto positivo
Votes: +0
una mezcla entre emmet brown, caga tió y chuck norris (en lo intelectual)
escrito por a, March 14, 2009
dicen que si sólo tienes un martillo sólo te parecerá un clavo, por lo que mi visión de otras ingenierías puede ser bastante distorsionada, pero aún así, diré que creo que la informática tiene al menos dos diferencias esenciales con el resto de ingenierías:
1. la subjetividad en la interpretación del problema y el valor de la solución.
2. el dinamismo en los requerimientos.

la informática modela la realidad y el modelado de la realidad puede llegar a ser obscenamente subjetivo en cuanto te alejas de sistemas sencillos y trillados. si a eso le añades que lo que diseñas para satisfacer las necesidades de hoy se puede volver inútil al siguiente año fiscal, resulta que la única garantía de realizar un diseño perdurable es tener el coche del dr. emmet brown. y como no existe, no puedes conocer todas las reglas del juego, por lo que ya no juegas a pegar sino a que te peguen lo menos posible. me acabo de dar cuenta de que en la facultad me han enseñado bien: esto va de recibir palos!

volviendo al hilo: por la existencia de esas 2 diferencias resaltaría el extremo valor que en el caso de la ing. de soft. tienen:
1. las convenciones (para reducir a problemas convencionales todo lo que se pueda, y ofrecer las correspondientes soluciones convencionales)
2. el conocimiento del negocio (para invertir lo necesario en hacer la solución extensible allí por donde ha sido humanamente posible prever que hará falta que lo sea)

aunque ahora así pensando más en abstracto, la necesidad de comprensión del problema y el alto valor de las soluciones probadas efectivas no creo que sea algo impropio del resto de ciencias e ingenierías.

lo de "arte" me suena demasiado ligado a "el estado mental del artista que lo ha hecho en el momento que lo ha hecho", y creo que eso contribuye a reducir la esperanza de vida de las soluciones producidas.
Informar de comentario inadecuado
voto negativo
voto positivo
Votes: +0
corrección
escrito por a, March 14, 2009
es "si sólo tienes un martillo *todo* te parecerá un clavo"
Informar de comentario inadecuado
voto negativo
voto positivo
Votes: +0

Escribir comentario
quote
bold
italicize
underline
strike
url
image
quote
quote
smile
wink
laugh
grin
angry
sad
shocked
cool
tongue
kiss
cry
reducir | aumentar

busy
 
< Anterior   Siguiente >


En Navegapolis
En Internet

Advertisement

Amigos de Navegápolis

Scrum Manager Colaborador

Área de descargas

Artículos relacionados

Registrado en Safe Creative