Tiempo de lectura: 4 minutos

Cuando querés desarrollar un software, ya sea una aplicación móvil, una aplicación de escritorio o una plataforma cloud, el primer paso luego de la concepción de la idea, es definir los alcances funcionales de nuestro sistema.

Los alcances funcionales de un software indican todo lo que el sistema debe hacer, qué acciones puede realizar y cómo se va a comportar.

Por otro lado los alcances NO funcionales son todos aquellos elementos que no tengan un impacto directo en lo que puede hacer el sistema, son más bien lineamientos de diseño, seguridad, tiempos, costos, legales, calidad, entre otros.

¿Por qué son importantes tantas definiciones antes de comenzar?

Este listado de puntos, es el documento medular de nuestro sistema y plasma nuestras todas las necesidades y modelos en un lenguaje intermedio entre el coloquial y el del equipo técnico.

Por otro lado al bajar a papel estas ideas, nos permite ordenar nuestros pensamientos y poder transmitirlos con mayor facilidad. A su vez en muchos casos también aparecen “puntos ciegos” dentro de nuestra diagramación que se detectan en este punto y que resultan vitales para el desarrollo del software.

En este punto es vital que el equipo de ingeniería, nos asesore respecto de la viabilidad de nuestros alcances y que nos recomiende mejoras y optimizaciones para garantizar el éxito de nuestro proyecto.

Construyendo el esqueleto

A continuación detallamos una serie de preguntas que nos debemos hacer a la hora de diagramar nuestros alcances funcionales:

  • ¿Que tiene que hacer mi sistema?
  • ¿Tiene registro de usuarios? ¿Se hace a través de redes sociales?
  • ¿Tiene pagos dentro de la plataforma? ¿Qué sistema de pagos utilizaría?
  • ¿Tiene integraciones con otros sistemas externos?
  • ¿Cómo es el flujo de mi sistema? ¿Que pantallas va a tener?
  • ¿Qué tipo de roles de usuario va a tener? ¿Van a ver información distinta?
  • ¿Necesito una plataforma de administración interna?
  • ¿La voy a monetizar? ¿Cómo lo voy a hacer?
  • ¿Cómo es mi modelo de negocio?
  • ¿Tengo definido un manual de marca?
  • ¿A qué público quiero llegar?
  • ¿En qué dispositivos quiero que funcione?
  • ¿En qué contexto el usuario final accedería a mi sistema?
  • ¿Administro información sensible?
  • ¿Tengo alguna restricción de seguridad informática?
  • ¿Tengo que acceder a algún sensor físico del dispositivo? Puede ser GPS, micrófono, cámara, etc…

Terminología

Muchas veces nos vamos a encontrar hablando con equipos de desarrollo utilizando términos con mucha naturalidad pero que para nuestros oídos son sólo una catarata de siglas sin fin, que nos obliga a googlearlas cada 5 minutos de conversación. Para ello les dejamos un listado de palabras comúnmente utilizadas en este ambiente:

  • MVP: Minimum viable product. Es un prototipo que tiene las funcionalidades mínimas necesarias para que el sistema pueda ser utilizado de acuerdo al modelo de negocio definido.
  • ABM: Alta, baja y modificación.
  • Onboarding: Introducción explicativa sobre cómo utilizar una herramienta por primera vez.
  • CRM: Customer Relationship Management. Es una herramienta que le permite a las empresas realizar un seguimiento de sus posibles clientes (leads) y gestionar sus clientes actuales.
  • ERP: Enterprise Resource Planning. Plataforma de software destinada a la administración de los recursos operativos, productivos e incluso económicos de una empresa.
  • Agile: Metodología de ingeniería de software basada el desarrollo iterativo e incremental.
  • KickOff: Inicio del proyecto
  • Front-end: Parte visible del sistema con la que tiene interacción el usuario final.
  • Back-end: Parte no visible del sistema. No tiene interfaz gráfica. Es el “cerebro” de la aplicación y el encargado de recibir todas las peticiones del front-end.
  • Servidor: Medio físico donde se almacena cada parte del sistema.
  • Back-Office: Parte visible del sistema (comprendido dentro del front-end). Tiene una interfaz gráfica a la que solo acceden usuario internos de la empresa para la administración de parámetros generales y específicos de la aplicación así como también para obtener estadísticas de uso de la misma.
  • Responsive: Capacidad de la interfaz gráfica para adaptarse de forma estética a los cambios de resolución de pantalla. Sobre todo se busca que funcione bien en desktop y mobile.
  • Cloud Server: Servidor en la nube. Servidor físico accesible desde cualquier lugar del mundo.
  • AWS: Amazon Web Services. Una serie de servicios que ofrece Amazon para alojar tus aplicaciones en su nube, entre otras cosas que hacen a la infraestructura del software.

Redacción

Teniendo en cuenta los puntos a considerar y entendiendo la terminología adecuada nos será muy sencillo redactar los alcances funcionales de nuestro software. Para ello se deberán listar todas las funciones que queremos que tenga nuestro sistema.

Esto quiere decir que tenemos que detallar las pantallas que vamos a tener y qué información van a mostrar en cada una de ellas, los elementos que vamos a tener que administrar (ABM), funciones claves del modelo de negocio, requerimientos especiales, formas de registrarse en la aplicación, uso de recursos como geolocalización, etc…

Resumen

En este apartado les mostramos cómo serían los alcances funcionales de LineApp (https://app.lineapp.org/download):

  • Onboarding al ingresar por primera vez a la aplicación
  • Capacidad de adaptarse al modo oscuro y al modo claro de los dispositivos
  • Geolocalización del usuario
  • Pantalla principal con mapa que muestra la información de los negocios a su alrededor
  • Sistema de votación al estar dentro de un local
  • Visualización del estado reportado por los vecinos en el establecimiento seleccionado
  • Categorización de los locales
  • Capacidad del usuario para agregar nuevos locales

Otros puntos que pueden tener aplciaciones mas complejas son:

  • Login con redes sociales
  • ABM de usuarios
  • Estadísticas de uso de la aplicación
  • ABM de categorías
  • Sistema de “match” entre A y B
  • Modificación de perfil
  • Restricción de horarios de uso

Como vemos en este listado, se comenta en un lenguaje semi-coloquial y detalladamente qué pretendemos de nuestro sistema. Con este documento el equipo de desarrollo puede asesorarnos y armar un presupuesto que se ajuste perfectamente a nuestras necesidades, asegurando el éxito de nuestra aplicación.

Categorías: Software