Soy Front-End Developer

Hoy es viernes, y ya es hora de irme a casa después de una larga jornada de trabajo. Pero antes de irme, voy a volcar en este blog que tan muerto tengo lo que ahora mismo se me pasa por la cabeza sobre mi oficio, y más concretamente, sobre mi perfil. Acabo de tener una charla con un compañero de la empresa, que en menos de un mes pasará de un proyecto no relacionado con escribir código (para que me entienda todo el mundo no diré Desarrollo Web). En esa charla, en el contexto de un proceso de “coaching“, le he explicado lo que significa ser un “Front-End Developer”. Le he contestado en términos técnicos, pero voy a intentar aquí contarlo de forma que me entienda (casi) cualquiera.

Dentro de mi sector hay varios perfiles. Hay cosas comunes que se nos pide a todos, que pueden variar desde conocer X o Y lenguage de programación, seguir determinadas prácticas o técnicas al programar, tener en cuenta esta u otra filosofía, generar código elegante y eficiente, etc. Eso es lo básico, lo que todos a base de estudiar, aprender por nuestra cuenta y, sobre todo, trabajando, se nos exige.

Pero, y aquí igual genero polémica (bienvenidos los comentarios), creo que mi perfil es uno de los más completos, aunque a veces de los menos valorados, y los que más y más rápido tenemos que aprender.

La principal diferencia entre un “Front-End” y otros programadores es esta: ellos crean la maquinaria base para que algo funcione. El motor bajo el capote. Nosotros hacemos “lo que se ve“. Esto es la explicación más básica e incompleta posible, pero vaya, nadie me discutirá que es exactamente así. Podemos matizar y generar muchos sub-perfiles en el otro lado, pero no en el mío. Y por eso digo que a nosotros se nos exige más, ahí está la gran diferencia. Los que hacen las tripas de la máquina pueden tener perfiles muy distintos entre ellos, pero trabajar juntos para crear algo. Uno puede saber A y el otro B, y se complementarán perfectamente. A ninguno seguramente se le exigirá A+B, aunque si tienen ambas cosas obviamente será un punto a su favor y cobren un pastón. Sin embargo, mi perfil, el de los que hacemos “lo que se ve”, tenemos que saber A+B+C+D+E+F+G + todo lo que salga. Le decía a mi compañero que somos los médicos de la informática. Un doctor que no va a conferencias para actualizarse puede perder su licencia. Del mismo modo, nosotros tenemos que estar siempre al día, aprender todas esas cosas chulas, toda virguería megavistosa que salga, porque todos los clientes la quieren. Y la querrán mientras esté de moda, luego quedarán enterradas en el olvido, pero mientras eran “trending”, si no la conocías tu perfil estaba obsoleto. Y mañana habrá otra cosa. Y pasado otra. Las tendrás que aprender todas, dominarlas, entregarlas impecables a clientes, ni un milímetro distinta de la imagen que esperan.

Por supuesto, cuando entregues algo, tendrás que haber probado el diseñito dichoso. En cada navegador. La web resultante tendrá que volar como el viento, descargarse en un abrir y cerrar de ojos. En todo dispositivo. Porque claro, el usuario es impaciente y no espera más de dos segundos a que algo se descargue. El diseño tendrá que ser visionado en pantallas de cualquier tamaño. Sin romperse. Sin dejar de tener sentido. Tendrá que ser compatible con lectores de pantalla para gente con discapacidades. Los ciegos podrán recorrer el contenido usando la voz. Y eso lo tenemos que preparar nosotros. Si alguien usa el teclado y no el ratón para navegar por la web, tendrá que poder hacerlo, y eso solo es posible si se ha puesto cuidado en ello. El resultado de tu trabajo será escudriñado, validado por todo tipo de gente: diseñadores, gente de marketing, ejecutivos, usuarios, etc. Criticarán cualquier pequeño fallo visible, pues, al final, nuestro trabajo se ve. Es lo que hay. Ah, y querrán cambiar cosas una vez hayas terminado, puesto que quizá lo que tenían en mente no se ajusta al producto finalizado (aunque sea exactamente lo que han pedido). También querrán sacar esa web que les has dado por impresora y que se vea todo en orden y bonito. Llegarán personas a poner sellos de calidad y certificados varios (usabilidad, accesibilidad, código válido), y todo se hará juzgando, adivina: lo que se ve. Si algo en las tripas de la web se rompe, o cambia, algo se romperá en la parte visible. Algo dejará de ser bonito. O algo que antes estaba puede dejar de estar, simplemente desaparece. Y los dedos, a quien primero apuntan para echar las culpas, es al que ha hecho el frontal. Yo veo, o dejo de ver, algo que esperaba encontrar con otra forma, color u orientación, y por supuesto el primer pensamiento es que la parte visible tiene algún fallo. Es como ver un grano y pensar que obviamente es un problema en la piel, y no quizá un tema hormonal.

