Ago 09 2009

Contratar personal

Published by under Joiz

Tips para la contratación de personal en áreas  ligadas a la informática.
— Determine el perfil  que necesita, no es lo mismo un programador Jr a un Sr, y mucho menos uno con experiencia en Cobol y otro en C#
— No realice una entrevista personal hasta que se haya pasado por los siguientes filtros
Analice con cuidado los curriculum vitae de los solicitantes
Realice entrevista telefónica en donde solicite detalles de los proyectos en los que el postulante haya colaborado
Valide las referencias laborales, preste especial atención en el tipo de compañía y actividades realizadas, contacte preferentemente al departamento de RH.
— Realice un pequeño examen, ya sea de lectura de código, solución de problemas básicos o de lógica, cuestione en referencia a la implementación de algoritmos básicos asi como metodologías de desarrollo empleadas, no solo es tirar código.
— Antes de contratar, envié al prospecto a  realizar psicométricos e incluya un estudio de personalidad, nuca se sabe que loco puede estar tocando a la puerta .
— Preste atención en el desempeño del candidato en proyecto en los que deba de trabajar en equipo e interactuar con sus compañeros, en muchas ocasiones,  existen personas que solo tienen resultados exitosos cuando trabajan solas.
— En la contratación de personal con poca experiencia, busque características que pueda desarrollar dentro de su organización, La capacidad  para aprender y emplear lo aprendido es fundamental en estos casos.
— Un titulo universitario no es garantía de capacidad o de conocimiento, simplemente, indica que se concluyo con un plan de estudios, no subestime la capacidad de las personas que no se han graduado, muchos lo los mejores Hacker no terminaron la Universidad .
— Si el puesto implica la codificación, prefiera personal  relacionado a carreras tecnológicas y no administrativas, algunas carreras solo enseñan a utilizar paquetería

Tips para la contratación de personal en áreas  ligadas a la informática.

  • Determine el perfil  que necesita, no es lo mismo un programador Jr a un Sr, y mucho menos uno con experiencia en Cobol y otro en C#
  • No realice una entrevista personal hasta que se haya pasado por los siguientes filtros
  • Analice con cuidado los curriculum vitae de los solicitantes
  • Realice entrevista telefónica en donde solicite detalles de los proyectos en los que el postulante haya colaborado
  • Valide las referencias laborales, preste especial atención en el tipo de compañía y actividades realizadas, contacte preferentemente al departamento de RH.
  • Realice un pequeño examen, ya sea de lectura de código, solución de problemas básicos o de lógica, cuestione en referencia a la implementación de algoritmos básicos asi como metodologías de desarrollo empleadas, no solo es tirar código.
  • Antes de contratar, envié al prospecto a  realizar psicométricos e incluya un estudio de personalidad, nuca se sabe que loco puede estar tocando a la puerta :).
  • Preste atención en el desempeño del candidato en proyecto en los que deba de trabajar en equipo e interactuar con sus compañeros, en muchas ocasiones,  existen personas que solo tienen resultados exitosos cuando trabajan solas.
  • En la contratación de personal con poca experiencia, busque características que pueda desarrollar dentro de su organización, La capacidad  para aprender y emplear lo aprendido es fundamental en estos casos.
  • Un titulo universitario no es garantía de capacidad o de conocimiento, simplemente, indica que se concluyo con un plan de estudios, no subestime la capacidad de las personas que no se han graduado, muchos lo los mejores Hacker no terminaron la Universidad :).
  • Si el puesto implica la codificación, prefiera personal  relacionado a carreras tecnológicas y no administrativas, algunas carreras solo enseñan a utilizar paquetería

No responses yet

Jul 10 2009

Ambientes de Integración Continua (CI)

Published by under Trabajo,Vida

Dentro de las características de los desarrollos de software basados en metodologías agiles (Scrum, XP, Cristal) se considera como una buena practica la creación de ambientes de integración continua.

Dentro de una iteración o un Sprint (Scrum) se encuentran involucrados recursos de muy  diversas áreas, ya sea  en el mismo equipo de desarrollo, o en unos paralelos, la idea principal consiste en realizar la mayor cantidad de actividades en paralelo, lo cual permita sacar el producto con Calidad y en el menor tiempo posible ( hay que recordar que para la mayoría de los cliente el concepto de Market Time es fundamental).

En Ambiente de integración Continua funcionaría de la siguiente manera en una implementación de SCRUM:

Al momento que un programador sube sus cambios al sistema de versiones del equipo (Git, subversion,CVS,etc…) el  sistema de Integración Continua, Baja los cambios e inicia el proceso de compilación,  si el producto logra compilar, envía un mail al programador que subió los cambios y a los interesados, posteriormente, ejecuta  una corrida de pruebas automáticas (adivinaron,  aquí puede entrar TDD o en su caso, el garantizar que se creen los scripts de pruebas  durante la fase de desarrollo con las reglas de negocio fundamentales ).

Si las pruebas automáticas falla (se prueban todos los módulos, no solo el que  se haya tocado por el cambio 🙂 ) se envían nuevamente correos electrónicos al equipo para que estén enterados y procedan a validar que fue lo que ha fallado.

Si las pruebas automáticas son correctas, se envía un correo al equipo de testing,   a fin de  que realicen pruebas de GUI, y validen otros puntos del producto, incluso, en algún momento, puede ser enviado al equipo de traducción, en caso que la versión tenga que salir para mas de un idioma.

Como pueden darse cuenta, la integración continua dentro de un Sprint o iteración, permite reducir los tiempos muertos que se provocan al utilizar  una metodología basada en una cascada, toda vez que esta se realiza cada vez que sube un cambio al repositorio central de fuentes.

Ventajas:

Permite identificar errores de compilación y dependencias con otras partes del proyecto de manera rápida y oportuna

Permite realizar la ejecución de pruebas unitarias automáticas y mantener al equipo informado del resultado de las mismas

Desventajas

La ya clásica resistencia al cambio,  equipos que están acostumbrados a metodologías basadas en cascada, se les dificulta de  manera enorme el tener que solucionar errores conforme actualizan su cambios en el repositorio de fuentes, y de hecho, tienden a no hacer las actualizaciones si no hasta el último momento, lo cual rompe el paradigma ágil de este técnica

Algunos productos que incorporan CI son :

Microsoft Fundation Team

CruiseControl ( Open source )

One response so far