17 June 2007

Póngase en los zapatos de los otros roles!

Es una práctica que viene con la experiencia y el conocimiento del proceso completo, la capacidad de ponerse con cierta frecuencia en el lugar de otros roles del equipo que ejecuta un proyecto de ingeniería de software.

Hago en este texto un análisis rol por rol, indicando el beneficio que puede traer ubicarse en la posición de otros.

Analista de Requerimientos

Es sumamente útil para el analista de requerimientos, al momento de especificar características del sistema o funcionalidades en forma de casos de uso, ubicarse en la posición del equipo de desarrollo y de los encargados del diseño de casos de prueba. Analizar su producto desde esta posición le permitirá evaluar si el nivel de especificidad es suficiente para que el requerimiento pase de forma fluida a las siguientes etapas del ciclo de desarrollo.

  • Están claras las restricciones que impone el negocio?
  • Los datos que se manejarán están totalmente claros? longitudes, alcance, etc.
  • El perfil de los usuarios está claramente descrito?
  • Los puntos de integración con otros sistemas fueron analizados y documentados?
Equipo de Desarrollo

Uno de los problemas más comunes en el área, es que un equipo de desarrollo encargado de mantenimiento consiga una implementación pobremente documentada, sin indicativos de los elementos relacionados con el mantenimiento de una funcionalidad en particular o las decisiones de diseño involucradas.
Un desarrollador que trabaja en la implementación de un caso de uso debe, como parte integral de su trabajo, ubicarse en la posición de un desarrollador que llega al proyecto en un futuro sin el contexto que él posee, y que deba incorporar un cambio de requerimiento en la funcionalidad en la que el trabaja.
  • Cuáles son los elementos/componentes que participan en la realización de esa funcionalidad?
  • Qué reglas o restricciones de negocio están involucradas?
  • Está el código lo suficientemente claro y refactorizado para facilitar el proceso de lectura y comprensión?
Está ampliamente documentado los altos costos de mantenimiento en que se puede incurrir en caso de no contar con los insumos necesarios en esta etapa.

Arquitecto

Los arquitectos deben diseñar los lineamientos de construcción de un sistema teniendo en cuenta que su producto debe ser lo suficientemente claro y completo, para que diferentes equipos de desarrollo puedan producir un sistema implementado de la misma forma. El arquitecto debe ubicarse en el rol del desarrollador y tratar de implementar un caso de uso sobre esa arquitectura, con el objetivo de identificar los puntos que aún quedan abiertos y la conveniencia de las decisiones de diseño que se plasmaron en la arquitectura.
  • La arquitectura habilita un desarrollo ágil?
  • Está clara la distribución de las responsabilidades en los diferentes componentes?
  • Están claros los lineamientos de manejo de errores?

En general, el colocarse en la posición de otro, permite evaluar el producto que se ha producido obviando el contexto o conocimiento que una persona tiene sobre ese producto, permitiendo evaluar objetivamente si se ha dejado la suficiente información documentada.

No comments: