Este es un proyecto cancelado que no recibe actualizaciones. No obstante, puedes acceder a su archivo como referencia.

Versión Cero

¿Por qué programar está desprestigiado?

Sergio Montoro

¿Existe una tendencia a considerar el trabajo de programación como “de menor nivel”? Y si es así, ¿por qué?

por Sergio Montoro Ten, 24 enero 07

Estaba leyendo un comentario en el post de Joserra Porqué los programadores se llevan el trozo grande del pastel
El autor cuenta que a él en una entrevista de trabajo le sugirieron que “dejase la programación para dedicarse al análisis, como si fuese una especie de cambio de dieta o eso dependiese sólo de él”.

Programar está desprestigiado por varias razones :

Las universidades menosprecian la programación
Existen centros que pueden enseñar a alguien los fundamentos básicos de la programación en unos pocos meses.
Recalco lo de básicos, porque se tardan años en adquirir la experiencia necesaria para poder escribir correctamente un programa medianamente grande y complejo.
Si sólo enseñaran a programar, las universidades se verían en igualdad de condiciones con los centros de menor nivel. O eso creen…
Lo cierto es que en las universidades (en general) no hay mucha gente que sepa programar. Me refiero a que hayan estado involucrados en programas grandes (del millón de líneas para arriba). Así que la mayoría de los profesores enseñan lo que saben: o sea, mucho de otras cosas que no son programar.
Lo mismo pasa con otras áreas, te calzan mamotretos de álgebra relacional, porque, en realidad no tienen mucha idea de Oracle.
Lo fácil llegado este punto, es menospreciar la programación como algo secundario, para no estar en inferioridad de condiciones con los centros que sólo enseñan a programar.

Aquí programa cualquiera
Ir a clase y tener un título no es más que un simple barniz. Hasta que no te las ves y te las deseas desarrollando y manteniendo una aplicación compleja no sabes en realidad nada de nada.
Pero a cualquiera le llaman “programador”.
Lo mismo que si te hubiesen puesto 100 horas en el Flight Simulator para luego darte los mandos de un Airbus.
Creo que deberíamos dejar de usar la palabra “programador”, está tan denostada como lo estaba en su día el “Departamento de Personal”. Deberíamos inventar algo nuevo como “Artista del Software” eso me gusta más.

Los analistas no tienen que producir resultados tan cuantitativamente medibles
Cuando se escribe un programa, o funciona, o falla. En desarrollo no existe tal cosa como un 99% bien. Si te dejaste comentada una inocente línea de código y como resultado el programa se cuelga en un punto, o hay un agujero de seguridad, estás muerto.
Esto es uno de los mejores consejos que da Dilbert: nunca aceptes un trabajo cuyo trabajo sea cuantitativamente medible.
La semana pasada me pasaron un PowerPoint con una “spec” de una analista. En la pantalla de inicio faltaba el botón de login. Un “fallito trivial” ¿no? A fin de cuentas el usuario siempre puede logarse pulsando simplemente Enter (si el programador lo implementa). Ahora ponte a programar y que se te olvide el mismo botón de login, verás qué risa…

Los analistas están más próximos al cliente
Por consiguiente, lo que dice el analista va a misa, y lo que dice el programador no va (normalmente) a ninguna parte.
Pero hay cosas que no se comprenden realmente hasta que no te pones a programarlas.
Nunca en toda mi vida he leído una especificación que explique todos los entresijos y sutilezas de un programa. Y eso es normal porque ¡la especificación sería tan larga como el programa!
Por tanto hay que entender que el trabajo del analista es siempre algo intrínsecamente incompleto, que debe ser corregido y ampliado por el programador, lo mismo que el aparejador y el jefe de obra completan todos los detalles omitidos en los planos del arquitecto.

Absurda asociación entre “cuello blanco” y “cuello azul”
A veces parece como si los elevados analistas fuesen los mirlos blancos de la corporación, en comparación con los feos y huraños programadores. Cuando en realidad, hacer un trabajo descriptivo es normalmente mucho más sencillo que encontrar la solución a los problemas descritos. Si yo tuviera que escoger, mandaría a mis recursos humanos más capaces a usar el compilador, y el resto a usar el Word, por una política de minimización de daños: los desastres que se pueden causar usando mal el Word son mucho menores que los que se pueden causar usando mal el compilador.

Posts relacionados:
Ser informático no está de moda (Barrapunto)
Profesionales (Javier Cuchí)

Comentarios
1 ripense
24 enero 2007, 20:41

En la gran mayoría de las universidades, o por lo menos la públicas, los planes de estudios en las carreras informáticas no están orientadas al mundo empresarial y por esta cuestión se desatiende el formar a los alumnos en temas de programación. Los profesores suelen considerar que esto tiene que ser algo que ya dominen los alumnos, aunque ninguno haya visto en su vida un lenguaje de programación. Es más los pocos que se enseñan, son ya muy anticuados y se dan pequeños conocimientos básicos que más o menos debería servirte para adaptarte a cualquier programa. Pero es que la forma de programar y las herramientas que utilizamos han cambiado y casi nunca, o mejor dicho nunca, vas a poder utilizar la metodología que te enseñan en las clases.

Además siguen empeñados en formar a la gente en cuestiones de análisis y gestión de proyectos, pero luego cuando entras a trabajar en una empresa, ya te puedes ponerte las pilas e ir directamente a desarrollar los programas una vez de pasan las especificaciones que tienen para integrar en tus programas. El tiempo, es para las empresas, prioritario, así que a olvidarse de análisis, documentación y todos estos protocolos que te enseñan en la facultad. Además, a un jefe de proyecto no le vas a decir que así me lo han enseñado en la facultad. Él te va a decir que esto son lentejas, y que cuando tenga tiempo libre, si quieres, puedes perder el tiempo en lo que has aprendido, pero de momento, primero a tragarte el código y sí se produce algún error, ya sabes, a buscar el origen del problema y ponerle un parche lo antes posible.


2 Sergio Montoro Ten
24 enero 2007, 21:11

A eso que describes yo lo llamo la táctica de Rocky Balboa: sales al cuadrilátero y paras los golpes con la cara lo mejor que puedes hasta que el otro se cansa de atizarte y ganas por puntos :-D


3 Guti
25 enero 2007, 10:37

Has dado en el clavo Sergio.
Coincido totalmente contigo.


4 Juan Palacio
25 enero 2007, 21:39

Completamente de acuerdo Sergio.
Para la mayoría de los directivos, gestores de RR.HH., consultores, “managers” en general, los programadores son “recursos” que se miden por personas/mes para trazar presupuestos o planes de negocio.
(Creo que esto es así para los directivos que proceden de preparación de “management” y no “técnica” pero esto es una teoría.)

No entienden, y consideran que estoy loco si les digo que lo más difícil será conseguir a la o las personas adecuadas para tal proyecto ?????
¿Cómo que será difícil? (piensan)
No estoy hablando del product manager o del director comercial, sólo estoy hablando del programador.
Supongo que dudarán incluso de mi valía como consultor-asesor.
En fin, que te voy a contar que no sepas.

Un saludo.


5 morpheo
26 enero 2007, 20:55

Totalmente de acuerdo contigo. Yo no lo hubiera explicado mejor. Enhorabuena


6 Alfonso Jiménez
27 enero 2007, 03:37

