Sobre el desarrollo de Software – I

Voy a escribir un poco sobre lo que es mi profesión y lo que he aprendido de ella en los 20 años que lleva dándome de comer.

Realmente mi historia como desarrollador de Software empieza bastante antes. No puedo decir las fechas exactamente, porque no lo recuerdo, pero fue a mediados-finales de los años 80 del pasado siglo (joer, que viejo es uno ya) y seguramente antes de cumplir mis primeros 10 años de vida.

Conseguí convencer a mis padres de que comprasen un Schneider CPC-464, versión alemana del mítico Armstrad CPC-464. Recuerdo también que lo conseguimos a través de una oferta que vimos en el Alcampo del centro comercial ‘La Vaguada’ de Madrid. Creo recordar también que costaba 25.000 pesetas. De lo que no me acuerdo es del año exacto ni de mi edad. La memoria tiene un funcionamiento curioso.

El caso es que allí estaba yo, con mi flamante máquina de 64Kb de memoria RAM con monitor de fósforo verde. ¡Ya podía jugar videojuegos en casa! Eso sí, tenía que esperar un buen rato a que se cargasen desde la cinta de casette.

Ojeando el manual, además de lo básico de encender, apagar, cargar cintas, etc, encontré una extraña sección que no conseguí entender muy bien.

En esa sección decía que si uno escribía cosas como ‘IF’, ‘PRINT’, ‘DRAW’ u (¡¡¡horror!!!) ‘GOTO’, conseguiría darle instrucciones a la máquina para que ésta le obedeciese. Más o menos. El caso es que, aunque como digo, eso me resultaba difícil de entender, el librito estaba lleno de ejemplos. Comencé sistemáticamente a teclearlos y en ese momento se desató la Magia.

Fue mi primer contacto con la programación. Aquel BASIC con números de línea. Poco después me apunté a un curso en una academia de mi pueblo. El profesor no sabía si admitirme en clase porque yo era un crío. Pero lo hice y me convertí en su alumno favorito 🙂

Acabé incluso creando mis propios juegos básicos (pong, pinball, bombardear ciudades…) y esos fueron mis comienzos.

(Bastantes) años más tarde, la carrera. El ensamblador, programación estructurada, estructuras de datos, metodologías, Pascal, C, orientación a objetos, C++, Java, Bases de Datos, programación declarativa, arquitectura de Software, Ingeniería, análisis, diseño… Muchos conceptos, muchas prácticas y sobre todo muchas ganas de aplicar todo eso al mundo real.

Acabé la Ingeniería Técnica en 1999 y ese mismo año decidí empezar a trabajar mientras terminaba los dos cursos que me faltaban de Ingeniería Superior.

Entonces llegaron mis primeros contactos reales con los proyectos de desarrollo de Software, mis primeras desilusiones y mis primeros batacazos.

No voy a entrar en detalle, pero todos los desarrolladores se han (nos hemos) enfrentado a innumerables problemas a la hora de sacar adelante un proyecto y, a menudo, los intentos por buscar soluciones a estos problemas no han dado los resultados esperados. Es normal. la Informática es una disciplina muy joven pero que se transforma de una manera aceleradísima. Es difícil lidiar con la complejidad creciente y los paradigmas que nacen para dar solución a los distintos problemas quedan rápidamente obsoletos. A veces antes incluso de haber sido suficientemente testados empíricamente en el mundo real.

Para los legos en la materia, algunos de estos problemas son:

  • Dificultad de los desarrolladores para entender el problema de negocio del cliente.
  • Problemas de comunicación para hacer entender la complejidad de un desarrollo Software.
  • Dificultad para traducir las necesidades del cliente en requisitos bien especificados.
  • Planificaciones imposibles impuestas por el área comercial.
  • Ausencia de formación en buenas prácticas que aseguren la calidad del Software.
  • Gestión de equipos deficiente.
  • Poca participación de los desarrolladores en las decisiones de arquitectura y diseño
  • Problemas técnicos inesperados

Entre otros… y esto a menudo desemboca en retrasos, costes no planificados, pobre calidad del Software, insatisfacción del cliente y desmotivación en los equipos de desarrollo.

La mayoría de estos problemas son conocidos hace tiempo y se les ha intentado dar solución. A veces de manera sistematizada a través del desarrollo de metodologías de Ingeniería del Software y otras veces de manera improvisada con parches ‘quick & dirty’, pero de los que diría que todas las organizaciones han pecado en un momento u otro. Los resultados de este segundo tipo de soluciones ya se pueden imaginar. Los del primer tipo han sido dispares.

Y para tratarse de mi regreso al ‘blogging’, he decidido que por hoy está bien. En próximas entregas comentaré cuáles han sido algunos de estos intentos de solución, cuáles han sido los resultados y terminaré, en base a mi conocimiento y experiencia, intentando exponer cual es mi visión de las necesidades del desarrollo de Software en la actualidad y cual sería mi posicionamiento, como profesional del ramo.

¡Hasta la próxima y encantado de volver a saludaros!

Ya que estás aquí, es fácil compartir y a lo mejor a alguien le gusta...Share on Facebook
Facebook
Share on Google+
Google+
Tweet about this on Twitter
Twitter
Share on LinkedIn
Linkedin
Email this to someone
email

Deja un comentario

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *