El encanto del desarrollo de software: Introducción

Hace un tiempo, gracias a mi reconsolidación de libros, me reencontré con el excelente “El encanto de la física” de Sheldon Glashow. Me gustaría lejanamente inspirarme en ese libro, para ir comentando lo que veo que es el “encanto del desarrollo de software”.


Por un lado, el desarrollo de software es el “trabajo” de muchos de nosotros: es la actividad a la que nos dedicamos para obtener los ingresos de cada día, para mitigar las consecuencias de lo que llamo el “Efecto Coto”.


Pero por otro lado, para muchos de nosotros, es la actividad que nos interesa por muchos otros motivos, que disfrutamos y tratamos de entender, más allá de su aplicación inmediata.


Para mí, el desarrollo de software es lo que me permite “crear” nuevas cosas, más o menos nuevos programas, soluciones a viejos problemas. Me permite ir explorando lo abstracto y lo concreto al mismo tiempo, consiguiendo, de vez en cuando, la satisfacción de encontrar una solución sencilla y a la vez hermosa a un problema.


De alguna forma, en ese sentido, se acerca a las matemáticas. Pero por otro lado, se acerca a la ingeniería: construir cosas, nuevas o adaptadas de anteriores, que podemos compartir con otros. Gracias a la ubicuidad de Internet y de la web en particular, hoy el desarrollo de software puede ser una actividad colectiva, justamente, como las matemáticas y la ciencia fáctica.


Un desarrollador de software crea, comparte, descubre nuevas formas de resolver problemas. Un software puede contribuir a potenciar alguna actividad humana, o simplemente, aportar con su sencillez y belleza a satisfacer el anhelo estético de los que disfrutamos de esta actividad.


También destaco que esta actividad es una actividad humana que más niveles involucra: tenemos que estar atentos a la visión general, y a la vez, estar dedicados a los detalles. En ese sentido, se parece a la arquitectura de edificios, donde tanto tenemos que detenernos en la visión global de lo que queremos construir, como a los elementos minúsculos, como los materiales y la disposición de pequeñas piezas.


Con el software, construimos nuevas “máquinas”: el anhelo humano de crear lo que nunca ha sido creado, se ve potenciado en la programación de sistemas. Y en vez de trabajar en una “torre de marfil”, como la ingeniería de puentes también nosotros nos vemos enfrentados a la prueba de la realidad, a la prueba del uso y creación de valor para los usuarios de lo que creamos.


Y en los últimos tiempos, ha crecido la creación en equipo. De alguna forma, el desarrollo de software ha conservado las caracterísicas de una ingeniería, con sus reglas y mejores prácticas,  y en un arte, con la creatividad siempre bienvenida y necesaria.


Nos leemos!


Angel “Java” Lopez
http://www.ajlopez.com
http://twitter.com/ajlopez

This entry was posted in 3463. Bookmark the permalink.

4 Responses to El encanto del desarrollo de software: Introducción

  1. Me encanto el post!

    Coincido con tus apreciaciones en un 100%

  2. Muy bueno Angel, totalmente de acuerdo. No hay como encontrar una solución simple a un problema complejo y esto se vuelve mejor si encima se hace en equipo.

    saludos!

  3. Agrego a tus comentarios, que el Encanto del Desarrollo de Software va incluso al punto de generar Programas o Aplicaciones que no necesariamente resuelvan un problema, sino incluso, por arte mismo, como los dibujadores de fractales, los “demos” hechos en los 80/90 (que aún se siguen haciendo) con el sólo objetivo de demostrar lo que se puede hacer, con recursos limitados (de hardware, ej, C=64 y similares).

    Por otra parte, yendo un poco más allá sobre tu analogía con la Ingeniería, se diferencia en que el software al no estar regido por leyes físicas, puede estar tan mal o tan bien hecho, como se le dedique tiempo y esfuerzo. Y a su vez, el mismo diseño puede estar desarrollado de cientos de maneras distintas, lenguajes, entornos, exponenciando la capacidad creativa/intelectual.

    Un profesor de la facultad, Daniel Alonso, solía decirnos: los diseños de software se abandonan. Con esto entiendo que quería decir, que uno podría continuar refinandolo infinitamente. El punto en que se decide detener el diseño es aquel en que los requisitos básicos necesarios son cumplidos, pudiendo ser continuados, con el solo sentido de perfeccionarlo o mejorarlo.

    En fin, podría seguir mucho sobre el Encanto del desarrollo de Software, pero justamente, me está esperando un sistema por terminar.

Leave a Reply

Your email address will not be published. Required fields are marked *

You may use these HTML tags and attributes: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>