¿Qué hay que considerar a la hora de plantear los alcances funcionales de un desarrollo de Software?

Por Alejandro Aparicio

Novedades Abstract Solutions

Definición de los alcances funcionales, el punto de partida de un desarrollo de software personalizado


El primer paso, luego de la concepción de la idea, al crear una aplicación móvil, aplicación de escritorio o plataforma cloud, se trata de definir qué alcances funcionales contemplará 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 tienen un impacto directo en lo que puede hacer el sistema, como lineamientos de diseño, seguridad, tiempos, costos, legales, calidad, entre otros.

 

¿Por qué es importante comprender qué tipos de alcances funcionales existen?

 

Este listado de puntos funciona como documento medular de nuestro sistema, debido a que plasma todos los requerimientos funcionales y modelos en un lenguaje intermedio, entre coloquial y técnico, a la hora de desarrollar un Software.

Cuando bajamos 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 esta etapa  y que resultan vitales para el desarrollo de un Software de calidad. 

 

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

 

¿Qué preguntas nos debemos hacer a la hora de diagramarlos?

 

  • ¿Qué 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? ¿Qué 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 cyber seguridad?
  • ¿Tengo que acceder a algún sensor físico del dispositivo? (GPS, teléfono, cámara, etc)

 

Terminología útil

 

Muchas veces nos vamos a encontrar hablando con equipos de desarrollo que utilizan términos con mucha naturalidad, pero que para nuestros oídos son solo una catarata de siglas sin fin que nos obliga a googlear cada cinco minutos.

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 de alcances

Teniendo en cuenta las preguntas y terminología adecuada que debemos considerar, 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 especificar qué pantallas vamos a tener y qué información se  mostrará  en cada una de ellas, así también como 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, entre otros factores. 

 

Ejemplos sobre el tipo de alcances que podría tener una aplicación

 

  • Onboarding al ingresar por primera vez
  • 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
  • Categorización de los locales
  • Capacidad del usuario para agregar nuevos locales

 

Si se tratara de una aplicación más compleja

 

  • 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

 

Queda expresado en un lenguaje semi-coloquial, se redacta de manera detallada lo 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.

¡Lee otra nota de nuestro blog!

Abstract Solutions

¿Querés vender más en Hot Sale? Primero dominá tus métricas

Cuando llega Hot Sale (o cualquier evento de alta intención de compra), todos quieren vender más. Pero muy pocos se preguntan lo realmente importante: ¿Estoy midiendo bien? ¿Estoy preparado para escalar sin perder rentabilidad? Hoy te mostramos cómo conectar tus campañas,  sitio web y promociones para construir un crecimiento rentable, basado en datos concretos y […]

Por Juana Ferraro

Abstract Solutions

Potencia tus operaciones en el Hot Sale: el valor de un WMS eficiente

El Hot Sale es uno de los eventos comerciales más esperados en Argentina, y para muchas empresas, representa la oportunidad ideal para disparar sus ventas y afianzar la fidelización de clientes. Sin embargo, detrás de esta explosión se esconde un desafío logístico: ¿cómo gestionar de forma óptima la alta demanda, mantener tiempos de respuesta rápidos […]

Por Juana Ferraro

Abstract Solutions

Hot Sale: Cómo optimizar el Customer Journey para vender más y fidelizar mejor

El Hot Sale no se trata solo de descuentos y banners llamativos. En un evento donde cada clic cuenta, preparar el Customer Journey completo puede marcar la diferencia entre un carrito abandonado y un cliente fidelizado. En este post, te contamos cómo diseñar y optimizar el recorrido del cliente en tu ecommerce para maximizar conversiones […]

Por Candelaria Fonterosa

Abstract Solutions

La Cultura del Aprendizaje Continuo en el Desarrollo de Software

En el mundo del desarrollo de software, la tecnología evoluciona a gran velocidad, lo que requiere que tanto herramientas como lenguajes de programación se adapten constantemente. En este panorama, fomentar una cultura de aprendizaje continuo es vital para que los desarrolladores se mantengan actualizados y las empresas sigan siendo competitivas. Esto no solo implica ofrecer […]

Por Candelaria Fonterosa

Abstract Solutions

El retorno a la presencialidad en la industria tecnológica: ¿Evolución o retroceso?

El debate sobre el modelo de trabajo ideal sigue más vigente que nunca. En los últimos días, la decisión de algunas empresas de volver a la presencialidad total generó fuertes reacciones en redes sociales y abrió la discusión sobre qué modelo es el más adecuado en la actualidad. Uno de los casos más comentados fue […]

Por Ignacio Raso

Abstract Solutions

Más allá de los códigos: El impacto de las mujeres en la tecnología

El 8 de marzo, Día Internacional de la Mujer, es una fecha que nos invita a reflexionar sobre el papel fundamental de las mujeres en todos los ámbitos de la sociedad, especialmente en el sector tecnológico. A lo largo de la historia, las mujeres han demostrado que la innovación y la creatividad no tienen género, […]

Por Juana Ferraro