Me ha gustado mucho. Sobre el punto de “Aquí programa cualquiera”, decir que más vale el saber hacer que cualquier título. Yo al menos lo valoro más. Hasta que no se está metido en la “guerra” no se puede decir que somos soldados.

Un saludo!


7 Elena
27 enero 2007, 07:22

Me parece que programar es fundamental y no cualquiera programa.
Salí de una Universidad donde no me enseñaron a programar si no lo básico, mi carrera es enfatizada al análisis y diseño de datos, en Quebec Canadá me piden experiencia en Java y Oracle este ha sido mi obstáculo para trabajar, tengo la barrera del idioma, trabajo en algo que es totalmente diferente a mis estudios.


8 demimismo
27 enero 2007, 08:48

Yo no estoy de acuerdo en todo. Creo que si en la Universidad no te enseñan a programar es precisamente por lo que dices: programar es algo que sólo puede aprenderse realmente en la práctica, en el campo de batalla. No me parece bien lo que dices sobre que los profesores no saben programar. No me parece cierto y puedo darte bastantes contraejemplos.

Pretender que aprendamos a programar en 4 o 5 años de carrera, teniendo que atender a otras asignaturas (algunas cuestionables, estoy de acuerdo) es una meta un poco jodida.

Yo estudié ingeniería informática, ahora soy programador (como muchos otros compañeros míos, casi todos) prácticamente todo lo que se sobre programación lo he aprendido por mi cuenta. En la carrera me enseñaron Free Pascal, un lenguaje sin aplicación práctica pero que me ha ayudado a comprender las bases de la programación, eso me ha servido para hoy día defenderme bastante bien en Ruby, Python, PHP y Javascript que son las herramientas que utilizamos todos los días en el trabajo, personalmente no tengo el más mínimo miedo a cambiar de lenguaje (muchos de los que han estudiado “Programación en PONGA_AQUI_EL_LENGUAJE” en ciclos formativos o cursos por ahí no pueden decir lo mismo).

Yo creo que el problema real es que la programación no está bien remunerada, además las agendas de los proyectos de desarrollo se calculan de espaldas a los propios programadores, por lo que se hacen métricas absurdas y absolutamente alejadas de la realidad, cosa que pagamos nosotros con muuuuuuuchas horas extra.

Y esos son mis dos céntimos de euro :-)


9 thesen
27 enero 2007, 08:57

Yo creo que tienes un problema de enfoque. De siempre he estado del lado de tu “programador” y en contra de tu “analista”, pero porque siempre me ha parecido mas entretenido programar que decir como se programa, pero te falta un detalle importante.

De siempre ha habido discusiones sobre Ingenieros y “Técnicos”, por darles un nombre, y siempre terminan en los segundos acusando a los primeros de titulitis. Yo veo necesaria esta titulitis. Al igual que ves lógico que un arquitecto diseñe una casa y no sean los obreros los que la vayan haciendo según su experiencia, debería parecerte lógico que un Ingeniero diseñe una aplicación a que la vayan haciendo programadores. Y créeme, un obrero con experiencia sabe hacer cálculos de estructuras a ojo.

Imagínate esta situación. Contratan a un programador de los autodidactas (del tipo que yo fui en su momento) para realizar una aplicación para un hospital. ¿Qué pasa si la aplicación falla? Es cierto que un autodidacta podría haber aprendido otras habilidades y no solo a programar, pero un ingeniero seguro que sabe hacer un análisis de requisitos y un análisis de riesgos.

Sobre la universidad y las carreras, sólo puedo decir que hay que entender su objetivo. En mi universidad se hace énfasis en la programación, por cada asignatura tenemos 4 prácticas, aunque cortas según tu criterio ya que sólo tienen unos pocos miles de líneas, pero las prácticas sólo sirven para una cosa: reforzar los conocimientos teóricos.

En clase de Algoritmos, nos enseñan que Dijkstra tiene un coste O(R logV) y en Redes nos enseñan como está diseñado un paquete del protocolo de la capa de enlace, en prácticas medimos los tiempos de Dijkstra y mandamos paquetes ensamblados por nosotros mismos.

¿Es útil saber esto a nivel teórico? Sí. Sabiendo el rendimiento de un algoritmo puedes saber cuando emplearlo en caso de ser importante la optimización en tiempo o en espacio, algo que últimamente está peor valorado que ser programador. Con las demás asignaturas pasa lo mismo, hay siempre una razón por la que se estudia. Si se estudia álgebra relacional no es porque el profesor no sepa Oracle (que puede ser), es porque si sabes álgebra relacional entiendes el modelo relacional y por lo tanto serás capaz de diseñar un sistema de base de datos relacional o por lo menos entenderlo lo suficiente para saber como trabaja uno.

¿Es necesario comprobarlo a nivel práctico? No estrictamente, pero si conviene para familiarizarse con las herramientas del oficio. Los análisis de rendimientos en algoritmos se hacen sobre pseudocódigo, no sobre el tiempo de ejecución real y los protocolos de red están ya bien definidos. Para mi la programación es un medio, no un fin.

En resumen, al igual que no dejarías que un albañil con experiencia, incluso uno que haya leído libros de arquitectura, construyera tu casa ni que un mecánico te diseñara un motor, no deberías dejar que un programador, que sólo sabe programar, diseñe una aplicación. ¿Te fiarías de un médico autodidacta?

Yo, en una empresa, colocaría a los que tienen mayor capacidad de análisis a diseñar y los que se saben los trucos del oficio a programar. Si me das a elegir dónde me colocaría yo, sería analista-programador para no ser mandado y poder programar. Si me tengo que decantar por uno o por otro, seguramente programador.

Un saludo.

PD: Si alguien se aburre que conteste, hay mucho que he dejado en el tintero :P


10 quicksorter
27 enero 2007, 11:33

Enhorabuena por el artículo. Estoy de acuerdo con todo excepto con los comentarios acerca de la universidad.

Las carreras de informática están orientadas más a teoría y metodología, por algo son carreras. Yo no sabría muy bien que asignaturas eliminar para hacer hueco a asignaturas de lenguajes de programación la verdad. Tal y como comentas a programar de verdad sólo se aprende formando parte de un proyecto de envergadura. De modo que a mi modo de ver no se trata entonces de un problema con los planes de estudios, los cuales yo veo bien puesto que te dan bases matemáticas, científicas y empresariales útiles que no vas a aprender por tu cuenta, sino más bien puede que se deberían potenciar las prácticas hasta el punto de que pase como en medicina/enfermería donde están metiendo la cabeza desde el principio.


11 Xurde
27 enero 2007, 12:14

De verdad crees que no se pueden diseñar algoritmos eficientes sin saber Algebra Relacional, Calculo o Fisica?
El problema entre Ingeniero Informatico y Programador es el mismo que entre Ingeniero de Automocion y Mecanico… el mecanico siempre se va a quejar de como esta hecho algo porque se estropea y tiene que arreglarlo, y el ingeniero pensara que esa era la mejor solucion pq aunq se rompa tiene 50 ventajas sobre la otra.
A veces no hay una solucion buena sino una solucion menos mala.
Si los analistas supiesen programar y programasen los programadores no tendrian trabajo.
En todo proyecto hace falta una cabeza visible que tome las decisiones a gran escala (otra cosa es que esta persona se merezca realmente mas remuneracion o no).
Desde siempre ha estado mas valorado el trabajo “creativo” (como de creacion, no de artista) que el trabajo manual y fisico ya que el trabajo manual y fisico lo puede hacer cualquiera con entrenamiento y el creativo no todo el mundo es capaz de realizarlo.


