Logo de Posgrados FRRO - UTN
Programador

Área ocupacional:

Este profesional se inserta ocupacionalmente en distintos tipos de organizaciones donde se realiza desarrollo de software, ya sea por requerimiento de otras organizaciones locales o extranjeras o por solicitud de usuarios particulares.

Entre dichas organizaciones se cuentan empresas que proveen software conjuntamente con servicios de asesoramiento y consultoría, y que desarrollan sus propios productos de software para vender en el país o en el exterior. También en organizaciones dedicadas a otras actividades, pero que producen el software que necesitan para desarrollar sus propias actividades o que integran en productos que venden.

El software debe satisfacer las especificaciones de los requerimientos, ya sean 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 encabezado por un gerente o líder, quien es responsable por el proyecto. Integra diversos roles ocupacionales, como el de arquitecto de software, que establece el diseño general del sistema y especificaciones de calidad de la solución, así como una serie de programadores que son quienes realizan la codificación de acuerdo a las especificaciones recibidas. 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 programadores.

Eventualmente pueden participar diseñadores gráficos y especialistas en otros aspectos específicos.

La posición ocupacional de la figura que es referencia del presente trayecto es la que suele denominarse Programador. Integra equipos de proyecto dedicados al desarrollo o mantenimiento de software y recibe asignaciones específicas que debe resolver en lapsos que suelen medirse en términos de días o semanas, produciendo módulos o programas que satisfagan especificaciones y se integren al sistema objeto del proyecto.

A partir de especificaciones de diseño y del conocimiento de la arquitectura del sistema, los programadores construyen la parte que les fuera asignada en base a desarrollos ya existentes y adaptando o escribiendo uno nuevo para cumplir con los requerimientos. Testean su trabajo, verifican unitariamente lo producido y lo entregan para ser probado   integralmente e integrado al resto.

Habitualmente 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. Resuelve estas asignaciones individualmente o trabajando en pares, recibiendo la supervisión y asesoramiento de un líder de proyecto con quien consulta dudas y decisiones significativas o comunica inconvenientes.

También recibe apoyo y brinda colaboración a otros miembros del grupo.

También puede desempeñarse en forma autónoma, asumiendo la mayor parte de las tareas propias del proceso, sobre todo trabajando en forma independiente resolviendo problemas de pequeñas organizaciones que requieren sistemas de baja complejidad y reducida dimensión.

De lo anterior se desprende que el Programador desarrolla su actividad en las siguientes áreas ocupacionales:

• Servicios informáticos para pequeñas y medianas empresas en áreas de desarrollo y producción de software.

• Empresas de distintos sectores de actividad económica en áreas de informática o de procesamiento de datos.

• Por cuenta propia o en pequeños emprendimientos asociativos de desarrollo y producción de software.

• Empresas de servicios de mantenimiento de sistemas informáticos.

• Comercialización de equipos y sistemas informáticos.

• Administración pública, en las áreas de mantenimiento y gestión de la información

• ONGs, en áreas vinculadas con el procesamiento de datos para la gestión.

• Mantenimiento de sistemas informáticos en entornos personales

• Asesoramiento técnico y venta de sistemas y aplicaciones informáticas.

 

Funciones:

1. Escribir código de programación de acuerdo a especificaciones formales.

El Programador interpreta las especificaciones de diseño o requisitos de las asignaciones a programar comprendiendo en su contexto inmediato cuál es el problema a resolver, determinando el alcance del problema y convalidando su interpretación a fin de identificar aspectos faltantes.

Desarrolla algoritmos que dan soluciones a los problemas asignados o derivados de los mismos y efectúa pruebas de unidad de los módulos para asegurar que cumplan con las especificaciones del diseño a fin de tener un código eficiente, documentado, fácil de entender y mantener.

2. Interpretar especificaciones de diseño de las asignaciones a programar en el contexto del desarrollo de software en el que participa.

El Programador recibe las especificaciones formales o informales del Líder de Proyecto y analiza el problema a resolver; interpreta el material recibido y clarifica eventuales malas interpretaciones o desacuerdos convalidando su interpretación con el responsable del proyecto.

 

3. Planificar su trabajo en el contexto del equipo de desarrollo del proyecto.

