Gerencia de Proyectos - Roles Funcionales Parte I




Roles funcionales en proyectos de desarrollo de software – Parte I




El proceso de desarrollo de software se lleva a cabo mediante procedimientos los cuales difieren de una organización a otra. El proceso que una organización o persona que utiliza para desarrollar software puede estar influenciado por las características de su entorno y la situación, pero puede fallar en otro conjunto de circunstancias.
Las diferencias en los entornos son las que hacen difícil definir un proceso de desarrollo de software único con un conjunto de términos o características con las cuales todos los profesionales estén de acuerdo. En este sentido nuevos enfoques, tales como la programación extrema y el desarrollo ágil, ponen de manifiesto las diferentes perspectivas en cuanto al proceso, los puntos de similitud y de cambios entre cada uno.
Sin embargo, a pesar de estos cambios hay algunas características que siguen siendo las mismas. Siempre habrá una necesidad de entender un problema de negocio, convertir este problema en una arquitectura de software, convertir la arquitectura en una solución, prueba de la solución, y puesta en producción de la solución. Aunque cada uno de estos procesos pueden cambiar en cierta medida sobre la base de los modelos de programación y herramientas que se utilizan, fundamentalmente, hay algunas funciones, que cada proceso. Una persona puede cumplir todos los roles o un conjunto de funciones, o una función muy específica. A pesar de esto hay una necesidad de todas las funciones debido a que cada uno tiene un propósito. En el diagrama organizacional que se presenta a continuación se puede tener una idea de cómo acoplar cada posición dentro de una organización.



Funciones o roles comunes:
Hay una serie de papeles que existen en la mayoría de procesos de desarrollo de software. Como se mencionó anteriormente un miembro del equipo puede ser llenado muchos papeles y algunas funciones pueden ser suprimidas para un tipo específico de proyecto, pero todas estas funciones existen en una forma u otra en cada proyecto de desarrollo de software:

