Ya soy ingeniero software…y ahora ¿que?

Me compraron un PC cuando ya era mayor, tenía unos 15 años. Mis padres no quisieron comprarme nunca un ordenador porque pensaban que debía centrarme en mis estudios y un PC afectaría negativamente a mis examenes y deberes de la E.G.B. Yo ya conocía los ordenadores, o al menos siempre que iba a casa de un amigo que tuviera un MSX, Commodore, Atari o lo que fuera me gustaba trastear. Lo de menos eran los juegos, lo que me había interesado siempre es que de alguna forma podías hacer que esos cacharros hicieran cosas. Eso me apasionaba.

nic3b1o_pc

Recuerdo que antes de que surgiera internet, al menos en casa de mis padres, cayó en mi mano un curso de Pascal que debía venir en el CD de alguna revista de entonces. Llevaba años trasteando con ficheros batch y con la ayuda y ejemplos del turbo pascal tratando de averiguar a través de ensayo y error que significaban esos comandos. Creé un par de video-juegos mezclando ficheros “.fli” con ficheros batch, pero turbo pascal se me resistía. Cuando cayó en mis manos el curso de Pascal  me encerré en casa durante cerca de una semana tratando de asimilar todo lo que me estaba contando. En una semana me había hecho un space invaders, un tío gordo que se movía por la pantalla y saltaba (el algoritmo de salto me costó) usando las librerías bgi de borland para gráficos y otras cosas que se me fueron ocurriendo.

nino-y-ordenador

La universidad fue todo un descubrimiento. Encontrarme con gente con las mismas inquietudes fue algo motivador, alguno de ellos se había programado un paint brush durante un verano en ensamblador, por hobby. Fueron 5 años apasionantes, los cuales incluso compaginé con una beca en el departamento de inteligencia artificial de la misma facultad. Nos enseñaron muchísimas cosas, la mayoría obsoletas para el mundo real, pero la base era más que suficiente para comenzar a aprender por tu propia cuenta.

350px-fiesta_friki

Creo que he sido afortunado de haber caído en grandes empresas y he tenido suerte de haber aprendido de grandes profesionales. Aún así, llegó un momento que sentía que no tenía nada que aprender. Un grave error que cometen muchos profesionales es llegar a este punto y no darse cuenta de que es simplemente un espejismo. Siempre hay algo nuevo que aprender y si no lo hay es porque te has acomodado y es hora de ir a buscar tu queso.

gato-leon

Todos los proyectos en los que había trabajado habían sido Waterfall (proceso en cascada de toda la vida), modelo en V y cosas similares. En casi todos había encontrado problemas como:

– Indefinición. No sabemos que quiere el cliente, a veces hay un contrato, muchas veces ambiguo y hay que echarle inventiva. Si tienes suerte y has realizado ya algo muy similar antes, lo más seguro es que sepas ya que es lo que realmente necesita el cliente…o no. En pocos sitios he podido preguntarle directamente al usuario final, pero tú ¿que necesitas?.

– Tiempos imposibles. Algunas empresas no cogen contratos si saben que no van a poder acometerlos. Tienen sus históricos de proyecto o sus mañas para poder tomar una decisión, porque realmente las estimaciones sólo sirven para poder tomar decisiones y para nada más.  Otras empresas directamente juegan con el tiempo para conseguir contratos : “Nosotros lo hacemos igual en menos tiempo”… quizá se refieren a:

  • “Te reduzco el alcance”, evidentemente esto podría reducir el coste y el tiempo. Pero no es lo mismo, es menos en menos tiempo. Por otro lado, quizá una de las mejores opciones si sabes que no vas a llegar.
  • Aumento el coste por ejemplo “metiendo a más personas” porque 1 mujer puede tener un bebé en 9 meses, por lo tanto 9 mujeres podrían tener 1 bebe en 1 mes…
  • “Eso se hace en dos patadas”, es decir, te reduzco el tiempo y ya otro tendrá que decidir lo que bien pueda. Lo normal es que recaiga sobre un equipo de desarrolladores que tengan que llegar echando horas extras y reduciendo la calidad… aunque no tendría por qué ser así.

project-management-triangle

