domingo, mayo 04, 2008

Estado del Arte

El grandísimo problema en el mundo del software es el dinero.

Y me explico: El software "a medida" resulta muy barato para las grandes corporaciones, y las empresas informáticas dedicadas al desarrollo, lejos de encarecerlo, pierden el culo por conseguir el precio más ajustado (bajo). Lo que nos lleva a varias consecuencias directas como las siguientes:

1.- Los programadores cobran poco y pronto se dan cuenta de que como realmente pueden llegar a ganar algo de dinero (que no mucho, no nos confundamos) es ascendiendo cuanto antes a analistas y jefes de proyecto. Gente que en muchos casos edita, pero que principalmente delega. Raro es encontrar en España un programador con 5 o 6 años de experiencia en alguna tecnología y más raro si lleva 10 o más (y si lo encuentras, sospecha). Si los sueldos de programadores fuesen acompasados a los de analistas, mucha gente preferiría menos responsabilidad y permanecer en la carrera técnica. Ésto desembocaría en desarrollos más profesionales, y mejores resultados de cara al cliente final, al ser estos implementados por gente experta y no por becarios, nuevos contratados o ajenos a la profesión.

Leer más


2.- Las empresas, en su afán por ofrecer la mejor oferta (económica) posible al cliente, plantean soluciones tecnológicas con equipos humanos mínimos y horas de desarrollo ridículas ajustadas. Esto hace que el tener que hacer horas extra sea algo cotidiano y que el hecho de hacerlas no resulte en ningún beneficio para el desarrollador. Sólo conozco a una persona a la que se las remuneraban y cambió de empresa con lo que no sé si le sigue ocurriendo. En nuestra profesión es algo muy normal hacer jornadas laborales de más de 12 horas y a cambio no obtenemos más calificativo que el de pringados.

Una posible ayuda a esta situación es la regularización del sector; algo que regule los contratos empresa-desarrollador y cliente-empresa. Mucha gente se opone a su creación alegando diversos motivos, siendo uno de los más frecuentes lo inestable que resulta el software que se crea. Nadie puede poner la mano en el fuego (firmar un desarrollo como si de un edificio se tratase) por un programa y si lo hace es un loco peligroso. Y tienen razón.

Hay un símil que me gusta mucho y es el de comparar un programa informático con la construcción de un edificio. Cuando a un arquitecto le piden que proyecte un bloque de viviendas debe, primeramente, conocer el emplazamiento, saber qué requisitos debe cumplir (número de viviendas, tamaños de estas, jardines y demás) para después crear un plano de la obra y un presupuesto que se adecúe a la obra objetivo.

Durante el desarrollo de la obra supongo que puede haber correcciones en el plano, pero son correcciones o modificaciones pequeñas, no modificaciones del tipo: Lo que antes eran viviendas ahora queremos que sean garajes y en lugar de 10 plantas necesitamos 20. Éso es precisamente lo que ocurre muy a menudo con el software.

Es tremendamente complicado crear un programa estable cuando el que paga no sabe lo que quiere, cuando las tecnologías en las que desarrollas son unas desconocidas y cuando los plazos resultan ridículamente escasos.

Por supuesto, a las ampliaciones de los programas ya construídos les ocurre lo que llamaríamos un "efecto dominó": Parten de unos cimientos endebles en los que han metido la mano, en ocasiones, decenas o centenares de personas distintas, personas que se han visto superadas por jornadas de trabajo interminables, desconocimiento de la herramienta de desarrollo e indefinición en los requisitos previos que se han visto obligados a colocar parches en muchos bloques del constructo. Una preciosidad, vaya.

Si los plazos fuesen realistas, se permitiese evolucionar a los desarrolladores sin la presión del dinero y el prestigio encima, y hubiese un control para garantizar la calidad del software desarrollado, los programas posiblemente fuesen mucho más legibles, más eficientes y más estables. La gente no cambiaría constantemente de trabajo, no se quemaría al trabajador y daría pie a una profesión mucho más seria que lo que actualmente existe. ¿La regularización de la profesión ayudaría a paliar algo de ésto? Quiza sí, aunque los términos de ésta habría que meditarlos a conciencia, y es un tema que da para un libro.

Cuando la gente me dice que cobro bien me da la risa. Ni con todo el dinero del mundo se paga nuestra profesión. No me extraña que año tras año los titulados que salen de las facultades de informática del país desciendan.

3 comentarios:

InsertCoin dijo...

Me encanta tu post, un análisis genial de la situación.

Siempre me ha llamado la atención que en esta profesión (y similares) no haya una major unión entre los trabajadores. Nos falta un nexo común (sindicato específico, agrupación de trabajadores?) desde el que poder hacer fuerza y conseguir la mencionada regularización. Sin esto, lo veo complicado, aunque admito ser un ignorante absoluto de estos temas (seguramente ahora me dirás que esto ya existe xD).

Unicamente discrepo un poco con el último párrafo, pero es un tema más discutible, y bastante más sujeto a apreciaciones personales.

Kineas dijo...

Cierto, se sale un poco de la tónica del escrito y no sabía si incluirlo... sólo a última hora decidí conservarlo.

Hay una web que postula la creación de un colegio de informáticos y el reconocimiento de informática como ingeniería. Aunque tú hayas hecho otra cosa, supongo que os incluye a los que hacéis firmware.

Ello es:
http://www.ingenierosdeprimera.com/

InsertCoin dijo...

Muy interesante la página, a ver si poco a poco le voy echando un ojo, que tiene información a cascoporro.