Front-End, Back-End y Fullstack developers

"Web Developer" es la palabra en inglés para denominar a los programadores de sitios web. En esta área existen perfiles marcados que hoy en día están dando la pauta tanto en las ofertas de trabajo, como en la carrera que un programador web quiera seguir.

Cierto día conversando con @danitoo abordamos el tema de la programación. En esa conversación me preguntó:

¿Qué eres tú? ¿Front? ¿Back?

Fue en ese momento cuando descubrí que ignoraba totalmente lo que yo era, básicamente porque desconocía los alcances de cada perfil de programador. Respondí que podía hacer cosas en ambas áreas e incluso otras más, relacionadas directamente a mi trabajo.

Debido a todo lo anterior, desde ese día estuve leyendo algunos artículos para comentarles sobre estos perfiles con mayor profundidad.

A pesar de que los distintos perfiles de desarrolladores son áreas conocidas en otros países y un skill “obligado” a la hora de reclutar profesionales, en nuestro país está recién conociéndose pero aún lejos de ser un tema en las carreras universitarias del área informática.

Front-end y Back-end

En programación, hablar de Front-end y Back-end nos hace pensar en una división dentro del diseño de software. Esta división diferencia entre lo que puede ver el usuario y lo que no puede ver.

Para ser más claros, cuando se habla de Front-end en Desarrollo Web es todo lo relacionado a la interacción con el usuario: Diseño de Interfaz, Usabilidad, Experiencia de Usuario, etc.

Por ota parte, el Back-end, se refiere a conceptos relacionados con la arquitectura en general: Servidor, Base de Datos, API, entre otros.

Front-end Developer

Según lo anterior, un Front-end developer debe tener las habilidades suficientes para realizar todo lo necesario para el usuario final. Pero la realidad nos muestra dos subconjuntos que conocemos bien: Web Design y Front-end Web Development.

En el Web Design (diseño web) encontramos a los diseñadores que se enfocan a solucionar problemas mediante: la interfaz, las tipografías, los gráficos en movimiento, interacción y experiencia de usuario. Todo esto bajo la vista del diseño.

Mientras que en el Front-end Web Development encontramos a programadores que no cuentan con habilidades de diseño pero son capaces de programar un sitio utilizando tecnologías conocidas: HTML5, CSS, Javascript (o jQuery).

Back-end Developer

Por otra parte, un Back-end Developer es alguien que trabaja en la arquitectura necesaria que da el soporte al Front-end. Las habilidades necesarias para considerarse un Back-end developer contemplan: Desarrollo en lenguajes del tipo server-side (PHP, Ruby, Python), Motores de Bases de Datos (MySQL, PostgreSQL, Mongo, entre otras), Tecnologías de servicios (SOAP, REST), Manejo de Frameworks de desarrollo, entre otros.

Este Back-end developer es programador por defecto — incluso si no estudió programación —y tiene por objetivo llevar el negocio a código, para que luego sea intergado a través del Front-end.

Full Stack Developer

Finalmente, la combinación de ambos developers es el Full Stack Developer, que hoy en día ha sido bien vapuleado debido a la rapidez con que estas tecnologías avanzan.

El concepto de Full Stack Developer o Full Stack Engineer contempla todas las habilidades de un Front-end más las de un Back-end. Y no sólo eso, sino que considera la habilidad para seguir aprendiendo y no quedarse en limbo de los lenguajes pasados.

Un Full Stack Developer no solo es un programador o un ingeniero, es alguien que nunca está quieto. Es capaz de enseñar y de ayudar a otros a través de su conocimiento, es casi un experto. Es característico que sea capaz de conocer el negocio y traducir las necesidades de éste a modelos que un Back-end Developer puede programar y que un Front-end developer puede llevar a la interfaz.

Según mi visión, también es capaz de integrar tecnologías y definir aquitecturas que sean escalables en el tiempo. Es por estas razones que es tan difícil encontrarlos o convertirse en uno. Es el horizonte a que muchos queremos llegar.

La realidad en Chile

Para acercar la realidad chilena, conversé con alguien que tiene experiencia gestionando y contratando developers. Consulté con Cristián Labarca (@Huasonic), quien está en busca de Front-end Developer quién compartió su opinión conmigo.

1. ¿Cuál crees que es el principal problema al buscar un front-end o un back-end developer?

El principal problema es la formación, sobre todo en front. No sabes por donde buscar, si es diseñador, si es ingeniero… Generalmente los que se dedican al desarrollo web en gran parte son autodidactas que se entusiasman con internet, y en muchos casos no tienen una base formal.