12 quicksorter
27 enero 2007, 12:48

Xurde:
Cómo demuestras formalmente la eficiencia de una algoritmo sin análisis matemático ? A ojo ?? Con benchmarkings dudosos?? Con herramientas que sí han diseñado/programado gente con esos conocimientos?
¿Cómo desarrollas para un autómata sin mínimos conocimientos de física y lógica booleana ?
¿Cómo diseñas bien una base de datos sin mínimos conocimientos algebraicos?

Claro que puedes diseñar algoritmos eficientes sin formalidad pero también puede resultar que crees que son eficientes y no lo son, pero el volumen actual te hace pensar que sí lo son.

No entiendo a quien pone en duda la utilidad de ciertas disciplinas en la programación. Echad un ojo a la formación de grandes programadores. Por no hablar de quienes verdaderamente han hecho avances en esto de la programación.

Llevemosolo al absurdo. Si una base científico-técnica no es útil e incluso imprescindible en ciertos casos, ¿qué me quieres decir? ¿Que es incluso perjudicial? ¿Qué da lo mismo pq nunca se aplica? ¿Ni siquiera unos mínimos conocimientos de matemática discreta?

Vamos, que entiendo y estoy de acuerdo con todo lo que dices excepto con tu primer comentario.

Ojo, no digo que haya que pasar por la universidad obligatoriamente para ser un buen programador, pero sí creo que como mínimo debería preocuparse de adquirir ciertos conocimientos básicos que sin duda marcarán la diferencia.


13 Mav
27 enero 2007, 12:58

Una vez puestos a tratar este tema, voy a ir a mas allá.
Estuve trabajando en Madrid para una multinacional de programador, allí se rifan a la gente,da igual que vengas de ciencias que de letras, todos sirven para programar, un beca básica y te lanzan al mundo laboral, pues bien, he visto caer y caer gente, a quien le cabe en la cabeza que un químico,físico,diplomado en empresariales,filósofo!!!,vaya a aguantar trabajando como programador mucho tiempo??, pues eso es lo que está pasando, algunos lo llaman meterse en el área profesional que no les toca, simplemente por llenar currículum,y no se dan cuenta que esta gente se irá de la empresa más pronto o más tarde dejando un “código” sucio e imantenible, que pobre del programador (con titulación claro está) que tenga que hacerse cargo de todo lo que allí se puede encontrar (cocodrilos,lagartijas y todo tipo de alimañas que esta gente deja en los proyectos), no se si lo habréis sufrido, pero la cantidad de código basura que deja esta gente es infumable, yo personalmente, en mas de una ocasión me he echado las manos a la cabeza viendo tanta porquería y he llegado a dudar que las aplicaiones corrieran es un estado decente.Si ya es difícil cómo se comenta,formarse como programador aún siendo informático, y hace falta años de experiencia para tal fin, e incluso encontrar buenos programadores aún siendo especializados, cómo se puede confiar que un estudiante de letras vaya a reliazar un buen trabajo en campos de ciencias?, por poner un ejemplo, me dan una beca de medicina y me pongo a recetar a pacientes, la que se podría liar, pues tenemos lo mismo en el mercado, aplicaciones enfermas y llenas de errores, pero que mas da, al fin y al cabo a las empresas (managers) les interesa que salgan a producción y colgarse las medallas. Y el programador cada vez + desprestigiado y mal pagado, claro , como hoy en día cualquiera puede ser “programador”..., he conocido muy buenos programadores, que disfrutan con su trabajo, y por supuesto, eran informáticos titulados y aficionados o titulados de otras carreras con beca de formación.Es cierto que tambíen no hay tanta gente para programar como demanda el mercado hoy en día, pero también es cierto que a su vez se está desprestigiando esta ocupación ya que todos los que salen de este mundo sólo tiene que críticas hacia él, muchas horas y mal pagado.


14 unhugo
27 enero 2007, 13:39

“Los desastres que se pueden causar usando mal el Word son mucho menores que los que se pueden causar usando mal el compilador.”
Con el word se pueden cometer errores mucho más difíciles y terribles que con un IDE. Solo usa tu imaginación.


15 thesen
27 enero 2007, 13:49

Una matización a mi comentario, al de xurde y al de quicksorter: Un título es un mero trámite. Todo lo que una persona sabe no es por la carrera que ha hecho, ya sea universitaria o de formación profesional, sino por lo que se ha esforzado en aprender las cosas.

Si mañana me diera por ahi y cogiera todos los libros de anatomia, patología, biología y demás podría saber tanto de medicina como un médico de carrera, pero a nadie se le ocurriría venir a mi para hacerle una operación, a pesar de haber adquirido los mismo conocimientos que un médico. El título de médico se lo dan a las personas que han pasado un cierto control, la carrera y sus examenes.

Lo mismo se puede aplicar a otras carreras, Ingeniería Informática incluída.

Un saludo


16 quicksorter
27 enero 2007, 14:22

thesen:

Precisamente lee la última línea de mi comentario:
“, no digo que haya que pasar por la universidad obligatoriamente para ser un buen programador, pero sí creo que como mínimo debería preocuparse de adquirir ciertos conocimientos básicos que sin duda marcarán la diferencia.”

Yo hablo de conocimientos, en ningún momento hablo de títulos. Lo que ocurre es que un título de una carrera científico-técnica garantiza unos conocimientos que de otro modo son difíciles de demostrar.
Sí conozco casos de auténticos autodidáctas que se han formado no sólo en programación sino también en matemáticas por ejemplo, pero desgraciadamente no es lo habitual…


17 ingenierocabreado
27 enero 2007, 15:16

En la Web www.ingenierosdeprimera.com

hay un importante debate sobre la degradación de los estudios de Informática en España, quizá movido por oscuros y extraños intereses.

Mas allá de la “escuela de la vida” lo cierto es que la caída en picado de sueldos, calidad y prestigio del sector informático va a pasar una importante factura al país.


18 Chily
27 enero 2007, 17:18

Soy argentino y aca pasa exactamente lo mismo. Hay que ver la calidad de programadores que existe y con los que trabajo (yo soy programador) y ver la ineptitud de ciertos jefes de proyecto. Para que se den una idea, un sueldo de un programador (bueno .. .muy bueno de los mejores que conozco) esta mas o menos a la mitad de un jefe de proyecto (malo … malo .. de lo peor que conozco) .. una verguenza.
Aqui Las universidades menosprecian la programación
Existen centros que pueden enseñar a alguien los fundamentos básicos de la programación en unos pocos meses.
Recalco lo de básicos, porque se tardan años en adquirir la experiencia necesaria para poder escribir correctamente un programa medianamente grande y complejo.
Si sólo enseñaran a programar, las universidades se verían en igualdad de condiciones con los centros de menor nivel. O eso creen…
Lo cierto es que en las universidades (en general) no hay mucha gente que sepa programar. Me refiero a que hayan estado involucrados en programas grandes (del millón de líneas para arriba). Así que la mayoría de los profesores enseñan lo que saben: o sea, mucho de otras cosas que no son programar.
Lo mismo pasa con otras áreas, te calzan mamotretos de álgebra relacional, porque, en realidad no tienen mucha idea de Oracle.
Lo fácil llegado este punto, es menospreciar la programación como algo secundario, para no estar en inferioridad de condiciones con los centros que sólo enseñan a programar.

