Vivimos una época de cambios, en las que tenemos mucha información
al alcance de nuestras manos, mucha más información que en cualquier otra época
de la humanidad, el día de hoy es muy fácil creerse experto en uno o varios
temas, y sistemas es uno de esos temas en los que existen muchas personas que
se consideran expertas en el área.
La computación es fácil, es lógica dicen muchos.
Si hay tantos expertos ¿Por qué hay tantos problemas en los
sistemas? ¿Por qué muchos no son exitosos? Y ¿Por qué otros que si tienen cierto
éxito se caen en cuanto empiezan a crecer? ¿Por qué antes con equipos menores a
lo que es un celular de hoy en día se podía hacer el mismo trabajo de cómputo?,
¿Quién es el responsable?, ¿Qué herramientas tengo?
El mundo de computo cambia muy rápido hace solo unos cuantos
años una computadora no tenía más de 4 Megas en RAM, 100 Megas de disco y un
procesador de 33 MHz, hoy incluso un celular tiene más poder que eso.
La mayoría de los sistemas no hacen más almacenar
información y consultarla, pese a los cambios tecnológicos siguen siendo ABC, si
esto es así, ¿no deberíamos ser expertos en ellos?, y ser la mayoría de ellos
exitosos.
La respuesta es Sí, entonces ¿Qué es lo que está pasando?
Bueno todo esto puede recaer en un individuo que día a día
ha perdido su función, porque cada vez hay más personas que toman ese roll sin
saber realmente que es lo que debería de hacer, esto hablando de un Arquitecto
de sistemas.
¿Por qué el?, porque él es el principal responsable en la
construcción de una aplicación. Él es el que debe conocer el ADN de la aplicación,
sin embargo, el arquitecto de sistemas no necesariamente es el mejor
desarrollador, o el mejor DBA, tampoco es el genio que vive encerrado en su
cubículo y lo ven solo las noches de luna llena.
El arquitecto es aquel, que sabe que es lo que se quiere,
que conoce las piezas, que puede defenderlas, que puede armarlas y lo más
importante que puede transmitir que es lo que quiere, alguien que puede separar
el todo y convertirlo en algo tan abstracto como un programa, sin necesidad de
que él lo desarrolle.
Él debe conocer a todos aquellos involucrados en el sistema
tener la capacidad para traducir entre diversos idiomas, traducir una imagen
que vive en la mente de aquel que desea el sistema en imágenes que puedan
servir para que uno o más desarrolladores puedan darle vida a este nuevo ser.
Platiquemos un poco, y veamos una gran analogía, la analogía
de la palabra arquitecto, un arquitecto se define según la real academia de la
lengua española como la persona que ejerce la arquitectura, y la arquitectura
se define como el Arte de proyectar y construir edificios.
Ahí caemos en 2 cosas primero que nada es un Arte, sistemas
por si solo es un Arte, es un trabajo que si bien tiene reglas, tiene mejores
prácticas, muy pocos realmente las conocen, y aún menos las aplican, de
construir edificios, realmente es lo que hacemos nosotros construimos edificios
sobre los que circula la información.
Entonces que es un arquitecto, es aquel que es capaz de
construir una torre de babel sin que esta colapse en el intento, y lo más
importante debe manejar la complejidad nunca incrementarla, el mejor diseño de
arquitectura no es aquel que tiene más capas, y que solo es capaz de entender
el que lo creo y un grupo de personas cercanas, no el mejor diseño es el que es
el más sencillo, aquel que puede entender cualquiera de los desarrolladores que
conforman el equipo, y que cumpla con todo aquello que sea necesario en el
proyecto.
Sencillez ante todo, el arquitecto no debe demostrar que él
sabe lo que otros no saben, por el contrario debe balancear el proyecto para
que aquellos que no saben puedan participar en él. No es un dios, es un
maestro, no tiene la verdad absoluta, pero debe tener la visión de un todo.
Debe conocer, lo que fue, lo que es y lo que será. Ver el
mapa desde arriba, pero poder entrar y revisar un detalle, debe tener ambas
visiones la visión macro y la visión micro.
Entonces ¿Quién puede ser un arquitecto?
Aquel que comprenda el proyecto, que conozca, los
requerimientos, que sepa quiénes son sus programadores, que pueda balancear sus
complejidad, que pueda proponer, que sepa decidir que conviene al proyecto y
que no necesariamente escoja lo más reciente en el mercado.
Un maestro, un aprendiz, un director, un escucha y un
orador.
Es el papel más complicado en el desarrollo, porque
realmente de él depende el éxito o el fracaso.
Imaginen que un arquitecto, que construye un rascacielos,
realmente no entendiera el concepto, o ideara algo tan complejo que nadie
pudiera construirlo, ¿Qué pasaría? Los proyectos se irían al fracaso, bueno lo
mismo ocurre con un arquitecto de software, él debe comprender su verdadera
responsabilidad, que no es eso diseñar, sino conocer el todo comprenderlo,
transformarlo y obtener el resultado que espera que solicito el proyecto.
No es una tarea fácil, y hacerlo bien mucho menos.
Bueno solo es un comentario...Carlos
No hay comentarios.:
Publicar un comentario