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 ....
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?
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).
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.
+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.
+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.
+0
corrección escrito por a,
March 14, 2009
es "si sólo tienes un martillo *todo* te parecerá un clavo"
+0
... escrito por Oscar,
April 20, 2010
La cuestión es complicada, realmente los antiguos artesanos vistos desde nuestros días son calificados de ingenieros, pero no todos, solo los que tuvieron éxito con su arte diría yo. ¿Podría alguien decirme si Leonardo da Vinci era un artista o un ingeniero?. Ciertamente es difícil. Y ¿cuantos “artistas” contemporáneos de Leonardo se han perdido en el olvido solo por que su arte no tuvo éxito?.
Yo creo que la cuestión de si los “desarrolladores de software” son artistas o ingenieros es un poco pretenciosa, que no se ofenda nadie, me explico. No veo como uno se puede convertir en artista por el hecho de pasar n años en una facultad. ¿Cómo se adquieren la aptitud artística, el talento y la genialidad?. Realmente no creo que se pueda adquirir o se tiene o no se tiene, pero, ¿es esto necesario para ser un artista?... bueno para ser un artista de éxito parece que si. Yo creo que lo que ocurre es que la mayoría de los desarrolladores de SW tienen los conocimientos necesarios para desarrolla un proceso creativo como es la programación, pero solo algunos nacieron con habilidades necesarias para ser programadores de éxito “artistas”. Por eso me gusta creer que los ingenieros de sw conocen las técnicas y metodologías necesarias para crear un programa informático y disfruto cuando de entre ellos destaca un artista por que su genialidad innata le convierte en un genio.
Esta discusión entre arte e ingeniería no es únicamente aplicable a la ingeniería del sw, ocurre lo mismo en todos los campos de la ingeniería e incluso yo diría que en todos los campos del conocimiento. A todos nos gustaría considerarnos artistas pero la cruda realidad es que solo algunos lo son, otros nos limitamos a aplicar lo que hemos aprendido y solo podemos ser ingenieros y de estos, los que se dedican al software, solo unos pocos han estudiado informática.
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