Perfil Profesional

El Técnico Superior en Desarrollo de Software estará capacitado para producir artefactos de Software, lo que comprende su diseño detallado, construcción -reutilizando elementos existentes o programándolos enteramente- y verificación unitaria, así como su depuración, optimización y mantenimiento; desarrollando las actividades descriptas en el perfil profesional y cumpliendo con los criterios de realización establecidos para las mismas en el marco de un equipo de trabajo organizado por proyecto.

El proceso de desarrollo de software es una tarea grupal, o individual y multidisciplinaria que se organiza por proyectos. Cada proyecto es negociado y acordado con el cliente o usuario y llevado a cabo por un equipo de trabajo constituido “ad-hoc”, conducido y administrado por un líder que mantiene la relación diaria con el cliente o usuario y asume la responsabilidad operativa del proyecto.

El software debe satisfacer especificaciones de requerimientos, ya sean éstas formales o informales, las que pueden venir dadas por el cliente, algún consultor especializado en el tipo de problemas que aborda la aplicación o ser elaboradas por algún analista funcional integrante del equipo de trabajo del proyecto.

El equipo de desarrollo suele estar integrado por un arquitecto de software, que establece el diseño general del sistema y especificaciones de calidad de la solución, un grupo de desarrolladores de software, que son quienes lo construyen, y otro de “testing”, que son los encargados de verificar que el software producido cumpla los requisitos, tanto funcionales como de comportamiento, oportunamente establecidos. Del equipo de trabajo pueden participar uno o más analistas técnicos que se ocupan de detalles relativos a aspectos de tecnología, seguridad, bases de datos o estándares de programación y asesoran y dan apoyo técnico a los desarrolladores. Eventualmente pueden participar diseñadores gráficos y especialistas en otros aspectos específicos.

A partir de especificaciones de diseño y del conocimiento de la arquitectura del sistema, los desarrolladores de software (también denominados analistas programadores o programadores) diseñan en forma detallada la parte del software que les correspondiere, la construyen, preferiblemente en base a artefactos de software ya existentes y adaptando o escribiendo lo que sea necesario, así como documentándola para facilitar su posterior mantenimiento por otros. Verifican unitariamente lo producido y lo entregan para ser probado e integrado al resto.

Habitualmente, los desarrolladores, que pueden estar especializados en una tecnología determinada, trabajan individualmente o de a pares dentro de un grupo más numeroso, brindándose mutuamente colaboración para resolver los problemas que deben enfrentar y los que tienen mayor experiencia suelen brindar orientación (coaching) a los más noveles.

En algunos casos, sobre todo en lugares en los que organizaciones de escasa dimensión y recursos no necesitan de software sofisticado o no pueden plantear requisitos de

calidad para el software que necesitan, el desarrollo de software suele ser efectuado por realizadores independientes que asumen todas las funciones del equipo de desarrollo.

El Técnico Superior en Desarrollo de Software participa en proyectos de desarrollo de software desempeñando roles que tienen por objeto producir artefactos de software (programas, módulos, objetos). Estos artefactos suelen integrarse en aplicaciones o subsistemas que interactúan entre sí, con otras aplicaciones ya existentes desarrolladas con la misma o distinta tecnología, con el sistema operativo del computador u otro software de base (motor de base de datos, navegador, monitor de comunicaciones) configurando distintas capas de software que pueden estar distribuidas en diversas máquinas situadas en la misma o distintas ubicaciones.

La actividad del desarrollador de software, a pesar de que muchas veces se reutilicen partes ya existentes, no es rutinaria. Cada asignación representa la necesidad de dar satisfacción a determinados requisitos. Ello requiere comprender el problema y la arquitectura en la que estará inserta la solución, idear estrategias de resolución y dominar el lenguaje y ambiente de programación a emplear, así como aplicar buenas prácticas de programación, lo que incluye documentar decisiones significativas de diseño y las limitaciones que tendrá el artefacto construido.

Para poder desarrollar plenamente su profesionalidad, y teniendo en cuenta la Resolución del CFE Nº 129/11, el técnico superior tiene además que lograr ciertas capacidades que resultan transversales a todas sus funciones y tienen que ser desarrolladas y promovidas durante el transcurso de su formación. Entre ellas, capacidad de:

  • Abstracción: implica descartar o reducir detalles poco significativos de la información sobre un problema para concentrarse en pocos elementos por vez, lo que resulta en una reducción de la complejidad, que permita conceptualizar de modo más simple un dominio de problemas para facilitar su comprensión y manejo en forma genérica de sus posibles soluciones.
  • Pensamiento combinatorio: conduce a la consideración sistemática de un conjunto de alternativas, lo que incluye el manejo mental de muchas variables o detalles del problema sin perder nunca de vista el concepto o la estrategia general de resolución.
  • Autorregulación: implica manejarse respetando reglas y limitaciones, tanto explícitas como implícitas, sean éstas propias o del equipo de trabajo; actuar ateniéndose a un orden propio que le facilite el acceso a lo que puede necesitar, reconocer y guardar; referenciar la información y registrarla, de tal manera que le facilite acceder posteriormente en forma rápida para evaluarla y recuperarla.
  • Comunicación apropiada: implica una disposición a reconocer que existen otros que pueden aportar información útil o a quienes pueda interesar lo que hace. Supone reconocer su rol y el de cada integrante del proyecto, transmitir la información necesaria en forma precisa y en un lenguaje apropiado para el entendimiento mutuo en interacciones individuales o grupales, o en forma escrita, utilizando, si es necesario para ello, el idioma inglés, que debe interpretar con propiedad a nivel técnico.
  • Trabajo en equipo: implica adoptar una actitud abierta, estar dispuesto a compartir información y conocimientos, a tomar en cuenta a los destinatarios del producto que está construyendo, a brindar, pedir y aceptar ayuda cuando ésta resulte necesaria para facilitar su propia labor o la de otro integrante del equipo.

Además, se requiere:

  • Actitud de aprendizaje permanente: implica aprender a capitalizar experiencias a partir de su propio trabajo, a tomar iniciativas para actualizar o profundizar sus conocimientos y habilidades, investigar fuentes de información o herramientas que le puedan ser útiles.
  • Actitud ética: implica el ejercicio profesional respetando principios éticos y adecuación al marco legal, como así también conocer y aplicar la normativa legal vigente