Aquí programa cualquiera
Ir a clase y tener un título no es más que un simple barniz. Hasta que no te las ves y te las deseas desarrollando y manteniendo una aplicación compleja no sabes en realidad nada de nada.
Pero a cualquiera le llaman “programador?.
Lo mismo que si te hubiesen puesto 100 horas en el Flight Simulator para luego darte los mandos de un Airbus.
Creo que deberíamos dejar de usar la palabra “programador?, está tan denostada como lo estaba en su día el “Departamento de Personal?. Deberíamos inventar algo nuevo como “Artista del Software? eso me gusta más.

Los analistas no tienen que producir resultados tan cuantitativamente medibles
Cuando se escribe un programa, o funciona, o falla. En desarrollo no existe tal cosa como un 99% bien. Si te dejaste comentada una inocente línea de código y como resultado el programa se cuelga en un punto, o hay un agujero de seguridad, estás muerto.
Esto es uno de los mejores consejos que da Dilbert: nunca aceptes un trabajo cuyo trabajo sea cuantitativamente medible.
La semana pasada me pasaron un PowerPoint con una “spec? de una analista. En la pantalla de inicio faltaba el botón de login. Un “fallito trivial? ¿no? A fin de cuentas el usuario siempre puede logarse pulsando simplemente Enter (si el programador lo implementa). Ahora ponte a programar y que se te olvide el mismo botón de login, verás qué risa…

Los analistas están más próximos al cliente
Por consiguiente, lo que dice el analista va a misa, y lo que dice el programador no va (normalmente) a ninguna parte.
Pero hay cosas que no se comprenden realmente hasta que no te pones a programarlas.
Nunca en toda mi vida he leído una especificación que explique todos los entresijos y sutilezas de un programa. Y eso es normal porque ¡la especificación sería tan larga como el programa!
Por tanto hay que entender que el trabajo del analista es siempre algo intrínsecamente incompleto, que debe ser corregido y ampliado por el programador, lo mismo que el aparejador y el jefe de obra completan todos los detalles omitidos en los planos del arquitecto.

Absurda asociación entre “cuello blanco? y “cuello azul?
A veces parece como si los elevados analistas fuesen los mirlos blancos de la corporación, en comparación con los feos y huraños programadores. Cuando en realidad, hacer un trabajo descriptivo es normalmente mucho más sencillo que encontrar la solución a los problemas descritos. Si yo tuviera que escoger, mandaría a mis recursos humanos más capaces a usar el compilador, y el resto a usar el Word, por una política de minimización de daños: los desastres que se pueden causar usando mal el Word son mucho menores que los que se pueden causar usando mal el compilador.


19 gpeterpan
27 enero 2007, 23:31

Hola, a mí sin embargo me parece que el artículo es la típica pataleta del programador que no sabe que programar tiene que ver mucho con el algebra y no con los lenguajes de programación. Mira ¿si no sabes que para aprender a programa oracle necesitas del álgebra lo tienes jodido? Estoy 15 años programando (con 40000 clientes a mis espaldas) y ¿Sabes a la conclusión que he llegado? Que debería saber muchas más matemáticas que lenguajes de programación.

Si sé algebra sé programar en todos los sistemas de bases de datos, en todos los lenguajes de programación. Las matemáticas sirven para poder saber y demostrar matemáticamente que el sistema es una mierda o es cojonudo, porque no es que tenga que aprender el sistema, sino que por el contrario yo demando al sistema lo que debe hacer para poder desarrollar mis objetivos.

La mejor definición que he escuchado de un informático se lo escuche a Dijkstra: “Un informático es un matemático especializado en sistemas formales”. Te recomiento que leas: Sobre la crueldad de enseñar ciencias de la computacion.

La verdad es que empieza a ser cansino escuchar a los programadores que si este lenguaje es cojonudo, que si este es una mierda. Sabiendo algebra sabes todos los lenguajes. Java tarde una tarde en saber programar. Por tanto, que es importante, saber programar esto o ese sistema, este o ese lenguaje, o saber diseñar. Si diseñar, esa gran disciplina olvidada, incluso en la universidad.

Por último, decirte que programar NO ES UN ARTE, joder, es una ciencia basada en muchos teoremas matemáticos y te puedo demostrar matemáticamente(en concreto con teoria de conjuntos) si tu algoritmo es una mierda o una delicia, si tu tabla de base de datos cumple con los requisitos o no.

Para ser informático como mínimo debes saber lo que es la Teoria de la información, La Teoria de lenguajes y Autómatas, La teoria de Conjuntos (que por cierto es necesaria para un buen diseño de Base de datos), La teoría de Grafos, y por supuesto el Diseño Orientado a Objetos (que esto no quiere decir que basta con poner class en una estructura para creer que estas haciendo DOO).

Tienes razón en una cosa: La universidad no ayuda a ver efectivamente esa relación entre las matemáticas y la programación o el diseño de sistemas de la información (que es lo que hace un buen informático). Porque entre otras cosas no saben relacionar sus teorias con las prácticas necesarias para enfrentarte a un problema real.

Espero que el artículo de Disktraj te abra los ojos como me los abrió a mí, aunque tengo la sensación que eres el típico programador que dejó a medias sus estudios para trabajar en vete tú a saber donde.

Un saludo y espero que mis palabras te sirvan para algo.

Por cierto, para mi los analistas ni existen en el universo informático. Estos son unos meros especuladores de sistemas. Venden humo como cualquier feriante de pacotilla.


20 quicksorter
28 enero 2007, 00:05

gpeterman no puede llevar más razón.

Sólo añadiré que no creo que sea casualidad que quienes no quieren ver la programación como algo formal, de la rama científico-técnica y que requiere ciertos conocimientos de dicha rama por tanto, son precisamente quienes no han pisado una universidad, la pisaron y le cogieron manía o sólo leen libros en plan la duodécima edición de Java foo.bar.

Así nos luce el pelo señores.


21 Sergio Montoro Ten
28 enero 2007, 16:42

El primer programa que vi en mi vida decía:

FOR r = 1 TO 20
CIRCLE 80,50,r
NEXT r

Era una subrutina para un ZX Spectrum que me había regalado mi padre.
Yo tenía entonces 11 años y, como no sabía lo que era una variable, no entendía porqué el programa pintaba círculos concéntricos en la pantalla.

Está claro que no se puede escribir un compresor como WinZip si no se conoce antes la teoría de la información en la que se basa el algoritmo.

En casi todas las ingenierías hay ingenieros teóricos y prácticos. Hay físicos que especulan sobre cuerdas, y personas que trabajan analizando datos de los aceladores de partículas. Cada uno de ellos cree que su aportación es la fundamental, pero lo cierto es que sólo de su unión pueden surgir los verdaderos avances en física.