El Programador establece secuencia y orden de trabajo, identifica prioridades y tiempos de consulta para aspectos no previstos, aplicando metodologías de resolución de problemas para la planificación y organización de su trabajo.

4. Verificar el código desarrollado.

El Programador determina las necesidades de cobertura en función de las características y normas de calidad del proyecto, identifica las clases de equivalencia de datos utilizados internamente o intercambiados y ejecuta los casos de prueba.

Realiza las pruebas correspondientes, registrando los datos y resultados alcanzados, así como las acciones correctivas realizadas para solucionar las fallas encontradas.

5. Depurar estructuras lógicas o códigos de programas.

El Programador relaciona resultados incorrectos con los datos o porciones de código que los originaron, analiza estos datos y/o partes del código que causaron el mal funcionamiento y determina el tipo de corrección o reemplazo requeridos; verifica que la corrección y/o reemplazo solucionen el mal funcionamiento o la salida de resultados erróneos.

6. Manejo y manipulación de los datos y su relación con las aplicaciones desarrolladas o a desarrollar.

El Programador conoce la estructura de los datos, su organización, la relación entre entidades y su uso en las aplicaciones desarrolladas o por desarrollar.

También consulta a pares y al líder del equipo de trabajo para reflexionar y recibir ayuda que le permita resolver problemas relacionados con el manejo de los datos o aporta sus conocimientos a otros.

7. Realizar la documentación técnica y de usuarios de acuerdo con los requerimientos funcionales y técnicos recibidos.

El Programador realiza la documentación describiendo qué hace cada parte del código y por qué se incluyen, qué datos o situación lo originaron; registros y evidencias de las actividades realizadas y de los incidentes observados, debiendo identificar cada versión de acuerdo a estándares establecidos dentro del equipo de desarrollo.

 

Alcance:

El Programador está capacitado, de acuerdo a las actividades que se detallan en el Perfil Profesional, para escribir, testear, depurar y mantener el código de programación de los programas en el marco de un equipo de trabajo o en forma individual bajo supervisión.

Los programadores escriben los programas de acuerdo a las especificaciones formales dadas por los analistas de sistemas. Ellos transforman el diseño en instrucciones concretas que pueden ejecutarse en la computadora.

También tienen como tarea testear el programa en busca de bugs (errores de programación) dentro del proceso de prueba y depuración de errores.

El software necesita ser actualizado, reparado, modificado y ampliado, es decir mantenido, siendo esta tarea realizada en parte por los programadores.

Este profesional requiere supervisión en todas las actividades que desarrolla. Siempre reporta a superiores y se remite a ellos para solicitar instrucciones sobre su desempeño.


Capacidades:

·         Interpretar información, escrita o verbal, relacionada con especificaciones de diseño, identificando simbología propia de la actividad, verificando su pertinencia y alcance para realizar una acción requerida.

·         Transferir la información de los documentos a su tarea, relacionada con desarrollo de software, verificando su pertinencia y alcance para realizar una acción requerida a partir de la especificación de diseño recibida.

·         Identificar los problemas que se presenten en el desarrollo o programación a partir del análisis, jerarquización y priorización de la información.

·         Integrar las técnicas de trabajo, la información, la producción de códigos y reutilización de códigos existentes, el armado de estructuras de datos, la construcción y modificación de clases y objetos, el diseño de interfaces de usuario, los criterios de calidad de software en las acciones de desarrollo propias de su actividad.

·         Aplicar criterios de calidad de software (cohesión y acoplamiento) en los procesos de desarrollo de software, tendiendo a generar propuestas de mejoramiento continuo en métodos de programación, técnicas de prueba unitaria, verificación y depuración; y organización del trabajo en equipo.

·         Establecer relaciones de cooperación, coordinación e intercambio en el propio equipo de trabajo y con otros equipos de desarrollo de software que intervengan con el equipo de trabajo.

·         Transmitir información técnica de manera verbal, sobre el desarrollo de piezas de software, que le fueron encomendadas.

·         Gestionar y administrar sus propios recursos (principalmente tiempos), necesarios para el avance de su propio trabajo y el trabajo en equipo, según las condiciones establecidas por los responsables de las tareas encomendadas.

·         Gestionar la relación comercial que posibilite la obtención de empleo y las relaciones que devengan con los prestadores de servicios.