– Es que el plan me ha cambiado y me he puesto nervioso. Hice un diagrama Gantt en el cuál estimé todas las tareas, la gente que necesitaba, horas consumidas. Analicé todos los riesgos y traté de aplicar mitigaciones a los mismos. Busqué los cuellos de botella, pero no se por qué, dos meses tras empezar el proyecto estamos fuera de fecha: ¡¡Alarma, olvidémonos del plan y a currar!!. A veces pasa porque hay tareas que no has tenido en cuenta, otras porque surgen aclaraciones sobre requisitos que te cambian por completo la arquitectura. Se sabe y es así, que un proyecto software es una montaña de incertidumbre, que puedes tratar de analizar e imaginar como va a salir pero que todo buen jefe de proyecto que se precie sabe que lo único que tiene claro al terminar su planificación es que ya sabe “como no va a terminar el proyecto”. Esto me hace preguntarme ¿cuanto tiempo y detalle merece la pena gastar en una planificación si sabes que va a cambiar?.

– El cliente no lo quiere. ¿pero como no lo puede querer?. Hemos hecho todo los que ponía en los requisitos. Recuerdo como freelance haber realizado una aplicación de gestión a una empresa llevada por varios hermanos. Estuve trabajando con uno de los hermanos con prototipos hasta que llegamos a exactamente que era lo que necesitaban. Cometí el error de no preguntar quien lo iba a utilizar. Lo que me encontré en la entrega fue directamente un definitivo “esto es una mierda” que dolió como no os podéis imaginar.

mierda

La mayoría de problemas que me he encontrado han sido siempre consecuencia de los anteriores. Existe otro que merece la pena destacar que es la desmotivación. Toda la vida se ha creído que la motivación se conseguía dando mas dinero, más días libres, algún regalo en navidad… es decir, enseñando una zanahoria al burro para que siga para delante, lo que es conocido como la teoría del palo y la zanahoria. A pesar de que esto es una teoría que funciona en trabajos no creativos como la recogida de la aceituna, algunos no se acaban de enterar de que el desarrollo software es un proceso de profunda creatividad.

alcanza-zanahoria

Volviendo al título de la entrada del blog, “ya soy ingeniero software… ¿y ahora qué?”. Pues para bien o para mal, te toca seguir estudiando y aprendiendo, sabiendo que nunca estarás completamente al día. Te toca aprender muchísimo sobre tecnología y sobre personas, porque al final los proyectos los sacan personas. Por eso no te pido que te olvides de que es lo que te trajo a este punto, no te olvides de tu primer PC y tu primer programa. Pero piensa que el desarrollo software es mucho más, es toda una ciencia y por supuesto, una ingeniería.

PDFicono EXTENDIDO

Anuncios

2 thoughts on “Ya soy ingeniero software…y ahora ¿que?

  1. Fantástico artículo Dani. La informática es esa gran desconocida cuya importancia real pocos conocen. Sin ella, sin esos buenísimos profesionales que intentan dar forma y llevar al “mundo real” las ideas de los usuarios, nada saldría al derecho. Siempre lo comparé con el aceite de un motor, no importa lo compleja que pueda llegar a ser tu idea o el negocio de la aplicación. Sólo podrás ponerlo en marcha si conoces las reglas del juego. Y por supuesto….en términos generales sino evolucionas, mueres. Intelectualmente es necesario buscar nuevas ilusiones, personales y profesionales. World only moves forward.

    Me gusta

  2. Muchas gracias Merche. Este artículo es una presentación. En los sucesivos meses quiero sacar algunos artículos explicando algunos conceptos que no se dan en la carrera y que tristemente en la mayoría de los sitios tampoco se suelen ver. En los últimos dos años, he tenido eso, un periodo de evolución durante la cual he descubierto conceptos y cambios de paradigmas que me han hecho darme cuenta de lo mucho que nos queda por aprender en todos los sentidos. Muchas gracias por tu comentario.

    Me gusta

Responder

Introduce tus datos o haz clic en un icono para iniciar sesión:

Logo de WordPress.com

Estás comentando usando tu cuenta de WordPress.com. Cerrar sesión / Cambiar )

Imagen de Twitter

Estás comentando usando tu cuenta de Twitter. Cerrar sesión / Cambiar )

Foto de Facebook

Estás comentando usando tu cuenta de Facebook. Cerrar sesión / Cambiar )

Google+ photo

Estás comentando usando tu cuenta de Google+. Cerrar sesión / Cambiar )

Conectando a %s