Analistas Funcionales: Los analistas funcionales tienen la tarea de llevar a cabo el levantamiento de información sobre los requisitos funcionales para luego convertir los procesos empresariales mediante el uso de la tecnología.
Arquitecto de software: El arquitecto de software es responsable de la transformación de las necesidades establecidas por los analistas funcionales en un conjunto de documentos de arquitectura y diseño que son utilizados por el resto del equipo para crear la solución. El Arquitecto es responsable de la adecuación de tecnológica para que el problema esté resuelto.
Jefe de Desarrollo: El rol de Jefe de desarrollo se centra en ofrecer más detalle a la solución del arquitecto. Esto incluye la creación de las especificaciones detalladas. De igual modo funge como la primera línea de apoyo para los desarrolladores que necesitan ayuda para entender un concepto particular de la aplicación o solución a desarrollar.
Desarrollador: El corazón y el alma del proceso, escribe el código que genera las especificaciones previstas.
Analista de Calidad: La función de garantía de la calidad está diseñada para encontrar errores antes de la entrega a los clientes finales. Utilizando una variedad de técnicas que van desde introducir datos, pruebas con scripts automatizados, el equipo de garantía de calidad es responsable de velar por la calidad de la solución y su ajuste a los requisitos recolectados por los analistas funcionales.
Despliegue: Se encarga de llevar a cabo la puesta a producción de todos los paquetes del código compilado y los archivos de configuración a través de los medios o en los sistemas. A tal efecto, incluye procedimientos de instalación automatizada de software donde se detalle paso a paso el proceso.
Formación: El rol de formación es responsable de la documentación del sistema, así como de llevar a cabo la formación basada en la solución, con el objetivo de ayudar a los usuarios en el proceso de aprendizaje y entendimiento del funcionamiento del sistema y lo que pueden hacer con la aplicación.
Gerente de Proyecto: El gerente de proyecto es responsable de garantizar la coherencia en la presentación de informes, la reducción del riesgo, de tiempos y el control de costos.
Gerente de Desarrollo: El gerente de desarrollo es responsable de la gestión de las múltiples prioridades de los proyectos en conflicto. De igual modo es responsable de resolver las condiciones de conflicto del equipo en el uso del tiempo en los proyectos.
Amplio Entendimiento: A pesar de que la comprensión del desarrollo de software es crítica, hay otros ámbitos en los cuales la comprensión puede ser de un valor incalculable. Por ejemplo, comprender cómo los equipos internos de un computador incluyendo la memoria, caché, discos duros, etc, puede ayudarle cómo aprovechar mejor los recursos. La amplia comprensión de las necesidades de la industria puede ser muy valiosa en términos de creación de soluciones que se adapten a la organización. El equipo de QA puede beneficiarse por medio de una amplia comprensión del proyecto con el objetivo de minimizar los costos de control de calidad al tiempo mejorar los procesos de prueba. En resumen, un amplio entendimiento del proceso, del negocio y los distintos componentes de la solución, pueden ayudar a cada función en el proyecto.
Múltiples Perspectivas: La capacidad de enfoque de las soluciones en base a múltiples perspectivas es esencial para el desarrollo de software. Comprender cómo cada persona que está trabajando en un problema tiene distintos puntos de vista sobre un tema en particular, o cómo los diferentes clientes ven la solución, es importante para poder encontrar el mejor resultado tomando como base la información que se disponga. Siempre hay múltiples maneras de ver la solución a un problema. La habilidad es encontrar la mejor opción de la lista. Cuanto más grande sea la lista de opciones (perspectivas), se podrá encontrar la mejor solución.
Habilidades Personales: La capacidad de interactuar con otras personas y ser parte de un equipo es fundamental para casi todas las funciones en un proyecto de desarrollo de software. Cuanto más bajo sea el total de estas habilidades en el equipo, más alta es la probabilidad de que el proyecto culmine con algún problema.
Aprendizaje permanente: Debido al constante cambio que tiene la industria de las tecnologías de la información en general y específicamente el desarrollo de software, toda persona que se desarrolla en este ámbito de la tecnología debe mantenerse en un continuo aprendizaje. En este aspecto todo profesional deberá hacerse la pregunta: ¿Qué se aprende hoy será obsoleta mañana? Cada nueva experiencia es una nueva oportunidad de aprender y cada nuevo año trae consigo la necesidad de adquirir nuevas habilidades y de renovación de los conocimientos.
Experto en el negocio: Son personas que tienen el conocimiento de cómo funciona el proceso. Las actividades que lleva a cabo este rol son diferentes de las otras funciones, ya que está en constante cambio ante las solicitudes de clientes (internos o externos). Son personas que rara vez pertenecen al área de tecnología de la información - excepto cuando la solución está diseñada para apoyar a la tecnología de la información. Frecuentemente son quienes reciben el beneficio de la automatización de algún proceso.


Por supuesto, cada organización tiene su propio forma de asumir estas funciones, sin embargo, estas son se ven con mayor frecuencia en una organización donde se llevan a cabo procesos desarrollo de software.

Habilidades críticas para cada función:
Durante los roles funcionales de un proyecto se han de identificar conjunto común de competencias que son esenciales dentro de las aptitudes que los profesionales a los cuales se les han de asignar deben cumplir o poseer. El común de conocimientos a todos los roles funcionales es el siguiente:

Comprensión del Negocio: A pesar de que algunas funciones se centran muy especialmente en torno a determinados aspectos de la comprensión y la conversión de los requerimientos del negocio, cada rol en el proceso debe tener una conciencia y sensibilidad a los procesos de negocio y las necesidades que requieren de la tecnología. Si esta tecnología puede aplicarse, pero no puede resolver las necesidades reales, entonces se considera como un fracaso.

0 comentarios:

Publicar un comentario

Popular Posts

Recent Posts

Video of the Month

Formulario de contacto

Nombre

Correo electrónico *

Mensaje *