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.