Siento un profundo respeto por genios como Dijkstra o Knuth, pero discrepo en su definición, un informático no es un matemático especializado en sistemas formales. Y diré más, lo que diferencia a un programador bueno de uno excelente no es la capacidad para formalizar un problema de forma soberbia, sino la capacidad para buscar soluciones creativas a problemas aparentemente ilógicos. Me refiero a la gente que hace programas de los que se venden en el mercado, no a los que teorizan sobre cómo deberían ser esos programas.

Yo sí creo que programar es un arte. Nadie se atreve a certificar por escrito que un programa funciona y está libre de errores, porque no se conoce ningún método formal para hacerlo. Incluso desafios aparentemente simples como el problema de la parada de Turing se sabe y está demostrado que son irresolubles.

Programar es un poco como pilotar: hay métodos y técnicas y n-mil herramientas de ayuda a la navegación y mecanismo de seguridad. Pero el avión no “vuela solo” como la gente quiere creer para sentirse segura, si el piloto se equivoca, pueden morir todos.


22 quicksorter
28 enero 2007, 19:30

Programar no es arte. De hecho, cuando se habla de “The art of programming” en realidad se hace redefiniendo la palabra arte. Es decir, el “arte de programar” no es un arte.
Un programa no es una obra de arte puesto que no se hace para ser contemplado por el espectador al estilo de una escultura o una pintura.

Es difícil confundir ciencia, tecnología y arte, a menos que nos tomemos la licencia de llamar arte a lo que nos venga en gana. Una solución a un problema arquitectónico, visto por otro arquitecto, le puede parecer creativa y puede decir coloquialmente que es arte, pero no lo es, es una solución de ingeniería punto. Si además esta solución viene con unos adornos, texturas etc, entonces sí podremos hablar ahí de arte. De modo que estaremos ante una obra que tiene parte de ingeniería y parte artística.

Si programar fuera un arte, se estudiaría en Bellas Artes y no en Facultades de Ciencia o Ingeniería…

Por otro lado Sergio me desconcierta tu frase: “Nadie se atreve a certificar por escrito que un programa funciona y está libre de errores, porque no se conoce ningún método formal para hacerlo.”

Claro que no puedes certificar que un programa esté libre de errores pero ¿eso lo convierte en obra de arte?.
Tu ejemplo sobre pilotar tampoco ayuda mucho porque pilotar tampoco es arte.

Programar tiene una innegable base formal por detrás. Lo que ocurre es que a cierto nivel nos podemos permitir el lujo de obviarla soltando incluso lindeces al estilo: “De verdad crees que no se pueden diseñar algoritmos eficientes sin saber Algebra Relacional, Calculo o Fisica?”
Me recuerda a uno que me contó que tenía sus propios algoritmos para ordenar listas (él los llama arrays directamente obviando la sutil diferencia claro) y que eran realmente rápidos. De modo que me repetiré diciendo que no vendría mal a muchos comprarse algún libro de EDAs (la punta del iceberg) en lugar de preocuparse tanto por las herramientas y frameworks.


23 alvin
29 enero 2007, 15:59

Pues programar es un Arte.

Porque de tu arte a mi arte, prefiero mi arte. :D


24 maxi
29 enero 2007, 16:59

Hola, muy interesante el tema. Yo comparto algunas cosas y otras no. No creo que sea necesario tantos algoritmos y matematicas para hacer un buen programa , vayamos un poco a los hechos. Microsoft es la empresa numero uno del mundo y Bill Gates uno de los grandes programadores, este hombre se ha ido de la universidad porque se aburria, hay otros casos donde son cientificos o directamente idoneos. La universidad es importante porque te abre la mente a otras cosas mas, pero no es un requisito para ser un buen informatico ni mucho menos. Soy gerente de sistemas y tengo mas de 15 años en esto, he tenido excelemtes profesionales que algunos eran titulados y otros no, y algunos de estos no titulados han hecho sistemas de mision critica para nuestra organizacion. Lo importante es aprender y saber, no solo de programacion sino de todo y cuanto uno mas sabe en informatica mas le pagan :). No comparto las comparaciones con medicos o arquitectos, habra sistemas muy criticos que puedan afectar las vidas humanas pero la mayoria no son de esa indole, con lo cual la comparacion no es util ya que tanto un medico como un arquitecto ponen en riesgo vidas humanas. Soy MVP en SQLServer y he visto a cada ingeniero en sistemas en hacer bdd que da terror, tambien he visto a otros hacer excelentes desarrollos y diseños.


25 Konietzko
29 enero 2007, 18:31

Bueno. Se que mi opinion sera seguramente despreciada, por no estar en el olimpo de los ingenieros, pero bueno, ahi va.
Soy programador. Hice el Ciclo Superior de Desarrollo de Aplicaciones Informaticas en un Instituto. Todo lo que decís, en mi modesta opinión, tiene un fallo de base. No sois capaces de reconocer, que informáticos en general y programadores, en particular, somos los mecanicos y fontaneros del futuro. Y aquellos en quienes se ha reflejado antes, es en los programadores. La profesión ha perdido “glamour social”, por que en mi opinión, jamás debió tenerlo. Soy programador, y me gusta mi trabajo, pero no es mas que una herramienta para resolver problemas, en un mundo cada vez más complejo. Como lo fueron en su día, los primeros hombres que supieron construir y reparar un motor de combustión interna o un entramado de cañerías. El sueldo de un programador, no tiene que ser alto ni bajo, sino simplemente, DIGNO, para poder vivir dignamente, acorde con el trabajo que realiza. Queréis sueldos que marquen la diferencia, a la vez que “despreciais” el de un mecánico, por que no queréis daros cuenta, de que es exactamente lo mismo. Ahora bien, personalmente, aunque lo que voy a decir va a levantar ampollas… Ahi va. Creo firmemente, que los licenciados de la ingenieria, deberían ser los analistas y directores de proyectos, con la gente que ha hecho el modulo, como programadores, por que eso es lo que se nos enseña. Y eso es lo que sabemos hacer. Dame un lenguaje de programacion y lo dominare en dias. Pideme que diseñe y lo haré. Supervisado por un correcto analista. Y también creo que la ingenieria tecnica deberia desaparecer, por que me parece redundante, existiendo los tecnicos, además de ser competencia que no tiene mucho sentido, teniendo en cuenta como se miden las titulaciones en el resto de europa. en fin, no tengo nada mas que decir. Espero no haber molestado a nadie. Solo doy mi opinion de profesional.


26 quicksorter
29 enero 2007, 19:13

Konietzko sólo te quería comentar que en realidad la Ingeniería Técnica está bastante más cerca de la licenciatura que de la FP2 sin ser esto ánimo de despreciar la FP2 que yo mismo tengo también. De hecho, con los nuevos planes de grado, las ingenierías técnicas se homologan a Grados creo.

Además, creo que como en todo hay programadores y programadores. Es decir, no creo que sea lo mismo programar un sistema en tiempo real que programar un módulo para un CRM por ejemplo.

Creo que sería incluso positiva cierta regulación acerca de las competencias de unos y de otros pero sin caer en el error de menospreciar a profesionales más que reconocidos. Ahora mismo no se exige formalidad alguna en un proyecto de software, lo cual es bajo mi punto de vista una causa de desprestigio del sector puesto que desde fuera da la sensación de que aquí nadie se responsabiliza de los proyectos. Un proyecto de software no se puede garantizar al 100% su fiabilidad pero siguiendo una serie de protocolos y fases, contempladas en la ingeniería del software se pueden garantizar unos mínimos que de otro modo quedan en el aire.