Luego llegará el árabe, el chino, el japonés… Esperarán que tu diseño esté traducido a su idioma. Pero no solo traducido. El texto que antes aparecía de izquierda a derecha tiene que cambiar de orientación. También párrafos que tan bien quedan justificados a la izquierda tienen que ser puestos como delante de un espejo. Todo lo que por alguna razón va de un lado a otro, ahora se invierte. Los servidores mandarán un texto traducido, desde las tripas de la web, pero es en el frontal donde está el trabajo de adaptar. Y esto es solo un ejemplo. Los casos de uso en los que la misma información tiene que presentarse de distinta forma, con condiciones, animaciones, efectos visuales, adaptaciones, etc, es brutal.

Además, por si fuera poco, toda la parafernalia que has montado para cumplir esas no pocas expectativas, se ejecutan en la máquina de la persona que visita la web. Un ingeniero de software que programa los engranajes de una web monta un entorno a medida. Pone todos los servidores, toda la memoria y todos los recursos que hagan falta para que todo salga perfecto. Pero… el usuario final, ese usuario con Windows XP y todavía usando Internet Explorer 7, con una máquina que tiene mucho polvo y poca memoria RAM, a ese usuario hay que darle un resultado óptimo también. La web se tiene que cargar relativamente rápido. Su navegador no tiene que colgarse solo porque el cliente nos haya pedido un diseño de ciencia-ficción en el que la web reacciona con florituras ante el mínimo movimiento del ratón. Todo tiene que fluir… Para ellos y para el usuario de Apple con un maquinón y un pantallazo de 27 pulgadas, super-megaHD y retina. La misma web para los dos.

Tenemos que saber estructurar la información de una web, saber cómo traducir cada elemento de un diseño e incluirlo en el documento de forma que tenga sentido. Tenemos que, entonces, darle formato a ese contenido. Sombras, transiciones, transparencias, posiciones, anchos, bajos, tipos de letra, colores (sólidos, degradados), animaciones, efectos, iconos…. Lo que sin estilos es algo sin vida y aburrido, tenemos que transformarlo completamente, y de forma ordenada, optimizada (a veces específica para cada navegador) y sobre todo, inteligente. Las peticiones de los clientes no se simplifican con el tiempo, todo lo contrario. Cada vez quieren cosas más vistosas, más complejas. Cada vez las interacciones usuario – web son más complejas. Incluso muchas decisiones estratégicas (respecto a temas de marketing, contenido, negocio, seguridad, integridad de datos) se toman sin salir del navegador.

Y las herramientas para hacer todo eso, crecen sin parar. Para hacer la misma cosa, hay muchas opciones, pero hay que saber elegir la mejor. Y la mejor para un caso lo es para ese caso. Puede que para un trabajo similar, no te sirva. Así que te toca aprender, comparar, entender, comprender.

Pues eso es trabajar con lo visible. Es como el empleado que da la cara defendiendo los intereses de toda una empresa que trabaja en despachos cerrados. Ese empleado recibe a cualquier persona sin aviso, y tiene la responsabilidad final de que el cliente se vaya contento. Sea quien sea, tenga el perfil psicológico que sea, o diferencias culturales, incluso si habla otro idioma. Hay que lidiar con cada caso de forma efectiva, y muchas veces resolver los marrones que los compis que no dan la cara han generado.

Eso es lo que hago, y mi perfil no se toma muy en serio, aveces, por un estúpido error de concepto, y es que el lenguaje de programación “no es serio”. Saltándose todo lo demás, todos los factores de riesgo con los que jugamos, todas las cosas que tenemos que tener en cuenta en cada momento. Si ponemos todos los puntos que he citado, y todos los que me he dejado, diría que el lenguaje de programación es lo de menos. No es relevante. No es cómo escribes el código, es el volumen de conocimiento que poseemos, que se nos exige, y que solo puede crecer. Es la responsabilidad, la cantidad de cosas que recaen en nosotros. Somos necesarios para que una web exista. Sin código en las bambalinas, la web puede ser igual de vistosa para el ejecutivo y para el usuario final. A ellos no les importa qué arquitectura se ha usado para crearla. Les importa lo que se ve, eso es lo que alaban o critican. Eso es lo que consumen, lo que necesitan. Y además, a mi perfil se llega pasando, en muchos casos, por ese trabajo “oculto”, el de las tripas. Así que generalmente el Front-End sabe de lo suyo (y mucho), pero también sabe lo que saben los del “otro lado”. No es que sepamos de esto o de lo otro. Es que sabemos de esto Y de lo otro. Con el añadido de que lo que hemos aprendido de la parte visible, no se enseña en la Universidad. No nos preparan para ser Front-End, muchos somos lo que somos porque hemos aprendido por nuestra cuenta. Aunque eso no es mérito exclusivo nuestro, en general los programadores tienen mucho de autodidacta y, en cualquier área de esta profesión, siempre hay algo que aprender.

