Número de lecturas: 5562
{lang: 'es-419'}

Interesante articulo de las cualidades que debe tener un desarrollador web, bastante reales y que pueden aportar a muchos que empiezan o que tienen experiencia pero pueden complementar mejor su forma de trabajar

Cada vez es hay mayor cantidad de herramientas y tecnicas para realizar sistemas web, esto le da muchas mas complejidad dia a dia al desarrollo web, pero tambien mucha herramientas que facilitan el desarrollo de un sistema web.

Antes con saber programar en PHP/Mysql/Html/Css era mas que suficiente para conseguir clientes, y poder trabajar en cualquier proyecto web. Hoy en dia esto no es suficiente.

Los sistemas al ser mas complejos, requieren mas profesionalismo en el desarrollo, y gente mas capacitada. Hay muchas herramientas que hoy son indispensable para proyectos medianos/grandes, que requieren mas de un programador.

Control de versiones.

Es real que los sistemas son cada vez mas grandes y mas robustos, generalmente vemos que un sistema tiene varios desarrolladores, disenadores, QA, y otros, solo para crear un sitio de e-commerce, o un portal mediano. Esto hace indispensable el uso de un sistema para el control de versiones, pero no solo alcanza con saber hacer un checkout y commit con svn, ahora se necesita un conocimiento general sobre la teoria del control de versiones, branch, tags, mergear ramas. Tambien manejo de otros sistemas de control de versiones como mi actual favorito Git, o mercury, entre otros.

Testing Unitarios.

El trabajo en grupo es algo de todos los dias, siempre nos acomplamos a un grupo de desarrolladores, son muy pocos los proyectos que hacemos solo para que los desarrolle una sola persoa, esto si bien acelera los tiempos de desarrollo, tambien puede generar conflictos con el codigo de otras personas, puede pasar que alguien suba algo y rompa todas las funcionalidades del resto de los desarrolladores. Esto es tan normal que ya tenemos asumido que puede pasar en cualquier momento. Pero tenemos los unit testing, que hacen que estas cosas se puedan prevenir. Antes de hacer un commit, corremos todos los testing unitarios, y podemos saber si rompimos algo, antes de subir nuestro codigo al repositorio global. Igual, lo ideal es que cada developer trabaje en su branch, y que alguien o un script, mergee los branch al trunk cuando haya pasado todos los testing, y se considere que puede pasar al trunk (rama principal). Hay sistemas open source como crouisecontrol, que mantienen informado a todo el equipo como salieron los unit testing despues de que alguien del equipo subiera sus cambios. Si alguien subio y rompio algun unit testing, este le envia un mail a todo el equipo avisando del problema, para que lo solucionen rapido, ademas podemos hacer que sino pasa los testing, revote los cambios.

SEO

El SEO es un tema importante hoy en dia, no necesitamos ser “expertos” en SEO, pero necesitamos entender que es y cuales son las buenas practicas que podemos aplicar en nuestros desarrollos para facilitar la indexacion de parte de los motores de busqueda. Url amistosas, xhtml estricto y semantico, jerarquizacion de nuestro contenido utilizando correctamente los tags html, edicion de metatags, etc.

Servidores

Este siempre fue un tema que todo desarrollador esquivo, para delegar la responsabilidades al sys admin correspondiente. Es increible la cantidad de desarrolladores que se consideran senior, y no saben configurar un Virtual Host en apache, o usar minimamente la consola de linux. Linux/Unix nos brinda un monton de herramientas para los desarrolladores increbiles, que nos pueden hacer la vida mucho mas facil, y no lo digo solo por los comandos mas usados como tail, cat, vim y grep, tambien tenemos muchas otras herramientas que aumentarian considerablemente la velocidad y calidad de nuestros trabajos.


Uso de Frameworks.