27 maxi
29 enero 2007, 19:38

Hola quicksorter, coincido en que hay que regular pero ojo con esto, vos podes ser ing en software y hacer muy malos diseños, de hecho a mi me ha pasado de tener que despedir a una ing en informatica por los desastres que ha hecho. Para poder ser mas respetado el trabajo se deberian definir standares y cada producto que salga al mercado tener una evaluacion por un ente internacional donde le asigne de alguna manera estrellas, es como los hoteles, los hay de 1,2,3,4 y 5 y vos como cliente sabes que quiere decir, con esto no quiere decir que uno de 1 sea malo y uno de 5 sea excelente sino que para poder tener 5 debe cumplir con ciertos requisitos. Si esto mismo lo aplicaramos al software nuestros clientes podrian saber que estan comprando, claro todo esto aumentaria los costos ya que se necesaria enviar datos a un organismo para que lo ceretifique y nos de el nivel, pero.. Yo he vispto excelentes trabajos hechos por contadores y tambien por ing en sistemas. Creo que habria que dividir las aguas un poco, coincido que para hacer un sistema para la NASA o un robot o un sistema para la medicina o el desarrollo de un microprocesador se necesite de un ingeriero, ahora para hacer un sistema de gestion quizas hasta sea mejor un contador con muy buenos conocimientos de informatica. Tambien hay que saber que no hay una manera de hacer las cosas y que se puede llegar al mismo camino por diferentes vias y pueden hasta estar bien ambas, entonces ya esto piede lo de ciencia, es un poco de ciencia y creatividad, como decia un profesor mio: 1 + 1 hay veces que da 2 en sistemas :)


28 Manuel
30 enero 2007, 16:30

Estoy de acuerdo contigo…

Aquí el puesto de programador se ve como el del peón en una obra, es el puesto más bajo y solo los menos preparados o con menos experiencia lo hacen…

Sin embargo, un amigo que estuvo trabajando en Intel durante varios años, me contaba que allí las cosas eran distintas.
Aún teniendo una categoría alta, dedicándose a dar charlas por toda Asia sobre el producto que había creado, él seguía programando y dando soporte.
Y allí estaba muy bien visto… un trabajador podía tener 40 años y seguir programando, sin ningún problema, al tiempo que ganaba un buen sueldo.

Todo lo contrario que aquí, donde al programador se le paga menos porque se considera que su trabajo es menos importante que quien únicamente se dedica a escribir con el Word.

En las Universidad, efectivamente, el problema es que el profesorado no tiene experiencia real trabajando en grandes proyectos.
Como mucho han hecho algún pequeño programa en la Universidad, y están muy lejos de lo que realmente supone el trabajo de un programador.

Debería mejorarse la coordinación entre departamentos, para que la mayoría de las prácticas se uniesen en una única práctica, donde el estudiante tuviese que aplicar los conocimientos adquiridos como si estuviese en un proyecto real.
Es decir, realizar el análisis y diseño, y luego distintos módulos pertenecientes a una misma aplicación, como forma de conocer cómo se trabaja realmente.

Y lo de las academias es de chiste… porque es cierto que cualquiera puede aprender a hacer un ‘Hola Mundo’... pero programar es mucho más complejo que hacer un pequeño interfaz.


29 pablo santos
31 enero 2007, 22:42

Acabáis de tocar uno de mis temas favoritos, y una de las discusiones inacabables en las que siempre termino enredado.

