Blog Consultoria Technology

El cliente, los requisitos y la agilidad

Este tema, por supuesto lo abordamos desde la óptica del desarrollo del software y como bien sabemos el mundo cambia cada vez más rápido, en parte eso ha dado aparición a las metodologías Ágiles principalmente para dar más rápido soluciones al cliente.

Estos cambios vienen normalmente a través de requerimientos. La Ingeniería de Requerimientos o Ingeniería de Requisitos, tiene como uno de los objetivos principales brindar tanto al cliente como al desarrollador, un mecanismo que asegure un acuerdo con el alcance funcional y técnico entre ambos. Esta disciplina comprende la transformación de una necesidad operativa en una descripción del sistema, la definición de los parámetros de desempeño del sistema y la construcción y configuración del sistema mediante el uso de un proceso iterativo de análisis, diseño, prototipos y entregas finales.

La metodología para el desarrollo de software ha ido cambiando posicionándose hoy la tendencia sobre la base del manifiesto AGIL. El Manifiesto Ágil es un documento redactado en 2001 por 17 expertos en programación que supuso un cambio radical en la forma de desarrollar ‘software’. Sin embargo, la necesidad de Ingeniería de Requisitos permanece tan vigente como siempre y es clave para lograr una solución exitosa.
Normalmente las tareas asociadas a la Ingeniería de Requisitos son:
  • Recopilar información e investigar el problema, los interesados y las necesidades.
  • Analizar requerimientos, organizarlos, verificarlos y validarlos.
  • Administrar los conflictos y los cambios. Esto puede implicar buscar aprobaciones y priorizaciones.

  • En “Agile” la refinación de los requerimientos se va realizando en etapas de acuerdo a la evolución gradual de la implementación. Sin duda que la principal fuente de información son los interesados, por eso es clave identificar a todos los interesados (stakeholders).

    Documentar es una de las varias maneras de transmitir el conocimiento, pero muchas veces es clave para Organizar ese conocimiento. Sin embargo, es común que los requerimientos de software no se expresen de manera clara, ni se documenten de manera apropiada; aunque existen diversas metodologías, pero las mismas tienen una serie de fallas, porque no llegan a ser comprensibles para todos y algunas veces no reflejan la realidad con el grado de exactitud necesario.

    La documentación también ayuda a organizar y discutir las ideas, siendo factor importante para lograr una solución de excelencia.

    Es un hecho además que los requerimientos de un proyecto de software cambian, no se actualiza la documentación relacionada y los cambios no son comunicados a todos los interesados en el desarrollo en forma oportuna. Los cambios en requerimientos pueden impactar de manera importante la planificación e incluso provocar un cambio en la arquitectura de la aplicación.

    Hoy en día sabemos que es una certeza que en los proyectos de software los requerimientos cambian. Un aspecto de calidad de una especificación de requerimientos es justamente que sea fácilmente modificable.
    Ahora los cambios verdaderos son los que surgen por elementos nuevos en el ambiente del negocio, los otros son producto de una interpretación que se podía mejorar del problema a resolver.

    Cuando se solicitan cambios al final de un proyecto, los cambios pueden producir un orden de magnitud más costoso que si ese mismo cambio se hubiese pedido al principio. Por eso, es necesario hacer notar la importancia de la oportunidad de los cambios. Los usuarios por lo general saben lo que necesitan, pero en muchas ocasiones no saben cómo solicitarlo y mucho menos cómo documentarlo. Para este proceso es necesario que los analistas puedan ponerse en los zapatos del cliente. Es clave la actitud y la competencia de los analistas.

    Pero qué es cada especificación? Cada especificación de requisitos es el contrato del trabajo a realizar entre el cliente y el desarrollador.
    Una especificación se puede hacer trabajando con ciclos cortos de implementación para ir validando la calidad del trabajo.
    Otro objetivo del análisis de requerimientos es identificar trabajos similares para evitar desarrollar todo de nuevo lo que pide el usuario.

    Ágil e Ingeniería de requisitos son complementarios: Ágil lo asociamos al concepto de entregar rápida de software funcionando e Investigación de requisitos lo asociamos al concepto de entrega del software correcto. La velocidad mal direccionada no tiene valor.

    De acuerdo con la naturaleza de cada proyecto, existen distintos tipos de requerimientos que a su vez tienen niveles de detalle. La cantidad de requerimientos de un proyecto de software puede ser muy grande y difícil de controlar, pero ese control es parte primordial de la aceptación.

    Para el éxito de un desarrollo de software es esencial una comprensión total de la gestión de requerimientos y por ende de la parte del negocio afectado. No importa lo bien diseñado o codificado que esté un programa si no se ha analizado correctamente. El usuario normalmente puede molestarse y el desarrollador muchas se veces se frustra y pierde motivación.

    La principal relación de la gestión de requerimientos de un proyecto de software con el retraso de los proyectos radica en que algunos aspectos quedaron fuera del alcance inicial, el cual nunca fue documentado, por lo que se debe implementar un mecanismo formal para justificarlo.

    En caso de existir la necesidad de un ajuste al alcance del proyecto lo más conveniente es que se maneje con un documento de “control de cambios” de manera que se documente el tiempo que pudiera retrasar el proyecto y también los costos adicionales.

    En CenCo tenemos la experiencia de usuario y tenemos mucha experiencia de cliente incorporada, tenemos una escucha activa y ayudamos en forma proactiva a mejorar las especificaciones. Nos comprometemos con las mismas y cumplimos con los tiempos. Estamos para ayudar a transformar los negocios.

    Leave a comment

    Tu dirección de correo electrónico no será publicada.