viernes, 5 de octubre de 2007

Perfiles IT (Desarrollo de Software)

La idea de este post -dadas las consultas que me han hecho ultimamente- es pasar en limpio una descripción de los perfiles buscados en el mercado de Recursos Humanos en Tecnología asociados al desarrollo de Sistemas.

En este post ( y sucesivos) pasaré en limpio la "cáscara" para esos perfiles. La generalidad de características que engloban los mismos.

Ahora bien, es trabajo del recruiter y de su cliente ( interno o externo), hacer una adecuación de los perfiles generales a las búsquedas que deba cubrir. Para tener perfiles adecuados y específicos no solo a las características técnicas, experiencias y competencias a cubrir sino también a la cultura empresarial del futuro empleador.

Según un documento de la Comisión Desarrollo de Recursos Humanos de CESSI, conocido como la "guía de perfiles para las diferentes posiciones del Area de Informática", encontramos la siguiente definición completa de los puestos relacionados al área de Desarrollo de Software.

  1. ANALISTA DE SISTEMAS / ANALISTA TÉCNICO FUNCIONAL
  2. DESARROLLADOR
  3. ARQUITECTO / DISEÑADOR DE SOLUCIONES
  4. ESPECIALISTA EN SEGURIDAD DE APLICACIONES
Podemos tomar entonces este informe, para describir la generalidad de estos perfiles.

Un analista de sistemas ( técnico/ funcional) tiene entre sus responsabilidades
  • Relevamiento, Análisis y diseño de los sistemas informáticos
  • Supervisión de la programación, documentación, actualización ymantenimiento de los sistemas informáticos.
  • Relevamiento de datos de los proyectos a desarrollar.
  • Diseñar las salidas, entradas, archivos y programas de cada sistema.
  • Documentar los sistemas ( manual del usuario y diseño del mismo)
  • Supervisar pruebas .

En cuanto a los conocimientos / Experiencia Requerida para este perfil

JUNIOR

  • Conocimientos en Metodologías de Desarrollo de Software, herramientas informáticas,uso de la computadora y programas de aplicación (hardware y software), Lógica y Matemática, diagramación lógica, algoritmos y estructuras de datos, Análisis y diseño (Estructurado, Orientado a Objetos, etc.), administración, organización ymodelización de información y el proceso de comunicación asociado, Análisis y Diseño de Procesos de Negocios, programación, bases de datos.

SEMI-SENIOR: / SENIOR

  • Trayectoria laboral en el área de incumbencia.
  • Experiencia en utilización de Metodologías de Desarrollo de Software.
Competencias
  • Actitud crítica, de perfeccionamiento y actualización permanente
  • Capacidad para trabajar en forma cooperativa y constructiva, en equipos multidisciplinarios
  • Capacidad de abstracción: comprender la “big picture” mas allá de detalles de implementación
  • Permanente capacidad para derivar de la práctica elaboraciones conceptuales.
  • Orientación al cliente
  • Proactividad
  • Flexibilidad
  • Capacidad de análisis y solución de problemas
  • Escucha y comunicación
Un desarrollador tiene como tarea "Diseñar, programar, implementar y mantener aplicaciones", con los siguientes conocimientos / experiencia requerida según el perfil buscado:

JUNIOR
  • Conocimiento de Idioma Inglés, diagramación lógica, algoritmos y estructuras de datos, programación: a) Estructurada, b) Orientada a Objetos (OO), etc., UML, bases de datos y sintaxis SQL, Experiencia académica con un lenguaje de programación

SEMI-SENIOR

  • Experiencia de trabajo: mínimo 1 (un) año, Conocimientos de UML, implementación y configuración de aplicaciones, testing unitario, funcional y de stress de aplicaciones, trabajo con Sistemas de control de versiones, Practicas de refactoring, Análisis y Diseño: a) Estructurado, b) Orientado a Objetos, etc.

SENIOR

  • Experiencia de trabajo: Mínimo 3 (tres) años, Conocimientos de patrones de software empresarial, arquitectura de software y aplicaciones N-Capas, Prácticas de Testing y Refactoring, Certificación internacional de proveedor / herramienta
