La forma de apoyarme en otra disciplina no debe de ser buscando paralelismos con aspectos actuales de esa disciplina (o más bien, paralelismo con la interpretación subjetiva que hace un desarrollador con los aspectos actuales de esa disciplina) sino interpretando subjetivamente como fue la evolución desde la nada de esa disciplina hasta su estado actual que no conozco (no puedo hacer tengo una interpretación real) pero es evidente que es más madura que el estado de la disciplina de desarrollo de proyectos software que sí conozco.
Uso una interpretación subjetiva y no una histórica porque me interesa más mostrar como interpreto yo (un desarrollador) otra disciplina (la construcción de edificios) más que una recopilación histórica que se basará en la interpretación de otros profesionales (historiadores, arquitectos, empresarios, etc..)
La evolución de la construcción de edificios
El punto de partida de todo es la necesidad. ¿Qué necesidad tenían los seres humanos en construir edificios? Los motivos pueden ser varios:
- No habían suficientes cuevas (o donde sea que vivieran) para todos.Necesidad de resguardarse (mejor de donde sea que vivieran).
- Necesidad de intimidad.
- Poder decidir donde habitar. (Por ejemplo, puede que vivieran en cuevas pero les sería más útil vivir a 3 km de distancia donde está el agua)
- Decidir la estructura de su vivienda.
- Etc..
Ante la necesidad, los primeros individuos salen de su cueva y piensan: “Voy a construir una casa”. Lo primero seria coger cualquier cosa que tuvieran cerca y apilarla de tal manera que fuese “un motón de cosas apiladas” (piedras, madera, etc..) que tuvieran forma de cueva, que es lo que conocían. Tras repetir esta operación varias veces (más bien muchas veces y probablemente durante muchos años) los individuos se dan cuenta de cualquier cosa que encuentren no vale para construir una casa, se necesita un material que al producirlo se puede utilizar para construir la casa.
A partir de la deducción “Se necesitan primero materiales y luego se puede construir” se crean una serie de materiales que son útiles para la construcción y empiezan las innovaciones:
- Se crean los ladrillos, y al apilarlos se construyen las paredes.
- Se crea el cemento, y al ponerlo entre los ladrillos se consigue una pared solida.
- Se crean las vigas y se descubre que:
- Al ponerlas en la parte superior de la casa se puede construir el techo.
- Al ponerlas como apoyo de de las paredes, estas son mas solidas incluso se puede “crear dos pisos”.
Paralelismo . Una forma de evolucionar el desarrollo de proyectos
El punto de partida de todo es la necesidad. ¿Qué necesidad tenían los seres humanos en desarrollar software? Los motivos pueden ser varios:
- Poder ampliar el volumen de información. De poder tratar solo lo que cabía en los libros a poder tratar las "bibliotecas enteras" que caben en un ordenador.
- Poder compartir información en tiempo real (o casi real).
- Agilizar la gestión de cualquier faceta de cualquier negocio.
- Permitir el acceso a cuotas de mercado.
- Permitir el acceso fácil de cualquier persona a cualquier producto, tramite, evento, etc.. que necesite (desde comprar un coche por internet hasta hacer la declaración de la renta)
- Etc..
Ante la necesidad, los primeros desarrolladores piensan: “Voy a desarrollar un software que me sirva para algo práctico, como una calculadora”. Lo primero seria picar líneas de ensamblador (miles y miles) de tal manera que al ejecutar “ese primer programa ” el resultado fuera algo parecido a una suma o una multiplicación. Tras repetir esta operación varias veces (más bien muchas veces y probablemente durante muchos años) los individuos se dan cuenta de que no se puede hacer todo con ensamblador, se necesitan lenguajes de alto nivel.
A partir de la deducción “Se necesitan primero lenguajes de alto nivel y luego se puede desarrollar software” se crean una serie de lenguajes de alto nivel que son útiles para el desarrollo del software y empiezan las innovaciones:
- Se crean distintos lenguajes de alto nivel en los que un desarrollador puede crear aplicaciones para cualquier cosa.
- Se crean programas que crean entornos gráficos para otros programas y asi hacerlos más manejables.
- Se crean utilidades genéricas de todo tipo: procesadores de texto, hojas de cálculo, aplicaciones de tratamiento de imágenes, etc.
No hay comentarios:
Publicar un comentario