¿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

Digitalización para la eficiencia logística en la gestión de operaciones

Digitalización para la eficiencia logística en la gestión de operaciones En tiempos donde la rapidez y la eficiencia son más cruciales que nunca, la digitalización se ha convertido en una palanca de crecimiento fundamental para lograr la excelencia en la gestión de las operaciones empresariales a través de la eficiencia logística. Gestionar efectivamente los procesos […]

Por Lautaro Carro

Abstract Solutions

¿En qué se parecen el desarrollo personalizado de software y el diseño de una casa?

Similitudes entre el desarrollo personalizado de software y el diseño de una casa a medida   Construyendo software a medida: El enfoque arquitectónico El proceso de creación de soluciones de software a medida, diseñadas para cumplir con requisitos específicos, se conoce como desarrollo personalizado de software, y tiene un notable parecido con los principios del […]

Por Lautaro Carro

Abstract Solutions

Guía para una digitalización exitosa de un modelo de negocio tradicional: Caso de éxito InfoAuto

¿Cómo lograr una digitalización exitosa de una empresa tradicional? La historia de InfoAuto. La expansión de la empresa a través de la transformación digital del negocio. La transformación de InfoAuto: De ser la revista oficial de precios del mercado automotor Argentino, un modelo de negocio 100% tradicional a través de comercializar productos físicos, evolucionó para […]

Por Lautaro Carro

Abstract Solutions

5 errores comunes en la transformación digital y cómo evitarlos

5 errores comunes en la transformación digital y cómo evitarlos   El proceso de transformación digital de una empresa comienza con la investigación de cómo las distintas herramientas tecnológicas pueden optimizar los procesos y cómo llevar a cabo la implementación de tecnología en las operaciones, incorporando un mayor nivel de digitalización en su día a […]

Por Lautaro Carro

Abstract Solutions

Abordaje de proyectos de IT para la cadena de suminstro

¿Cómo abordar un proyecto de IT para la cadena de suminstro?   En este artículo te contamos cuestiones importantes a tener en cuenta para los procesos de abordaje de proyectos de tecnologías de la información. Anteriormente escribimos sobre el concepto de Supply Chain y por qué es tan importante contar con una gestión optimizada de […]

Por Lautaro Carro

Abstract Solutions

Guía de Sistemas de Software para Retail

Guía práctica de Sistemas de Software para Retail   Los sistemas de software son esencialmente útiles y prácticos en la industria del retail, ya que las soluciones tecnológicas permiten agilizar el ritmo y contribuyen directamente al crecimiento del negocio. La comercialización masiva de productos en grandes cantidades de clientes involucra una amplia cantidad de procesos […]

Por Lautaro Carro