Soy un desarrollador web y estoy orgulloso de serlo. Es mi trabajo ideal porque me apasiona y además soy muy bueno haciéndolo. Decidí escribir esta pieza porque me he dado cuenta de que la mayoría de la gente no entiende que hago, soy un desarrollador web y en resumen me dedico a desarrollar sitios web, lo que mucha gente no entiende es lo que implica desarrollar un sitio.
Para entender que hace un desarrollador web es útil saber que implica el desarrollo de un sitio web, yo lo he dividido en tres etapas generales que tiene el desarrollo de cualquier sitio:
1.- Diseño: implica definir el objetivo del sitio, la audiencia a la que esta dirigido, el contenido que se desea integrar, la estructura que tendrá, el diseño del concepto general del sitio desde la elección de un dominio hasta determinar la densidad de la información, el establecimiento de las jerarquías de la información, la planeación de layouts o composición, la elección de imágenes, elementos gráficos, paleta de colores, tipografías, et cetera. En la etapa de diseño también se planean algunas cosas técnicas cómo el tipo de tecnologías que se usarán, el servidor en el que se hospedará el sitio; y cuestiones publicitarias cómo los medios a través de los cuales se publicitará el sitio y la planeación de campañas a través de medios sociales.
2.- Desarrollo: consiste en transformar el diseño en un sitio web funcional, es un proceso de iteración en el que se construye el sitio que se planeó en el diseño y se le van haciendo modificaciones, adecuaciones y mejoras ya que el producto funcionando abre mayores posibilidades creativas para regresar a la etapa de diseño y hacer modificaciones. Al tener una versión “candidato” se instala en el servidor y comienza el proceso de pruebas, se somete el sitio web a pruebas en distintos sistemas operativos, navegadores y dispositivos tratando de prever los casos más extremos para asegurar que funcionará adecuadamente para todos los usuarios. Se realizan más cambios, adecuaciones, mejoras y se hacen más pruebas.
3.- Mantenimiento: esta etapa es generalmente la más larga y activa del sitio web ya que implica la producción de contenido, el análisis del tráfico del sitio, la actualización del sitio y las tecnologías con las que funciona, la integración de nuevas funcionalidades, funciones y elementos gráficos que se requieran, modificaciones a la estructura o a la jerarquía de la información, solución de problemas técnicos, protección y respaldo del sitio, moderación de participación de los usuarios et cetera.
Cómo verán el diseño no se refiere a “diseño gráfico”, el desarrollo no se refiere a “programación” y el mantenimiento no se refiere a “soporte técnico”. Quien lleva a cabo estas tres etapas no es un “diseñador”, no es un “programador” y no es un “webmaster” es un DESARROLLADOR WEB.
Ser un desarrollador web profesional implica tener conocimientos de diversas áreas que le permiten planear, dirigir, organizar y ejecutar todo el proyecto. Esas personas que tomaron un curso de una aplicación para hacer sitios web no son desarrolladores web, son personas que tomaron un curso para aprender a usar una aplicación que sirve para hacer sitios web. Al final del día no importan las herramientas, aplicaciones, lenguajes o tecnologías que se usen, un verdadero desarrollador web sabe que el éxito de un sitio web se mide directamente en el impacto comercial o cultural que se logre. ¿De que sirve una tienda increíblemente bella donde nadie compra o un museo exquisitamente interesante si nadie lo visita?
Entonces ¿que conocimientos y habilidades requiere un desarrollador web? Si yo escribiera el perfil básico de alguien que voy a contratar para un proyecto estas son algunas de las características que buscaría:
- Pensamiento lógico matemático.
- Habilidades lingüísticas y de copywriting.
- Nociones básicas de diseño gráfico (¡no de los programas de Adobe!, de composición, teoría del color, tipografías y lettering).
- Conocimientos básicos de planeación de proyectos en base a recursos.
- Capacidad para hacer análisis en base a reportes estadísticos.
- Mentalidad enfocada a objetivos comerciales.
- Ingenio y creatividad.
Cómo notaran no mencioné cosas cómo HTML, Javascript, PHP, Servidor Apache, et cetera; estas cosas se sabe que quien quiera hacer desarrollo web las debe conocer. Lo más importante es que la persona que haga desarrollo web debe contar con las habilidades para llevar a cabo un proyecto por lo menos desde su conceptualización hasta el lanzamiento.
Desarrollar un sitio web es similar a desarrollar un nuevo producto, lo cual requiere plantear objetivos comerciales, mercado, canales de distribución, servicio post-venta, estrategias de escalabilidad o expansión, et cetera. Dibujar una representación gráfica de cómo se verá un sitio web no es hacer desarrollo web, esa es una parte de la etapa de diseño, el desarrollo web implica un trabajo integral. Lo que algunas personas no entienden es que desarrollar un sitio web no es dibujarlo, un sitio web profesional cuenta una historia, tiene una narrativa, tiene un ritmo y eso no se logra solamente haciendo un dibujo, se logra con la estructura, con el contenido, con el diseño y con cuestiones de funcionalidad y usabilidad cómo por ejemplo que tan rápido se carga el sitio.
Un desarrollador web profesional trata de producir sitios que puedan ser vistos adecuadamente por todos los usuarios, incluso pone atención en muchos detalles que quienes no se dedican a esto pocas veces se imaginan, por ejemplo: ¿cómo verán el sitio las personas con daltonismo, los elementos tienen suficiente contraste para que los vean fácilmente? o ¿cómo navegará este sitio una persona con debilidad visual que requiere de un navegador especial que le lee el contenido? ¿mis links son suficientemente descriptivos? ¿le he puesto a las imágenes texto sustituto para que estas personas sepan que es lo que los demás vemos en esa parte? o ¿que tal si el sitio lo esta visitando alguien con impedimentos musculares que usa una superficie táctil? ¿los botones, links, et cetera son suficientemente grandes, tienen una separación óptima?
Me pregunto si la persona que tomó un curso para aprender a usar un programa que sirve para hacer sitios web pone la misma atención a estos detalles… lo dudo porque sus honorarios corresponden al 10% de los míos y por esta razón algunas personas prefieren encargar el desarrollo de su sitio web a una persona de ese tipo que al final entregará algo mal hecho si es que lo entrega. Creo que esto responde a la pregunta de algunos clientes cuando quieren saber porque les voy a cobrar 30 si conocen a alguien que lo puede hacer por 3.
Y aprovechando que estamos aclarando algunas cosas es necesario hacer alusión al título de esta pieza: No soy un programador. Para entender por que no soy un programador servirá entender que los lenguajes que se usan para darle instrucciones a una computadora se pueden dividir básicamente así:
- Lenguajes de programación: estos son los lenguajes usados para crear aplicaciones para las computadoras y otros dispositivos. Algunos ejemplos son: C, C++, BASIC, Objective C. Estos lenguajes requieren de un “compilador” que convierte el código en una aplicación para cierta arquitectura específica, es decir, cierto tipo de procesador y sistema operativo. No se usan para desarrollo web.
- Lenguajes de scripting: son similares a los lenguajes de programación pero no requieren compilación y no trabajan a un nivel tan bajo cómo los lenguajes de programación. Algunos ejemplos son: Javascript, PHP, Ruby. Estos lenguajes se pueden usar en el desarrollo de software y en el desarrollo web.
- Lenguajes de markup: son lenguajes que le indican a una aplicación cómo debe desplegar o tratar cierto contenido. Algunos ejemplos son: HTML y XML. Se usan para el desarrollo web.
- Lenguajes de style sheet: son lenguajes que expresan la presentación de documentos estructurados. Por ejemplo CSS que sirve para darle estilo al contenido de los lenguages de markup como el HTML.
(ingenieros en sistemas, por favor no vengan a tratar de darme clases de cuales son las definiciones correctas, el objetivo de esto es que cualquier usuario lo lea, por favor continúen reparando impresoras)
Un desarrollador web trabaja con lenguajes de scripting, markup y style sheet. No trabaja con lenguajes de programación por lo tanto no es un programador. De hecho la palabra “programador” es despectiva, un desarrollador de software es un desarrollador de software no un programador. Programador podría referirse a quien programa las citas en un salón de belleza o quien programa la música en un súper mercado. Por favor más respeto para mis amigos desarrolladores de software.
Y para finalizar es necesario contestar a la pregunta de algunos posibles clientes:
- No hago programas de computadora, soy un desarrollador web.
- No hago aplicaciones para teléfonos, soy un desarrollador web.
- No hago logotipos, soy un desarrollador web.
- No puedo hacer la sesión fotográfica de tu producto, soy un desarrollador web.
- No robo imágenes de Google ni copio contenidos de otras páginas, soy un desarrollador web.
- Si, ese es el único precio.