¿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

El valor de un partner tecnológico en la transformación digital

El valor de un partner tecnológico en la transformación digital de las empresas   Desde nuestra visión, entendemos profundamente la importancia de la colaboración entre empresas mediante alianzas estratégicas, y es por ello que compartimos los siguientes motivos, para dar respuesta a la pregunta: ¿Por qué tener un partner tecnológico es esencial en el mundo […]

Por Lautaro Carro

Abstract Solutions

Integración logística en el auge del e-commerce

El crecimiento intensificado del comercio electrónico provoca la necesidad de optimización logística en las empresas   La evolución del eCommerce, sumado al desarrollo progresivo de ecosistemas digitales, continúa en auge y sigue creciendo a pesar de la vuelta de las tiendas físicas, las cuales también suelen encontrarse repletas de posibles compradores. En este contexto, los […]

Por Lautaro Carro

Abstract Solutions

¿Por qué el software customizado es una inversión y no un gasto?

El desarrollo de un software customizado o diseñado a medida es una inversión valiosa   Hoy en día la mayoría de los productos y/o servicios tienden a ser más personalizados. Cuanto más se ajusten a cada cliente en particular, mejor. A través de la personalización, el foco se pone en el quién y no en […]

Por Victoria Brandolini

Abstract Solutions

La consultoría para resolver desafíos empresariales

Convirtiendo obstáculos en oportunidades mediante la consultoría   La consultoría es un método para mejorar las prácticas de gestión, un proceso donde se brinda asesoramiento para identificar y abordar las necesidades del cliente, de modo que, al contratar servicios de consultoría, las organizaciones pueden beneficiarse de la perspectiva externa de expertos calificados que pueden poner […]

Por Lautaro Carro

Abstract Solutions

El impacto de la Logística 4.0 en las empresas

¿Qué es la logística 4.0?   Se conoce como Industria 4.0 a la convergencia de tecnologías que permiten producir un salto en procesos industriales, sin precisar de la intervención operativa de las personas.   Refiriéndonos puntualmente a la Logística 4.0, se trata de automatizar procesos de la cadena de valor, lo cual posibilita una mayor […]

Por Victoria Brandolini

Abstract Solutions

La importancia de la consultoría tecnológica para el desarrollo de Software

La importancia de la consultoría tecnológica para el desarrollo personalizado de Software   ¿Precisan contar las empresas con un partner que los asesore mediante una consultoría tecnlógica en el proceso de migración digital? A medida que los años pasan y la tecnología avanza, las empresas que se encuentran en el mercado llegan a un punto […]

Por Marianela Guerendiain