Mi blog, es el típico ejemplo de “en casa de herrero, cuchillo de palo”, porque muchos de los cientos de requisitos que un cliente me pediría y que he entregado tantas veces no están presentes en mi propia página. Aunque estoy preparando la actualización de la plantilla de este blog, realmente no tengo tiempo. Estoy demasiado ocupado atendiendo las demandas de clientes actuales y aprendiendo las de los futuros. Lo hago con gusto, lo digo con orgullo.

Por supuesto hay mucho trabajo y mucho mérito (reconocido) a la gente que hace lo que no ves, no lo pongo en duda ni por un segundo. Pero, la próxima vez que entres a una web y te guste lo que ves, acuérdate de nosotros, los Front-End developers. Porque estarás disfrutando del fruto de mucho esfuerzo, y lo podrás disfrutar sin importar qué máquina tengas, qué conexión a Internet hayas contratado o cómo de viejo sea tu monitor. Con este escrito quería reivindicar la importancia absoluta de lo que somos, de lo que hacemos. Debemos hacernos valer, exigir condiciones justas y nunca inferiores a otros programadores. En todo caso, podemos pedir más, porque, guste o no, estamos de moda.

¡Un saludo desde aquí a todos los Front-End devs!

Sobre el Autor

luis

Technical Project Manager, con más de 15 años de experiencia en desarrollo web. Fotógrafo y productor de vídeo amateur. Bloguero, usuario activo de varias redes sociales, especialmente calles, cafeterías y restaurantes. Fan de Batman. Felizmente casado con una chica geek. Nómada.

  • Pancho Montoya

    Hola:

    Me parece completamente valido que valores tu perfil. Pero me parece demasiado cuando dices que el front-end developer es el mas completo, si bien se les exige un poco mas, esta premisa no valida que sea asi. Soy arquitecto de software y objetivamente debo decirte que tanto back como front son tareas complejas, imaginate dividir un sistema orientado a objetos y bien pensado, es una tarea titanica.
    Los front-end developer segun mi punto de vista, son la guinda de la torta. No sirve tener un sistema que sea funcional y “bonito” si el servidor es lento y lleva mal la data al cliente.

    Saludos.

    • Hola Pancho,

      Por supuesto, en back hay mucho trabajo y para nada lo menosprecio. Yo hablo en el sentido de que por ejemplo, el código que se hace en back, se hace en parámetros conocidos. Vosotros montáis el servidor, tanto el hardware como el software, a medida para que las aplicaciones funcionen sin problemas. Podéis recurrir a todo tipo de librerías que os parezcan oportunas. Podéis escalar recursos. Nosotros los Front-End devs nos movemos en un entorno limitado y desconocido: la máquina de cada usuario final. Podemos usar las librerías soportadas por los navegadores mayoritarios en cada momento, y eso es un criterio volátil que cambia con el tiempo. Además, tenemos que obedecer a trends de diseño visual, como “responsive design”, ofrecer versiones adaptables a cada dispositivo, y tomar responsabilidades que antes se gestionaban en el back, con un lenguaje que evoluciona despacio. Todos esos retos, en mi opinión, no existen en el backend. Y además si se trabaja con un framework o un CMS, que te da la mitad ya hecha (la arquitectura y la capa de persistencia), pues lo tenéis incluso más fácil. Un saludo compañero!

      • Pancho Montoya

        Quizas estamos viendo dos caras de diferente moneda, yo no hablo de sitios web, hablo acerca de sistemas complejos que requieren logica de negocios especifica. Estas en lo correcto en decir que un Front-end se mueve por la moda y por condiciones de momento, pero el desarrollador Back-End tambien lo hace, yo no hablo acerca de la comunidad de programadores amateurs de PHP, hablo por programadores experimentados, que tienen que leer muchos libros anuales para comprender como va evolucionando el software.
        Para mi la separacion de back-front no es solo acerca de un pequeño sitio web o un proyecto que se lleva en 3 o 4 meses. Insisto, hablo de logica dificil de negocio, donde por mucho que hayan API o Patrones que te ayuden a solucionar problemas, todos los problemas son muy diferentes.

        Saludos.

  • Buenas, soy maquetador, desarrollador front , realizo tareas de arquitecto, y decirte que lo que escribes es real, 100%, me siento identificado. Siempre seremos criticados por todos, somos el escaparate de las tiendas en rebajas, todo tiene que ser bueno, al 50% más barato, con la misma calidad y en el menor tiempo posible. Yo tambien tengo blog, jolugama.com, y si, cuesta mucho despues de una jornada de mas de 8 horas de trabajo ir a casa para actualizar el blog. Un saludo!

Copyright © 2014. Luis Serrano. Todas las opiniones vertidas en este blog son personales y no representan de forma alguna a las empresas en las que trabajo.