lunes, 29 de octubre de 2012

Desarrollador software: Recomendaciones para los que empiezan

Desarrollador en empresa software:
La cruda realidad y recomendaciones para los que empiezan
"Si eres una persona eminentemente técnica, la mejor opción es entrar en una empresa pequeña, a ser posible liderada por gente joven." "Elige una tecnología (lenguaje, librerías...) y desarrolla tu idea sobre ella. Es la mejor manera de aprender. La teoría y los "hola mundo" son una cosa y el mundo real es otro. Nadie te frenará para introducir nuevas tecnologías en tu proyecto y, quién sabe, quizás puedas ganar un buen dinero con él.




Entrevistamos a un trabajador de una empresa software que prefiere mantener el anonimato dado que da un punto de vista personal y realista de su situación y no quiere que eso le suponga un problema. Aunque se trata de un caso particular, entendemos que muchos se pueden identificar con él y la empresa que le contrata.

Buenas, ¿podrías indicarnos tu formación?

Hola a todos. Soy ingeniero de telecomunicaciones por la Universidad de Sevilla, aunque realmente mi vocación siempre ha sido el desarrollo de software (para que no me llaméis intruso, jejeje). Empecé a desarrollar con muy pocos años. A los 12-13 años ya empecé a hacer mis pinitos en Basic con mi Spectrum +3, luego pasé a ensamblador para el procesador Z80 del mismo, hasta que entramos en la era PC y me lancé directamente al ensamblador x86. Ahora me considero un buen dominador del mundo Java y GWT.

Coméntanos tu trayectoria profesional para ponernos en contexto.
Profesionalmente, una vez terminada la carrera, me encontré con que la misma tampoco te permitía entrar directamente a puestos bien pagados en una empresa, ya que, en principio, en las entrevistas sólo te preguntaban por tu experiencia en el puesto concreto, la carrera se asumía o no parecía ofrecer ningún plus. Tampoco importaba si tu carrera era superior o técnica.
A través de un amigo, realicé un pequeño proyecto de 4 meses (SCADA en Java/Swing) para una empresa de ingeniería, para posteriormente acabar entrando en una consultora en la que sólo duré un mes porque inmediatamente me surgió una oferta mejor en una empresa pequeña de desarrollo de aplicaciones móviles. Estuve algo más de 2 años en esa empresa donde, como punto positivo, puedo destacar la estructura casi plana que tenía, en la que todos arrimábamos el hombro y no había tensiones por acaparar puestos mejores porque "había lo que había". Como punto negativo, se dedicaba lo justo a investigar y adoptar nuevas tecnologías porque la empresa tenía que sacar trabajo adelante para mantenerse y los proyectos se hacían principalmente con lo que ya se sabía. 

¿Cuándo diste el salto a tu empresa actual?
Por lo que te he comentado, empecé a aburrirme de hacer siempre el mismo tipo de proyecto, lo que, junto con el ansia de ganar algo más, me llevó a entrar en mi empresa actual a través de una subcontrata ("consultora"). Tuve suerte, y al pasar un año y medio, hubo una época de "fichajes" y me hicieron de plantilla. En total llevo unos 4 años en esta empresa en la que siempre he trabajado en el mismo proyecto donde utilizamos Java principalmente: EJB3 y JPA 1.0 en la capa del servidor (JBoss) y una tecnología propia de la empresa para el lado del cliente.

¿Crees que tu formación te ha preparado lo suficiente para tu trabajo?
En cuanto a desarrollo de software, obviamente la preparación en "teleco" es menos especializada que en informática, pero sinceramente, viendo los conocimientos de algunos compañeros informáticos, me parece claro que la carrera sólo te orienta, te ayuda a coger soltura en asimilar grandes cantidades de información rápidamente, pero no te prepara apenas para el mundo real. Hay demasiada teoría y muy poca práctica, cuando realmente debería ser al revés, ya que las ingenierías son prácticas por definición....

¿Qué problemas específicos le ves a esa formación poco orientada a la práctica?
Se fomenta poco el inglés, fundamental para empaparte de libros, foros, documentaciones... todo. Se anima poco al estudiante a practicar por sí mismo. En mi caso, trabajo con Java, del cual tuve una asignatura en la carrera con el que únicamente adquirí el primer contacto, pero el conocimiento de verdad lo he adquirido a lo largo del tiempo y porque me gusta programar.
Creo que es importante estar al día, investigar librerías, tener siempre algún proyecto personal en el que desarrollar tu creatividad y hacer las cosas a tu manera... También creo fundamental aprender algún lenguaje de bajo nivel, ya que veo que ahora se aprenden directamente lenguajes con gestión automática de la memoria (con recolector de basura) como Java, y la gente suele acabar programando sin tener en cuenta la cantidad de objetos que se están creando realmente en memoria. Creo que estos lenguajes han facilitado mucho la programación, pero han dado entrada a muchísimo código poco optimizado.

