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:
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”.
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.
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:
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.
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.
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.
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:
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.
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.
Algunas de las variables que se incluyen dentro del costo de un software a medida son:
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:
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.