Alcance de proyectos

image
image
image
image
Alcance Proyectos

Conocer el alcance funcional del proyecto

No siempre se cuenta con la información necesaria para el desarrollo del sistema lo que hace el proceso más complejo e incierto. En estos casos, es necesario definirlo antes de empezar a desarrollarlo. Para lograr este paso se requieren los siguientes puntos:

  • Coordinar reuniones para poder alcanzar un entendimiento mayor del negocio. Si es necesario realizar un relevamiento y análisis personalmente;
  • Investigar sistemas similares que puedan servir como referencia;
  • Entender la industria a la que el cliente pertenece y el tipo de proyecto;
  • Validar y priorizar los requerimientos funcionales creados.

Determinar los requerimientos “no funcionales”

A diferencia de los requerimientos funcionales que describen “lo que el sistema debe hacer”, es importante considerar los requerimientos no funcionales que describen “cómo” el sistema debe funcionar, ya que varían mucho a la hora de determinar el costo de un software a medida.

Por ejemplo, un requerimiento funcional muy común puede llegar a ser “Mostrar a todos los clientes en una pantalla”. Por otra parte, un requerimiento no funcional que podemos determinar de este sería: “El sistema debe responder en un tiempo menor a 3 segundos”.

Requerimientos NO funcionales

  • Escalabilidad
  • Performance
  • Alta disponibilidad
  • Seguridad
  • Usabilidad
  • Interoperabilidad
  • Mantenimiento

La importancia del requerimiento no funcional va a depender del tipo de proyecto y de la industria a la cual el negocio pertenece. Además, es importante aclarar que, según el contexto del proyecto, la complejidad para implementarlos puede variar.

Planificación del proyecto

Las estimaciones son la base de la planificación, ya que te permiten determinar si tus objetivos son alcanzables o no. En caso de que no lo sean, los planes deberán reconocer la diferencia y considerar los riesgos altos del proyecto.

Por otro lado, si los objetivos son alcanzables y no hay diferencia entre estos y las estimaciones, entonces los planes asumirán un riesgo bajo y serán diagramados bajo este concepto. Los siguientes son ejemplos de consideraciones a tomar durante la planificación que dependen de las estimaciones:

  • Identificar el camino crítico del proyecto;
  • Crear una estructura completa del “breakdown” del trabajo (cargar y documentar los requerimientos);
  • Priorizar funcionalidades para la entrega;
  • Dividir el proyecto en iteraciones.

Estrategias para estimar el costo de un sistema a medida

Luego de analizar el tipo de proyecto, su complejidad, la información obtenida y recolectada, la cantidad de requerimientos (funcionales y no funcionales) y el tiempo de entrega de la estimación, es momento de elegir la estrategia correcta.

Estimación de software tradicional

Consiste en estimar un requerimiento y asignarle un valor de tiempo estimado fijo, el cual depende del nivel de complejidad detectada y de la experiencia del profesional que estima. Para poder ganar más precisión, lo que se suele hacer es dividir el requerimiento en componentes (interfaz de usuario, negocio, base de datos, etc.) y determinar un tiempo para cada uno. Luego, la suma de las estimaciones de cada componente será la estimación total del requerimiento. Esta estrategia, si bien es la más precisa, no sería la más adecuada en el caso de que haya un gran número de requerimientos o si los tiempos de entrega de la estimación son cortos.

Estimación por orden de complejidad

Esta estrategia de estimación para calcular el costo de un sistema a medida consiste en asignarle una complejidad a cada requerimiento. Esto suele medirse en Story Points: 1,2,3,5,8,13. Se extrae una cantidad “x” de requerimientos y se estima tradicionalmente. Las estimaciones son promediadas por complejidad, es decir, si hay tres requerimientos de complejidad 2 que fueron estimados, se promedia. Por último, se toman los requerimientos no estimados y se les asigna el valor estimado por complejidad.

Estimación por analogía

Consiste en estimar basado en el concepto de la experiencia. Los tiempos reales obtenidos por la empresa en proyectos previos son los mejores indicadores de cuánto puede tomar un proyecto de una similar longitud.

Para lograr este tipo de estimaciones se deben cumplir ciertos requisitos:

  • Tener una vasta experiencia
  • Trackear los tiempos de los proyectos previos (mientras más, mejor)
  • Mantener un repositorio para detectar proyectos similares.

Estimación por equipo

Consiste en dividir los requerimientos en componentes o módulos por especialización. De esta manera, se puede entregar dichos módulos a un equipo de profesionales especializados que se dediquen a estimarlos. Cada grupo estimará los requerimientos asignados utilizando cualquiera de las estrategias previamente explicadas. Esta estrategia es recomendada cuando hay una gran cantidad de requerimientos a estimar.

Registrar asunciones

A la hora de estimar, normalmente hay mucha incertidumbre involucrada debido principalmente al desconocimiento de los clientes por el producto que desean/necesitan. Aquí es donde entra la experiencia y la habilidad del analista para poder realizar reuniones y consultas para determinar qué es lo que realmente necesita el cliente. Sin embargo, muchas veces simplemente no es posible resolver todas las dudas. Por ello es muy importante registrar todas las asunciones que puedan influenciar la estimación y planificación del proyecto. Esta es una manera muy práctica y clave a la hora de analizar y estimar proyectos para determinar el costo de un sistema a medida, debido a que reduce el riesgo de cualquier tipo de malentendido (que puede derivar en desarrollar una funcionalidad equivocadamente) causado por ambigüedades o por falta de información.

Costos de la estimación

Algunas de las variables que se incluyen dentro del costo de un software a medida son:

  • La mano de obra
  • el hardware y software (licencias)
  • los gastos de oficina
  • las capacitaciones
  • la metodología que se aplique

Dicho esto, lo que normalmente se suele hacer, sobre todo en empresas que ofrecen SaaS (Software as a Service o como Servicio), es armar y vender equipos donde cada recurso tiene un costo monetario asignado. Lo que le permite a la empresa ofrecer una modalidad de trabajo mensual por equipo.

Las ventajas de esta forma de trabajar son inmensas:

  • El cliente tiene más control sobre el equipo ya que incrementa o disminuye el tamaño de este dependiendo de la necesidad que actualmente tenga.
  • Se ofrece un servicio más personalizado ya que pretende que el cliente y el equipo estén en constante comunicación.
  • Se asegura una calidad mayor del producto. Esto también se debe a la comunicación estrecha entre cliente y equipo ya que le permite detectar errores o malentendidos con antelación.
  • En caso de algún atraso, se detecta inmediatamente y permite notificar y manejar las expectativas de una manera más eficiente.

En caso de algún atraso, se detecta inmediatamente y permite notificar y manejar las expectativas de una manera más eficiente.

Estimar proyectos de software a medida no es una tarea fácil. Lo recomendable es tener un equipo de profesionales con una vasta experiencia en desarrollo de software y que hayan tenido contacto con la mayor cantidad de industrias posibles, para poder cubrir y estimar los costos de un sistema a medida para cualquier tipo de negocio.

Lo más importante de una estimación es poder llegar a tener un claro entendimiento del alcance, objetivos y compromisos (promesas) y usar las recomendaciones listadas en este artículo con la meta de reducir la mayor cantidad de incertidumbres y lograr una estimación precisa, tanto en tiempo como en costos.

Más artículos interesantes