Explícanos cómo te tratan en tu trabajo actual, qué ves bien y qué ves mejorable. 
Compañeros
El trato personal con mis compañeros del mismo nivel en general siempre ha sido bueno. Como siempre, con algunos congenias más y con otros menos, pero si algo bueno hay en este mundillo, es que tus compañeros siempre están dispuestos a echarte una mano. Además, si la empresa es grande, hay una gran variedad de personas, lo que siempre es bueno porque hay mucha gente de la que aprender.
Con los jefes ya es otra cosa. Los más altos viven en un pedestal y sencillamente no estás a su nivel y solo eres un número. Para los "jefecillos" eres simplemente un recurso que ponen en sus planificaciones que luego entregan a los jefes de arriba, a los cuales adoran y pelotean al máximo con el sueño de en un futuro ocupar su puesto. Todo esto hay quien lo disimula mejor o peor, pero en una empresa grande, todos los estereotipos que hayáis podido leer (el trepa, el fatiga, el judas...) os los vais a encontrar seguro.
Por supuesto hay de todo, pero hay gente que tiene más asumido que para "triunfar" en la empresa y ascender, se cumple la máxima de "no sólo hay que ser bueno, sino parecerlo", mejor dicho, sólo parecerlo.

Horarios
Mi horario es de jornada partida, con una y sólo una hora para comer. Esta es la teoría. Si el proyecto en el que trabajas va bien (casi nunca), se cumplirá este horario sin problemas. Si va mal, dependiendo del jefe tendrás más o menos problemas por irte a tu hora. Hay jefes que no te dicen nada, pero si te vas a tu hora "no estás comprometido con la empresa". Otros, incluso te dirán que "hay que hacer un esfuerzo" y te pedirán amablemente que te quedes más tiempo... gratis. Los convenios laborales y el estatuto de los trabajadores son palabras prohibidas en reuniones y charlas con tu jefe...
Esto es lo que hay y punto. También puedes plantarle cara a la ley del miedo e irte a tu hora, pero ya sabes que te mirarán con lupa o incluso te darán una charla en privado (a mí me ha pasado). La mayoría de los compañeros, según su situación personal, tampoco se van a arriesgar a nada. Lamentablemente en España somos así, tragamos con todo y somos incapaces de defendernos en grupo. 

Entiendo que tus expectativas no se han cumplido, ¿buscarás otro trabajo? ¿o hay algo bueno en el actual? ¿Tras relatar tu experiencia crees que lo más oportuno es emigrar?
Supongo que estoy siendo muy negativo, pero la verdad es que, si la situación no fuera la que es (crisis), ya hubiera intentado cambiar de trabajo, pero ahora mismo creo que hay que aguantar con lo que se tiene o emigrar. Por mi parte, estoy estabilizado aquí y no me gustaría emigrar, pero para gente más joven la verdad es que supongo que es una buena opción. No puedo comentar si el mundo de la informática es mejor en otros países porque no lo he vivido, pero me imagino que a peor no se puede ir... 

¿Qué recomendarías a un estudiante de Ingeniería para conseguir su primer trabajo?
En primer lugar, creo que depende el carácter de cada uno:
Si tu idea es progresar en una empresa y acabar siendo director del departamento X, creo que lo mejor es entrar de becario en una empresa grande y tragar con todo lo que te digan, trabajar horas extras gratis, hacer la pelota a los jefes (estar alineado con la empresa)... etc, hasta ir subiendo puestos.

En cambio, si eres una persona eminentemente técnica, al que le gusta el mundo de la programación, investigar nuevas posibilidades y desarrollar sus ideas, creo que la mejor opción es entrar en una empresa pequeña, a ser posible liderada por gente joven. Al menos así estarás trabajando con tecnologías actuales y tu trabajo te permitirá aprender mucho.

Tampoco descartaría la opción, ahora que hay pocas ofertas de trabajo, de intentar trabajar sobre una idea personal. Elige una tecnología (lenguaje, librerías...) y desarrolla tu idea sobre ella. Es la mejor manera de aprender. La teoría y los "hola mundo" son una cosa y el mundo real es otro. Nadie te frenará para introducir nuevas tecnologías en tu proyecto y, quién sabe, quizás puedas ganar un buen dinero con él. Además, aunque en España menos, supongo que un proyecto personal real viste mucho en un currículum.

¿Algunas palabras para finalizar?
Espero no haber desanimado a nadie contando la cruda realidad de una empresa. También hay que reconocer que una empresa grande no es más que el conjunto de muchos proyectos y equipos más pequeños. Posiblemente dentro de una misma empresa, hay proyectos donde no se progresa nada y otros donde sí es agradable trabajar.

Por mi parte, seguiré aguantando en esta empresa hasta que la situación cambie y, en mi tiempo libre, desarrollaré mis ideas a mi manera usando las tecnologías que me parezcan más interesantes para no estancarme.

Un saludo a todos


Por si usáis twitter, hemos habilitado uno para avisar de las nuevas entradas: 
Si os gusta el contenido de este blog por favor publicitadlo para que el esfuerzo valga la pena.
Finalmente os recordamos nuestros objetivos