Por otro lado a veces siento que pedir el portafolio no dice nada, porque lo que uno ve es el diseño y ahí no está su pega. Lo mejor es entrevistas y ver cuanto les gusta la web y cuan actualizados están sus conocimientos en nuevos frameworks o librerías

2. En tu caso de representante de agencia, ¿Qué skills buscas en un front-end y qué skills de un back-end?

Lo que más me interesa es que les guste internet, que se sientan con la responsabilidad de hacer algo bueno. Que sufran cuando un cliente les dice que tienen que usar tablas, que valoren por sobre todo su pega que para el usuario final se traduce en una mejor experiencia, muchas veces imperceptible. Y sobre todo que tengan ganas de aprender, que no se queden con lo que saben, porque esto cambia a cada rato.

3. Qué consejo le darías tú a los desarrolladores web y diseñadores web que están buscando un norte en sus carreras profesionales

Como consejo les diría que aprendan a ser flexibles, que se adapten a los desafíos de cada proyecto. Porque muchas veces pasa que creen que se las saben toda y se frustran por correcciones del cliente o simplemente porque en algún proyecto no se valora lo que hacen. Y en la práctica si todo el rato aplican lo que saben los proyectos quedan iguales.

Luego conversé con Cesar Dubó (@dubo), quien es Director Digital de la Agencia Q y tiene basta experiencia trabajando y contratando developers. El me contestó las mismas tres preguntas:

1. ¿Cuál crees que es el principal problema al buscar un front-end o un back-end developer?

El principal problema es la falta de la capacidad de los desarrolladores de apropiarse de las dificultades y problemas con las que lidia su contraparte. Por ejemplo, el video ese del “hazme una raya azul con un lapiz rojo”, nunca el desarrollador se daría la molestia de hacer la pregunta clave “para que quieres lo que me estás pidiendo” o “qué te preocupa” o “cuál es el objetivo de esto”.
Un desarrollador sobresaliente debe ser capaz de detectar y proponer soluciones más allá de las burradas que le piden sus clientes o contrapartes. En general, se conforman con hacer al callo lo que le piden, y eso es el principal problema.

2. En tu caso de representante de agencia, ¿Qué skills buscas en un front-end y qué skills de un back-end?

Proactividad. Alguien que no llegue con problemas y me los traspase, si no que alguien que si tiene problemas y no está en su capacidad solucionarlo, llegue con alternativas y propuestas de solución.

3. Qué consejo le darías tú a los desarrolladores web y diseñadores web que están buscando un norte en sus carreras profesionales

Que se pongan en los pies de sus jefes, y en el de los jefes de sus jefes. Solucionen problemas, y hagan preguntas. No hagan supuestos y no ejecuten nada si no están 300% seguros de que lo que están haciendo es lo que está esperando su contraparte (jefe o cliente). Me faltan los dedos para contar la cantidad de veces en que he visto meses de trabajo al tacho de la basura porque alguien no hizo las preguntas correctas. PREGUNTEN TODO!

¿Que eres tú?

Primero mira esta gráfica y piensa en dónde te ves.

Como verás, esta gráfica solo nos da la referencia hasta dónde podemos aumentar nuestro conocimiento relacionado a la web. Si hoy en día eres un diseñador, tienes todo el potencial para ser un Front-end Developer, siempre y cuando, agregues nuevas habilidades y practiques lo necesario.

Del mismo modo, si eres un Front-end Developer, tienes todo el potencial para convertirte en un Back-end developer asumiendo que deberás aprender todo lo relacionado a lo que el cliente no puede ver.

Conclusiones

Existen varios perfiles en lo que a desarrollo web se refiere y depende de tus habilidades definirte como uno o más de uno. Interfaz y diseño se encuentran en el Front-end mientras que servidores, bases de datos y programación se hayan en el Back-end.

Son muchas las formas en que podemos avanzar profesionalmente pero debemos ser capaces de asumir nuevos desafíos y así expandir nuestras propias habilidades.

En la actualidad, Chile mantiene perfiles marcados en lo que a ofertas de trabajo se refiere y cada día iremos encontrando cargos bajo estas etiquetas, que sirven para agrupar habilidades y definir perfiles laborales, pero mi consejo es que nunca dependan de éstas porque pueden encasillarte y limitar tus propias habilidades.

Algunos artículos de interés:

Blog, Personal
5 minutos