El artículo que más me gusta sobre el tema es “the code is the design” de Jack Reeves (echad un vistazo a http://www.developerdotstar.com/mag/articles/reeves_design_main.html).

Programar no es el escalón más bajo, no puede serlo, y también coincido (basado en mi propia experiencia) que hay empresas fuera de España en las que te encuentras con grandes ingenieros, y no veinteañeros precísamente, que programan, sí señor PROGRAMAN, eso sí, con un sueldo alto y coche de empresa y… ¿Por qué? Porque para tener un buen programador, hacen falta años, y no hay muchos buenos.

Hasta aquí todos de acuerdo, pero… ¿entonces cómo se mantienen las empresas basadas en gente con poca formación, o becarios infrapagados, en las que sólo se potencia el “sube o vete”? En mi opinión: por temas comerciales -> venden cualquier cosa, aunque no funcione, y negocian infinitamente contratos inacabables por software de muy bajo nivel.

En cuanto a la Universidad: yo soy crítico… a medias. En mi experiencia en la universidad (me refiero a ingeniería en informática) aprendes todo lo necesario para ser un buen programador, ahora bien, tienes que escuchar cosas de gente que dice que “el programador es como el peón de obra”, y el enfoque no siempre es el adecuado, y luego tienes que mirar muchas cosas por tu cuenta (y aquí es dónde muchos fallan, porque se limitan a “lo que se ve en la carrera y punto”, cuando realmente la universidad te abre puertas para que sigas aprendiendo). Pero se confunde a la gente con cosas como que sólo el análisis es importante y que “programar programa cualquiera”.

Entre un 35 y un 75% del tiempo de un proyecto se ocupa en construcción (McConnell, Code Complete, Second Edition), así que bien merece la pena optimizar un poco el tema. No todo son requisitos y diagramas.

Y luego hay otro punto interesante: en mi opinión (de nuevo basado en mi experiencia anterior) lo más motivador y productivo es tener diseñadores que también programen: es decir, tú puedes diseñar algo y luego otro lo implementa y tú lo suyo, pero estar implicado en ambas fases te da mejor visión, es más motivador, etc, etc. Si eres un “automáta” al que por un lado le entran especificaciones y por el otro saca código… ¡¡claro que quieres “ascender”!! ¡¡Eso es insoportable!!

Así que en los “métodos ágiles” o un poco más “desorganizados” creo que lo que se pierde por un lado en “formalidad”, se gana en motivación, implicación y creatividad, con creces.

¿Es un “arte” programar? Bueno, quizá, pero como en muchas otras facetas “artísticas” en primer lugar hay que dominar la técnica. Muchos quizá nos quedamos sólo en esa fase, porque para convertirlo en “arte” hay que ir más allá. Es por tanto “arte” en el mismo sentido en que hacer motores de fórmula 1 es arte… el dominio total de la técnica (ingeniería) y algo más… Pero no arte en plan “me pongo con mi inspiración y ya está”...

Y a pesar de lo importante que es programar (y esto me toca directamente porque es a lo que me dedico), seguimos viendo cientos de proyectos manejados con sistemas de control de versiones con más limitaciones que ventajas, sin hacer code reviews, probando “a mano”, etc, etc, etc… Ahí es en donde nosotros, desde Códice Software, intentamos aportar nuestro grano de arena, tratando de dar a los programadores de verdad la mejor herramienta para ayudarles en su trabajo.

Muy interesante el tema!


30 lrcl
5 febrero 2007, 13:07

Excelente!!!!

Interesante conocer los puntos de vista (frustaciones), de cada forista. Expongo las propias. Desde hace 17 años soy “aficionado” a la programación y lo que más me gusta es hacer código para algo que la mayoría de “programadores” no sabe hacer: ingeniería. Ya me imagino a un pobre informático tratando de resolver para “fenómenos de transoprte” o algo simple como un “método numérico para EDP”. Para mí la programación ha sido una “herramienta” en la vida diaria, tratando de dar soluciones en “fortran” o en “mathlab” lo que no puedo hacer con “sqlserver” o “mysql”.

Creo que nada tiene que ver que el “millon” de líneas de código me haga un mejor programador, para la eficiencia necesito el menor numero de “lineas”, las clases de álgebra lineal e investigación de operaciones son excelentes para tener “idea” de lo que quiero lograr. Deberían de existir cursos de “programación abstracta para todos”, resolver por algoritmos!!!. Llega a director el que mejor ordenadas tiene sus ideas y las puede compartir con los demás, entre otras “monadas” más.

Universidades!!! Gran dilema, si la universidad me hubiera enseñado a programar lo que sé, me hubiera dedicado a tocar un tambor; noconozco a alguien que conozca un excelente truco y diga “lo aprendí en la universidad”. He conocido gente muy buena y muy mala “programando” en la vida real, ya sean ingenieros, geografos, informáticos,.... y los más “hábiles” para programar son aquellos que dominan la teoria y el cerro de herraminetas que existen para tal o cual fin. Donde estudié los profesores que impartían la carrera de Ingeniería en Computación sí trabajaban en grandes compañías haciendo “programación”, que no era una universidad privada. Por cierto mi abuela es excelente “programando” sus compras anuales.

El día que “yo” crea que el trabajo de “programador” está desprestigiado, será porque “yo” lo he desprestigiado.

Pregunta: tendré que cambiar mis tarjetas de presentación que dicen “programador” por algo como: “solución y desarrollo de sistemas”???????

Si por no llevar traje al trabajo me confundirán con el que limpia los baños, mañana me compro diez.


31 jose hernandez
10 febrero 2007, 01:59

Hola quisiera me enviaran manuales, guias, apuntes lo que sea para hacer un analisis de un sistema, lo que quiero para titularme, es decir, voy a empezar a desarrollar un sistema en apache, php y MYSQL, es una pequeña aplicacion pero necesito documentarme, por ejemplo, como se hacen entrevistas, los riegos, costos, beneficion todo lo relacionado, desde logguear al usuario, etc hasta la impresion de una consulta, agradeceria la colaboracion,,., y envien informacion que me pueda ayudar a lograr mi objetivo cualquier cosa estoy disponible. este es mi correo: admirador_conocido@yahoo.com.mx y el mi compañera julia mendez julia_mendez@hotmail.com. gracias de antemano.


32 tendero_digital
15 febrero 2007, 12:27

Sergio:
Estoy contigo, programar es un arte. Pero lo llevo más allá, el arte es conseguir que la aplicación resuelva el problema. Aquí las matemáticas son necesarias, pero no son únicas.
Una analogía: para ser arquitecto, hay que hacer una carrera, muchas matemáticas, cálculo de estructuras… pero al final hay edificio bonitos y feos, edificios funcionales y otros incómodos… luego a pesar de todo el aparto matemático-teórico del arquitecto, hay una parte de inspiración y de “saber hacer” que marca las distancias.
Lo mismo con el software; eso si estoy pensando en aplicaciones que interactúan con seres humanos. La mejor solución teórica, no tiene porque ser la solución idónea.
Otro tema es la relación entre el trío de la benzina: usuario->analista->programador…


33 quicksorter
17 febrero 2007, 09:04

Salvo casos como interfaces visuales etc creo que confundís arte con creatividad. Que una solución te parezca creativa no significa que sea artística.
Como vereis aquí http://es.wikipedia.org/wiki/Arte , no figura el desarrollo de software como disciplina artística.

“el arte es conseguir que la aplicación resuelva el problema.” -> Va a ser que no, todo lo contrario amigo, el arte no tiene pq resolver ningún problema…


34 Dunkel
21 febrero 2007, 19:19

bueno, lei algunos de los posts y estoy totalmente de acuerdo desde el principio y con algunos otros posts, las escuelas no te ensenan a programar, lo unico que hace una escuela (almenos a mi forma de ver) es mostrarte lo que existe en el mundo, llamese lenguaje A o lenguaje B o bases de datos o analisis de sistemas etc…. entonces ya uno se enfoca a lo que le guste, en mi caso soy programador y si es muy molesto ver como la escuela en la que estoy cuenta con metodos tan bajos de estudio, ensenan gwbasic, con eso les digo todo…

el problema esta en algunos maestros (y digo algunos porque hay otros que son muy buenos en sus materias) que se quedan en sus tiempos de estudiantes y no avanzan, entonces ellos provocan un estancamiento en los alumnos y en las clases, almenos en los alumnos desinteresados, porque no me dejaran mentir al decir que una persona que le guste la programacion, por nada del mundo se quedara solo con lo que un maestro le dice.

todos mis conocimientos de programacion los he aprendido empiricamente, leyendo tutoriales de internet, viendo ejemplos, investigando, para mi esa es la mejor forma de aprender.


35 Sergio Montoro Ten
21 febrero 2007, 19:29

En algunas disciplinas técnicas la habilidad para resolver problemas sólo se desarrolla practicando.
Me pregunto porqué son tan conscientes de que no sirve para nada estudiar matemáticas en teoría si luego no haces los ejercicios.
Y sin embargo piensan que se puede enseñar a programar leyendo un libro y memorizando conceptos de diseño.

Sobre lo que dice lrcl, para mi, el problema no son los pequeños programas escritos para resolver problemas concretos. Sino cuando te venden lo que no es. Como dice Fuckoswski: el programa que iba a ser un Porsche y terminó siendo una bicicleta (y encima construida por expertos en patinetes).


36 Hector
24 febrero 2007, 01:39

Si eres analista-diseñador superate… aprende a programar de esta manera podrás discutir sobre codigo eficiente y saber cuanto implica cambiar un dibujito del diseño para lograr la solución deseada. Y si eres programador superate… aprende analisis y diseño y de esta manera podrás discutir sobre los riesgos que corre un proyecto si se lo realiza sin un diseño y el tiempo que podría tarda en realizar una solución sin un análisis de software


37 MoGa
27 febrero 2007, 16:33

Ahí va mi aportación a esta discusión.
En primer lugar, no estoy de acuerdo con la afirmación de que en las universidades no se enseña a programar, o que el personal docente es de baja calidad en ese sentido. En todo caso dependerá de cada universidad. Conozco experiencias de universidades públicas con un programa excelente de enseñanza, y universidades privadas mediocres a las que asisten personas que no dieron la media en la selectividad de turno.

En segundo lugar, no entiendo esta obsesión de diferenciar entre programadores y analistas. Esto también lo he visto en www.ingenierosdeprimera.com, y en tantas y tantas conversaciones. Creo que no es cierto y que en todo caso obedece a un planteamiento organizacional del pasado y que, hoy en día, no se aplica en absoluto. Creo que hoy en dia el profesional del desarrollo de software se caracteriza por ser analista y programador. Y no estoy en absoluto de acuerdo cuando desde ingenierosdeprimera se dice que programador debe ser aquel con título de FP “adiestrado? para “picar?. Me parece insultante y segregacionista.
Otra figura de este circo es la de “Consultor?, que generalmente obedece a la necesidad de cubrir el ámbito comercial de la relación con el cliente y la venta. Se trata de una persona con pocos o nulos conocimientos de desarrollo, pero con amplios conocimientos de la plataforma y del negocio del cliente. Esta persona suele estar asesorada por un analista-programador para “verificar? que aquello que ofrece al cliente es realmente viable.

Creo que la situación de precariedad actual en el desarrollo de software es un poco culpa de todos. Por un lado resulta un oficio con un alto nivel de intrusismo y con muy poca profesionalidad. La creencia de que “cualquiera programa? nos ha hecho mucho daño en general. Y creo que deberiamos fijarnos mas en otros sectores con mas antigüedad y experiencia, como los arquitectos y los médicos. Nadie en su sano juicio contrata la realización de los planos de su casa a un arquitecto “adiestrado para dibujar?. Sin embargo, somos capaces de tirar millones de euros en proyectos abocados al fracaso simplemente porqué alguien creyó que “documentar es perder el tiempo?.

Por último, creo que menospreciar el diseño y la documentación a favor de la fuerza bruta de la programación es precisamente la principal causa de esta situación de precariedad actual. Y que mejor que un símil con los médicos para intentar explicarlo: A nadie se le ocurriria exigirle a un médico un baipass coronario “para ayer?. Pero si somos capaces de comprometer la viabilidad de una empresa realizando un proyecto imposible, prescindiendo de la documentación y con mínimo diseño, con calendario y presupuesto ajustados a la mínima expresión, y con personal mal formado y mal pagado, (y temporal)….. Esta es la situación del desarrollo de software en España. Y esto es lo que hay que cambiar.


38 Endymion
2 marzo 2007, 13:17

Debo decir que este artículo es de lo más interesante, y más aun los comentarios que ha generado. Me gustaría destacar varios puntos de lo que se ha dicho, los cuales a mi entender son el eje de este debate.

1. Algunos de vosotros no teneis claro para que sirve la Ingeniería (Técnica o Superior) en Informática. Las quejas de que allí enseñan muy poco de programación son más que ilustrativas de vuestra confusión.
Si ser “informático” fuera TODO programar entonces en la universidad seguramente no se llamaría “Ingeniería” a la carrera y durante todos los cursos habrían asignaturas orientadas exclusivamente a programar, como esto no es así está claro que un Ingeniero en Informática está formado para más que cosas que el simple hecho de ponerse a programar.

2.¿La programación es un arte? Eso se dice porque queda muy bonito decir que uno es un artista del código y tal y cual, pero como se enseña en la carrera, la programación tiene unos fundamentos teóricos e implicaciones a nivel de la máquina. Para mi un verdadero artista de la programación es aquel que hace un código eficiente, con control de errores, fácilmente mantenible y que no solo sabe las palabras reservadas del lenguaje sino que sabe cómo resolver los problemas con eficiencia.
Sea como sea esta discusión es totalmente intrascendente. ¿Qué eres una artista? Vale, pero demuestráme qué sabes hacer.

3. La dualidad programador-analista es otro de los temas que siempre surgen. Señores en el trabajo siempre ha habido jerarquía y, en teoría, los que están por encima son los que están mejor formados. Entiendo que un Arquitecto no tiene porqué saber cómo se mezcla el hormigón para que sea más resistente pero sabe CUAL es la mezcla que convendría en ese caso. Del “cómo” se encargaría otro perfil de trabajador el cual está jerárquicamente hablando, bajo este arquitecto.
Entiendo que al igual que un programador “se hace” a base de programar y programar un analista también “se hace”. Muy poca gente creo que sea buena en su trabajo nada más entrar en el mercado laboral.
Por aquí se comentaba el caso de un programador en Intel que era muy bien valorado y yo opino que evidentemente no es lo mismo ser programador en Intel (multinacional que posee la mayor parte del mercado de procesadores) que serlo en la charcutera (consultora) de turno y para colmo, española.
Todos los puestos son importantes ya que forman parte de un engranaje donde todo deber funcionar para conseguir el fin deseado, el problema es que en nuestro sector, ya desde abajo se empieza cobrando muy poco y las condiciones laborales son de lo peor.

4. La bafozia del mercado laboral español ha provocado que los ingenieros terminen realizando labores que no se corresponden con su perfil (por supuesto que las pueden desarrollar pero entiendo que no es la labor propia de un Ingeniero, aquí cada cual que trabaje de lo que quiera, nadie nos obliga).
Lo anterior sumado al hecho de que cualquiera puede programar hace que los sueldos bajen y que el empresario anteponga el beneficio económico a la calidad mediante la fórmula: “pago menos a los de abajo, aumento mi margen y me forro, total los de abajo los encuentro a patadas”

5.El hecho de que los Ingenieros Técnicos o Superiores en Informática pidan que se regularice su profesión no implica que se quiera expulsar a aquellos que no poseen un título universitario.
Ni tampoco está contrapuesto a aquellos que han cursado un grado medio de informática.
Eso si, en este mundo todo tiende a ser regularizado (antes no se necesitaba carnet de conducir, no existían escuelas de peluquería, etc, etc.) y con el tiempo, cualquier persona que se dedique a la informática deberá tener una formación en esta rama (ya sea universitaria o no).

6.Personas sin título frente a con título universitario en Informática.
Ultimamente estoy observando la tendencia de que todos aquellos que jamás pisaron una universidad o la abandonaron, MENOSPRECIAN a aquellos que si que poseen un título en Ingeniería Informática con frases del tipo: “el papelito no vale, yo tengo XX años de experiencia”, “he conocido muchos ingenierios que no tenían ni idea”, etc., etc.
Este factor también es la causa de la baja estima que los Ingenieros en Informática tienen en el mercado laboral. Evidentemente no se puede esperar que esta gente cambie su actitud por lo que la única alternativa que les queda a los Ingenieros es demostrar a la sociedad para qué están capacitados (ahora mismo ni el empleador lo tiene claro) y qué pueden aportar frente quienes no lo poseen.
Por cierto, al hacer estos juicios de valor no se tiene en cuenta de que hoy en día, muchos de los Ingenieros
trabajan a la par que estudian la carrera por lo que el argumento de los años de experiencia pierde valor.
El título evidentemente no da el conocimiento que puede dar la experiencia pero si da la CUALIFICACION para desarrollar una profesión y, como en todos profesiones existen los malos y buenos profesionales.
Personalmente si tengo que buscar un buen profesional en Informática buscaré a aquellos que poseen un título en esta rama. Dichas personas han sido EVALUADAS OFICIALMENTE.
Existen muchos pseudoprofesionales sin titulación que cuando van a las entrevistas “venden la moto” y luego resulta que son unos chapuceros.

7. La experiencia lo es todo, lo demás no vale.
La experiencia es importante pero personalmente prefiero “experiencia + título” a “simplemente muchísima experiencia”.
En el caso de la programación yo puedo tener mucha experiencia programando pero si nadie me ha formado según metodologías y procedimientos específicos, puede darse la posibilidad de que aunque sé hacer muchas cosas, éstas no las haga tan bien como yo mismo creo.
El hecho de hacer algo durante mucho tiempo no implica que sea la mejor forma de hacerlo.

Un saludo.


Acerca - Contacto - Información legal y técnica - Condiciones de uso - Noticias sobre el mundo del Desarrollo de Software.