agosto 2007Express IT: agosto 2007

lunes, 6 de agosto de 2007

¿Guia para contratar programadores?

Leyendo en la blogosfera encontré este articulo "A guide to hiring programmers: the high cost of low quality"; escrito por Frank Wiles un total desconocido para mi, pero por lo que pude averiguar de el, tiene experiencia suficiente en el campo de TI como para atreverme a mencionar esta entrada de su blog.

A los 16 años empecé a trabajar como operador técnico en una estación de radio; mas o menos en 1994, desde 2000 en esa misma estación mi trabajo se volcó completamente a las TI, primero como administrador de sistemas y web hasta convertirme en desarrollador de software independiente. Ya olvide cuantas formas de empleo y currículum e repartido a no se cuantas empresas con la esperanza de encontrar un empleo bien pagado y con retos constantes, que mantengan mi atención y el interés por seguir trabajando en determinado lugar. Asi como a mi me gustaría encontrar el empleo perfecto las empresas que buscan personal de TI (programadores en este caso particular), buscan lo mejor que pueden encontrar (basando en la relación costo-beneficio, aunque por algún extraño motivo la balanza siempre esta inclinada hacia el lado del costo olvidando el beneficio casi por completo) para cubrir sus necesidades de desarrollo.

La realidad sin embargo, es que pocas empresas están dispuestas a pagarle bien a un programador (ya ni mencionar los retos y el ambiente laboral :( ) y los pocos buenos programadores se la pasan brincando de una empresa a otra en busca de mejor paga y proyectos que cautiven su interés. Wiles y otros programadores (de Perl) como el, concluyeron lo siguiente sobre el tema de la contratación de programadores:
  • Encontrar buenos programadores es difícil en cualquier lenguaje. Un buen programador puede ser tan efectivo como 5 a 10 programadores promedio.
  • El rango de salarios entre programadores están fuera de sincronía y están basados mas en el lenguaje utilizado que en la habilidad de el programador.
  • No es necesario contratar un experto en X lenguaje, se puede y se debería buscar programadores expertos que estén dispuestos a aprender X lenguaje. Un experto puede facilmente pasar de ser un novato en cualquier lenguaje en cosa de algunas semanas.
  • Se debería considerar seriamente permitir a los programadores trabajar remotamente tiempo completo. Restringir la búsqueda a programadores que vivan cerca del área o dispuestos a moverse limita el talento que se puede adquirir. Argumentos como "tiempos de entrega", productividad, etc. se nulifican al ver como algunos y mas exitosos proyectos "Open Source" como Linux, Apache y Firefox son desarrollados por individuos que raramente viven en la misma zona, incluso el mismo país.
¿Por que es tan dificil encontrar buenos programadores?

Segun Frank, la raz
ón mas sencilla es cuando una empresa encuentra un buen desarrollador, ellos hacen mas por asegurarse que esa persona este feliz. Mejor salario, condiciones de trabajo mas flexibles, buenas herramientas, proyectos interesantes y buenos estímulos generalmente mantienen a un buen programador en el mismo lugar por mas tiempo.

Es bastante obvia la dificultad para encontrar expertos, esto no significa que los departamentos de RH se rindan y contraten lo que les llegue, los programadores no son engranes en la maquina, se acercan mas a los artistas o científicos que a un
representante de ventas o pedagogos (sin menospreciar ninguna profesión). Además muchos no es igual a mejor, si una empresa (buscando ahorrar) contrata varios novatos que le cuesten lo mismo o menos que un experto, estos seguramente se convertirán en lastres y no en propelas que impulsen el desarrollo en la empresa. Otra dificultad la presentan las propias empresas, por lo general están dispuestos a pagar de 10% a 20% mas a un experto que a un programador promedio, las empresas deben darse cuenta que pagar mas puede ahorrarles mucho a largo plazo.

Frank y compañía presentan Pros y Contras de contratar 5 programadores (de
Perl) expertos (o arriba del promedio) pagando a cada uno 120 mil USD al año:

Contras

  • Se invierte mas tiempo en encontrar, evaluar y entrevistar a los candidatos.
  • La empresa o lo que se le pide programar sencillamente podría no ser atractivo a esta clase de desarrollador. Las personas inteligentes encuentran las cosas aburridas aun mas aburridas que la mayoría.
  • Cuando uno de ellos deja la empresa los objetivos de negocio están mas en riesgo al contar con menos recursos o que una buena parte del conocimiento de la empresa se fue caminando. Esto es mas una percepción que realidad, un buen desarrollador es mejor escribiendo código legible y bien comentado, lo que ayuda a su sucesor para tomar las riendas del desarrollo mas rápido.
Pros
  • Cada desarrollador estará mas contento con su trabajo, en parte por un salario mas arriba que el promedio y por que sus compañeros son igual o mas capaces que el, lo que mejora la satisfacción del trabajo.
  • El desarrollo requiere de menos comunicación en general, pues hay menos personas con quien comunicarse.
  • Los expertos se mueven en los mismos círculos, tener un experto en el equipo hace mas fácil encontrar otros expertos.
  • Se ahorra en infraestructura (cubículos, teléfonos, computadoras, etc.).
  • El departamento de RH tiene menos gente por quien preocuparse.
  • Se ahorra mucho en costos laborales, menos empleados es igual a menos reparto de utilidades, cuotas de seguridad social, vacaciones, etc.
¿Que es un programador experto?

La experiencia es muy importante, pero no tan importante como diversidad de experiencia. Alguien que a trabajado en diferentes industrias es mucho mejor desarrollador que alguien que ha pasado años en la misma industria. Si el desarrollador a sido administrador de sistemas ese es un punto extra a su favor.

Algunos de los mejores desarrolladores tienen una formación que poco o nada tiene que ver con el desarrollo de software, no es sorprendente encontrar matemáticos, contadores, médicos, etc. escribiendo código de excelente calidad. Los expertos son flojos (en cierto sentido), trabajan inteligentemente y no arduamente, prefieren soluciones fáciles que resuelvan el problema a soluciones complejas solo por tener la complejidad (esto es algo que las empresas aman, hacer las cosas difíciles sin justificación).

¿Mas motivos para contratar expertos?

La lista podría ser interminable, pero basta mirar compañías como Google, Apple o Microsoft. Todas ellas dedican gran parte de su tiempo y departamentos de RH en buscar, contratar y hacer sentir bien a sus expertos.

Powered by ScribeFire.

miércoles, 1 de agosto de 2007

De Safari en Windows

En junio pasado durante la "Conferencia mundial para desarrolladores" que Apple organiza cada año; Steve Jobs CEO de la empresa anunció Safarí para Windows. Un par de años después que Apple introdujera su propio navegador para MacOS X desplazando a Internet Explorer en esa plataforma y con la experiencia adquirida desarrollando aplicaciones para Windows (recordemos iTunes) la Beta de Safari 3 esta disponible para descargar en http://www.apple.com/safari/.
Las dos últimas semanas e navegado casi exclusivamente con Safari, aún hay sitios que no funcionan bien en este navegador, por mencionar un ejemplo, no pude dar de alta una cuenta en Windows Live Hotmail.

El argumento principal en la publicidad de Safari es la velocidad, Apple afirma que su navegador descarga las páginas web y ejecuta JavaScript dos veces más rápido que Internet Explorer 7 y 1.6 veces más rápido que Firefox 2. No puedo confirmar que esta afirmación sea verdadera, efectivamente e notado que algunos sitios aparecen más rápido, pero en otros es necesario recargar la página pues Safari se queja de no poder acceder al sitio y provee un mensaje para reportar bugs a Apple. Donde si e notado gran velocidad es a la hora de iniciar el navegador, este se ejecuta en un tiempo mucho menor que Internet Explorer o Firefox.

Al estilo de Apple la apariencia de Safari es la misma que iTunes, sobria e intuitiva, texto donde es necesario e iconos donde no lo es. No hay barra de estado, los bordes son finos, una barra azul llena la barra de direcciones para indicar cuanto de la página se ha descargado, estos y otros detalles visuales hacen de Safari un navegador agradable al usuario y le permiten concentrar la atención en los contenidos.

Safari cuenta con todas las características usuales en los navegadores ya conocidos que vale la pena experimentar como la búsqueda de palabras o texto y la forma de gestionar los marcadores que la primera vez que se inicia Safari importa desde los navegadores instalados previamente. Incluye además un lector de RSS que es sencillamente una maravilla, es posible aglutinar todas nuestras subscripciones RSS y organizarlas de a cuerdo a nuestro gusto o necesidades.

Por ahora no es recomendable (para los mortales) descargar y usar Safari como navegador pre-determinado, como mencioné hay sitios que no se despliegan bien, cuando se cancela la descarga de un archivo, Safari simplemente deja ahí el pedazo que ya descargo, esto no se si es un bug o característica, si se hace clic en reanudar, la descarga continua, pero por lo menos yo no continuo descargas canceladas a no ser que la cancelación halla sido por error. Pero esto no es motivo de des-ánimo, aquellos de espíritu aventurero pueden (y deberían) descargar este navegador y ayudar un poco a los pollitos de mama gallina (Steve Jobs) para arreglar lo que sea necesario arreglar y mejorar o implementar lo que nosotros (los) usuarios consideremos que necesitamos en nuestro navegador. Más navegadores en el mercado es benéfico para todos, así se empujan unos a otros tratando de tener la mejor tajada en este mercado y los más beneficiados... bueno tu sabes quienes somos :)