Requerimientos a tener en cuenta para cotizar software
Hasta hoy me he equivocado el 100% de las veces que he hecho un presupuesto para un proyecto de software.
No exagero, algunas veces porque se me escapa algo, otras veces porque me sobrevaloro y prespuesto un tiempo mucho menor al que después me lleva, y otras veces a no recoger por escrito alguna característica y ante esta circunstancia acabo claudicando y asumiendo esa laguna de información.
Sea como sea, el hecho es que acabo echando mucho más tiempo del que presupuesto.
Ya no es el dinero que dejo de ganar, si no la presión de no llegar a las fechas pactadas de entrega de funcionalidades del software que me provocan mucho estrés.
Voy a recoger en este artículo los distintos puntos a tener en cuenta para poder amarrar todo lo posible un proyecto de software.
Como ejemplo vamos a suponer que queremos presupuestar una aplicación de programación de tareas.
La típica aplicación de lista en el que añadimos una tarea, le asignamos una prioridad, un estado...
Requerimientos de funcionalidades principales para una aplicación
Define con el cliente las características principales de debe tener la aplicación.
En el ejemplo de una aplicación de lista de tareas definiríamos las características esenciales de la aplicación, como la capacidad de crear, editar y eliminar tareas, establecer recordatorios, organizar tareas por categorías o etiquetas, establecer prioridades, y marcar tareas como completada.
Requerimientos sobre la interfaz de usuario (UI) y la experiencia de usuario (UX)
Considera el diseño de una interfaz intuitiva y fácil de usar que permita a los usuarios navegar de manera eficiente por la aplicación, agregar nuevas tareas de forma rápida y acceder a funciones clave sin complicaciones.
Respecto a la UX, recoge si el cliente desea completar tareas con un swipe, con un checkbox...
Requerimientos sobre plataformas y dispositivos
Debe quedar clarísimo las plataformas sobre las que se lanzará la aplicación (por ejemplo, iOS, Android, web) y si se necesitará soporte para dispositivos móviles, tabletas y/o escritorio.
Esto afectará el alcance del desarrollo y, por lo tanto, el presupuesto.
Personalmente, me encantan las PWA y siempre que puedo hago mi software como PWA.
Requerimientos sobre seguridad
Evalúa los requisitos de seguridad de la aplicación, como la protección de datos de usuario, la autenticación de usuarios, y el cifrado de información sensible, especialmente si se manejan datos personales o confidenciales.
Define quién suministrará el certificado TLS, el cliente o nosotros.
Por experiencia, es mejor no abrumar al cliente con mucha información, yo siempre incluyo en el presupuesto el certificado TLS.
Definir la caducidad de los tokens, si usas JWT o la caducidad de las sesiones.
Requerimientos sobre integración
Deja claro si la aplicación necesitará integrarse con otras herramientas o servicios, como calendarios, servicios de almacenamiento en la nube, notificaciones push, etc.
No sería la primera vez que el cliente me pide notificaciones push a posteriori con el aumento de complejidad que lleva esto a mitad del proyecto.
Si el cliente de primeras no va a querer notificaciones push dejarlo por escrito.
Otro caso que tuve fue el de la creación de backups automáticos en la nube del cliente, o el envío de emails integrados en el servidor SMTP del cliente.
Requerimientos sobre personalización y configuración
Determina si se necesitan funciones de personalización para adaptar la aplicación a las preferencias individuales de los usuarios, como temas, ajustes de visualización, etc.
Requerimientos sobre rendimiento y escalabilidad
Considera los requisitos de rendimiento y escalabilidad de la aplicación, especialmente si se espera un crecimiento rápido de usuarios o un alto volumen de datos.
En función a los usuario esperados debes elegir la arquitectura y los servicios a contratar.
Si los usuarios no están claro opta por soluciones elásticas.
Las soluciones elásticas que son más caras por lo que lo tendrás que tener en cuenta para incluirlo en el presupuesto.
Requerimientos sobre pruebas y mantenimiento
Incluye en el presupuesto los costos asociados con las pruebas de calidad, la corrección de errores y el mantenimiento continuo de la aplicación después del lanzamiento inicial.
Esto es crucial para garantizar un producto de alta calidad y una experiencia de usuario satisfactoria a largo plazo.
Insisto, incluye en el presupuesto tiempo para hacer el testing.
Cuando el tiempo apremia es lo primero que se deja de lado y esto no es una práctica recomendada.
Con el tiempo iré actualizando este artículo.
Mucho me temo que cada actualización será promovida por una situación que no haya contemplado.
Hasta luego 🖖