Coincidas o no con la filosofia de usar uno u otro framework, te guste ZF y detestes Cake, o no te guste ninguno, la realidad es que tenes que tener la capacidad de poder manejar cualquiera de estos. Obviamente no estoy diciendo de manejarlos en profundiad sino manejar sus conceptos basicos, como configuracion, como maneja el modelo de datos, las vistas, etc. La mayoria de frameworks en PHP usan el Patron de diseno MVC. Conocer como funciona MVC es vital hoy en dia, pero tambien lo es entender los conceptos de ORM, Smarty (sistemas de plantilla), y tantos otros “Frameworks” / Libreria que complementan el desarrollo de una aplicacion.


Aplicaciones Pre Armadas.

Antes teniamos PHP-Nuke y gracias, en la actualidad que un cliente te presente la posibilidad de usar Joomla, Drupal, o Magento, es algo casi de todos los dias, nosotros como developers, tenemos que conocer no solo las ventajas de cada sistema de este tipo, sino tambien estar preparado para utilizarlo en el caso de que creamos que es necesario. Drupal para desarrollar webs es una herramienta increiblemente facil, ahorramos muchisimo tiempo de desarrollo configuracion, etc, etc. Lo mejor de estas aplicaciones es que es muy facil integrarlas a otros sistemas como Wikimedia, wordpress, u otros sistemas similares, o propios. Crear un modulo o plugin tambien es muy simple y  las comunidades brindan una ayuda que vamos a poder valorar muchisimo cuando las necesitemos.


Social Media.

Muy lejos estoy de aceptar este rubro como algo importante, pero cuando yo me refiero a social media, lo hago desde el lado de desarrollo, orientando la aplicacion para que tenga las funcionalidades para integrarse con las redes sociales mas importantes. Un ejemplo excelente para mi gusto es stackoverflow, intenta registrarte y loguearte, son geniales. Esta claro que un usuario web comun y corriente hoy en dia tiene alguna cuenta o en gmail, facebook, wordpress, twitter, entre otros, porque no usar las api de esas redes sociales para facilitar el registro y login de usuarios en nuestros sistemas?

Compartir el contenido de nuestros sitios, con herramientas tan facil de usar como el “Me gusta” de facebook, o twittear un contenido, son muy utilies no solo para que nuestros usuarios puedan compartir sus intereses dentro de sus circulos “sociales”, sino tambien para que podamos conseguir usarios nuevos por este medio.

Herramientas para el desarrollo

No quiero volver a empezar la discusion de Vim o Eclipse, esto es algo que sobrepasa cualquier discusion, hoy en dia necesitamos todas las herramientas que aumenten nuestra productividad y el mejor manejo para el trabajo en equipo. El IDE hoy en dia es esencial, no quieras desarrollar algo en Vim, porque si estas trabajando por hora, vas a generar perdidas a la empresas en un monton de aspectos, que la verdad esos problemas no lo vas a tener con el correcto uso de un IDE, Eclipse PDT / Netbeans, son herramientas geniales para cualquier developer. Pero tambien estas herramientas no son las unicas. Necesitamos algo con el que puedas ver tus tareas asignadas, estado de las mismas, y porque no las de tus otros companeros de equipos. Un tracker como Trac, o Pivotal Tracker, yo estoy usando este ultimo y la verdad es que es bastante complejo pero muy util una vez que le hagarraste la mano. Necesitas trackear tus horas para aumentar la productividad?, usa Toggl, es un servicio web publico con una version gratuita muy flexible. Con una herramienta para instalar que tiene su version en windows, mac , y linux :) .

Conclusion
Pareciera que estoy dejando de lado los temas importantes que son conocimientos del lenguaje del lado del servir, motor de base de datos, javascripts, frameworks en JS, Css, xhtml, html5. Todos estos son conocimientos que ya deberiamos tener en claro, sinos consideramos experimentados.

Trabajando en entornos Norte americanos, las exigencias son aun mayores. Estos exigen un nivel, que es muy dificil encontrar en latino america. Pero podemos adaptarnos, tenemos la capacidad, y ellos tienen que entender que somos la mejor opcion.  Lo mismo para el mercado europeo.

Espero que entiendan que mi idea no es hablar como absolutista, mas bien compartir la experiencia de haber estado tanto tiempo en el desarrollo web.

Fuente:

http://blog.pablo-morales.com

Be Sociable, Share!