Hay que tener en cuenta los conocimientos adicionales segun la orientación sea: cliente servidor. aplicaciones web o Aplicaciones Móviles

Competencias

JUNIOR

  • Capacidad de aprendizaje
  • Trabajo en equipo
  • Proactividad
  • Flexibilidad
  • Capacidad de análisis y solución de problemas

SEMI-SENIOR / SENIOR

  • Orientación al cliente
  • Capacidad para establecer prioridades
  • Escucha y comunicación
  • Orientación a resultados
  • Pensamiento de integración
  • Capacidad para detectar riesgos
Un Arquitecto / Diseñador de Soluciones, tiene como responsabilidad definir y diseñar la configuración de los componentes de las aplicaciones de acuerdo a la estructura del problema planteado, los requerimientos funcionales, los nofuncionales y las necesidades de negocios de la organización. Para ello necesitará acreditar los siguientes conocimientos / experiencia según el nivel requerido

JUNIOR
  • Idioma Inglés, sólidos conocimientos de diagramación lógica, algoritmos y estructuras de datos, programación, análisis y diseño, patrones de software empresarial, patrones de integración y patrones de arquitectura empresarial, arquitectura de software y aplicaciones N-Capas, bases de datos, tecnologías de comunicación de aplicaciones distribuidas.

SEMI SENIOR

  • Conocimientos y experiencia (mínima 3 años) en arquitecturas orientadas a servicios y servicios web XML, prácticas de Testing Unitario y Refactoring, uso de Metodologías Formales (UnifiedProcess, Rational Unified Process, etc.), uso de Metodologías Ágiles (eXtremeProgramming, SCRUM, etc.), trabajo con el sistema de control de versiones.

SENIOR

  • Experiencia mínima en 5 (cinco) proyectos como arquitecto

Especialmente en este perfil, hay que tener en cuenta las siguientes competencias

  • Creatividad, Planificación y control, Pensamiento de integración, Pasión por la tecnología
Por último, el Especialista en Seguridad de Aplicaciones trabajará apoyando y guiando a los desarrolladores y arquitectos de soluciones para asegurar el código y la arquitectura lógica contra posibles ataques y brechas de seguridad. Con los siguientes conocimientos / experiencia requerida

JUNIOR / SEMI-SENIOR
  • Idioma Inglés. Sólidos conocimientos de diagramación lógica, algoritmos y estructuras de datos, programación, análisis y diseño, bases de datos, mejores prácticas para la configuración e instalación de aplicaciones seguras, estrategias de codificación para prevenir ataques varios ( Problemas de Memoria,Buffer Overflow / Underun,Errores Aritméticos,Cross-Site Scripting,SQL Injection,Debilidades criptográficas,Problemas de UNICODE,Ataques de denegación de servicio, etc.) Conocimientos teórico-prácticos de criptografía simétrica, asimétrica, firma digitaly hashing.

SENIOR

  • Conocimientos y experiencia de trabajo con prácticas de Testing y refactoring. Certificación internacional de proveedor / herramienta. Conocimientos de Modelado de Amenazas (Threat Modeling), Validación de identidad y roles en conjunto con el sistema operativo o el servidor de red, protocolos de transporte seguro (IPSec, SSL, Kerberos, WEP)

Competencias

JUNIOR

  • Capacidad de aprendizaje
  • Trabajo en equipo
  • Orientación al cliente
  • Proactividad
  • Flexibilidad
  • Capacidad de análisis y solución de problemas

SEMI-SENIOR / SENIOR

  • Capacidad para establecer prioridades
  • Autonomía
  • Planificación y control
  • Escucha y comunicación
  • Orientación a resultados
  • Pensamiento de integración
  • Capacidad para detectar riesgos
  • Visión de negocio
  • Guía y conducción de personas
  • Coordinación con el cliente
En próximos posts, describiré entonces, los perfiles relacionadas a las otras áreas: Infraestructura, Funcional y Calidad, para luego ver algunas recetas de adecuación a búsquedas.

No hay comentarios: