Cómo escribir un algoritmo para una idea de negocio en internet

Como persona no técnica (leída como, experto funcional / de dominio), debe intentar escribir el Documento de Requisito Comercial (BRD) para comenzar. En una empresa típica de desarrollo de software, este documento sirve como la biblia de los requisitos. Así que asegúrese de no perder ninguno de sus requisitos aquí. No asuma que la persona que lo lee entendería todo lo escrito en el documento. Escriba el documento como si su audiencia fuera un grupo de niños de 6 años. Además, un documento de requisitos comerciales debe tener solo los objetivos / requisitos de su negocio y no debe intentar responder la parte del “cómo”. Debe escribir este documento en inglés sin utilizar jerga, jergas, etc.

El siguiente paso es encontrar un tipo tecno funcional, generalmente alguien que conozca el dominio de su negocio y que también tenga algunas buenas habilidades técnicas (generalmente un analista de negocios). Obtenga ayuda de este chico tecnofuncional para traducir los requisitos de su negocio en algo llamado documento de “Especificación de requisitos del sistema”, también llamado SRS. Un SRS es algo de naturaleza técnica, que los desarrolladores suelen recomendar para comprender los requisitos y escribir programas en consecuencia. Asegúrese de revisar el documento de SRS a fondo, requisito por requisito. De hecho, prepare una matriz BRD a SRS y asegúrese de que cada requisito mencionado en el BRD tenga un requisito SRS equivalente.

Una vez que esté seguro de que todos los requisitos de su negocio están capturados en el documento SRS, el siguiente paso es encontrar un desarrollador que pueda escribir un programa para usted. Un desarrollador generalmente prepararía una Especificación de diseño técnico (TDS) basada en los requisitos mencionados en el SRS. Un TDS tendrá detalles detallados de la implementación técnica de sus requisitos. Es posible que no pueda entenderlo completamente, pero asegúrese de preparar una matriz de SRS a TDS y asegúrese de que todos los requisitos de SRS tengan un detalle de implementación equivalente en el TDS

Vigile de cerca el progreso del proyecto y brinde aclaraciones a los desarrolladores cuando sea necesario.

Un algoritmo es una descripción paso a paso de cómo hacer algo. Por ejemplo, el ejemplo típico presentado a los estudiantes de informática es que es como una receta. Una receta le dice una entrada (los ingredientes), un proceso paso a paso (la cocción, la mezcla, etc.) y una salida (el plato final). Un algoritmo es lo mismo. Es una descripción del procesamiento de ciertos datos para obtener un resultado.

Los algoritmos se representan normalmente usando un diagrama de flujo. Por ejemplo, tomado de Wikipedia:

Los algoritmos son paso a paso a través de algún problema. Puede hacer preguntas y ramificarse a otros lugares dependiendo de la respuesta.

El único tipo de ayuda que puede obtener de un software para hacer su algoritmo es la ayuda para generar un diagrama como el del ejemplo. Powerpoint tiene formas para dibujar diagramas de flujo. También hay otras opciones gratuitas dedicadas como Dia.

Pero escribir el algoritmo en sí es una habilidad que precisamente los programadores aprenden a desarrollar. Es decir, cuál será la entrada, cuáles serán los posibles resultados, etc. Entonces, puede intentar hacer una de estas cosas del diagrama de flujo (esto significa, tratar de transferir lo que está pensando a una estructura formal), o bien solo habla con tu codificador. Siéntense los dos, hablen de su idea con gran detalle. Haga que él o ella le haga preguntas. El codificador presentará los algoritmos formales más tarde. Primero, él o ella debe tener una buena comprensión de lo que está tratando de hacer.

En realidad, “algoritmo” puede no ser precisamente el concepto que está buscando. Echa un vistazo a los casos de uso.

De hecho, todo este intento de comunicar al programador la funcionalidad es solo un paso básico común de la ingeniería de software. Si el desarrollador es bueno, serán ellos los que le harán todas las preguntas que necesiten. Todo es parte de la fase de análisis o recopilación de requisitos de cualquier proyecto. Hay muchas maneras de hacer esta fase de análisis, e incluso puede ser iterativa, lo que significa que el desarrollador hará una pequeña parte de la funcionalidad y luego hará más preguntas para llegar a la próxima característica del sistema. En raras ocasiones, la funcionalidad completa del sistema se puede expresar completamente a la vez. Probablemente necesitará varias sesiones con su programador para hablar sobre los requisitos de la aplicación (parte del llamado desarrollo de software Agile).

Si no sabe cómo programar, no debería intentar escribir un algoritmo para su idea. Eso es lo que hace un programador: traducir su concepto expresado en lenguaje cotidiano en software. De lo contrario, es como explicarle a un artista cómo quiere que se vea su trabajo encargado al entregarle una pintura por números. Es poco probable que lo haga bien y mejor dejarlo en manos de los profesionales.

En cambio, describa el objetivo general que está tratando de lograr. Luego divida el problema en varios actores (consumidor, servidor, móvil, etc.), describa la interacción imaginada en detalle y explique el resultado final deseado. Eso debería ser suficiente para que el programador cree lo que quieres. Y si no es así, deberían poder decirte qué porciones son difíciles o imposibles y por qué.

Puede estar estirando la idea de un algoritmo. Supongo que necesita alguna combinación de diagramas de flujo, descripciones escritas claras y otros métodos para las partes que se explican mejor de esa manera. Definir entradas y salidas claramente. Definir estructura de datos, con tipos / clases, si es posible. Defina la organización de los diversos módulos, las funciones de cada módulo y la secuencia de llamada. Los algoritmos pueden ser diagramas de flujo, fórmulas matemáticas, operaciones booleanas, matrices o lo que sea que funcione para usted y el programador. Usted y el desarrollador del código deben resolver los detalles juntos.

También tendrá que averiguar si el programa implementa su idea con precisión. Esto se realiza mediante pruebas y es una disciplina llamada ingeniería de software.

Creo que simplemente puede hablar en su propio idioma de negocios lo que quiere hacer. La clave es describir la solución con la mayor funcionalidad posible y articular tantos requisitos. El desarrollador intentará documentar en alguna forma estandarizada / técnica (UML es el más popular).

Yo diría que proporcione al codificador los requisitos de su negocio: qué quiere que sea realmente el servicio, cómo quiere que funcione, etc. El programador se encargará del resto.