Definición del alcance de un proyecto: el paso más desalentador del desarrollo

Ago 28, 2021 | español, Uncategorized

Al iniciar un proyecto de software, puede resultar bastante abrumador tomar decisiones en un proyecto nuevo. Básicamente, estás mirando a muchos desafíos, preocupaciones y dolores de cabeza a nivel logístico, especialmente si las funciones que estás implementando te llevan por caminos que rara vez, o nunca has recorrido. Planificar un proyecto de desarrollo o el alcance de un proyecto es un arte y una habilidad en sí misma, con el que muchos desarrolladores individuales y equipos tienden a luchar, hay muchas formas de hacer algo y a veces no se sabe cual sera la mejor.

Hay innumerables historias de terror en la industria del software en las que debido a  una planificación deficiente esta condujo a una pesadilla de desarrollo perpetua, con el proyecto sin terminar o convirtiéndose en un desastre al final. Esto a menudo se denomina “infierno del desarrollo” y, si bien una planificación deficiente no es lo único que puede llevar a esto, suele ser el principal culpable. Definir el alcance del proyecto, comprender toda la logística y las necesidades, y elaborar un cronograma para implementar todas estas preocupaciones es realmente una tarea aterradora.

Al menos, es una tarea desalentadora si se permite. En verdad, si te tomas el tiempo necesario para pensarlo detenidamente y eres lógico, la planificación no es tan mala. La clave para ser un planificador de proyectos exitoso es investigar, aprender de otros que han tenido éxito y aplicarlo. Es como cualquier otra cosa, tratar de resolverlo por su cuenta sin la participación de fuentes experimentadas no servira.

 Hoy, vamos a hablar sobre la planificación de proyectos, la definición del alcance y todo lo demás que se debe diseñar, organizar y medir fácilmente. Verás que en realidad no es tan malo, al menos si tomas cada aspecto por aparte, enfrentándolos como desafíos singulares. No piense en todo el alcance como algo monolítico, solo por dar un paso a la vez.

Definición de las funciones y los propósitos principales del software

Lo más importante, en primer lugar, es comprender verdaderamente el propósito principal del software. ¿Qué debería lograr el software y de qué manera debería lograrlo? Esto puede parecer muy obvio, pero muchos proyectos han fracasado por perder de vista el objetivo o por no darse cuenta de las necesidades relacionadas con el logro de ese objetivo final.

Con la realización del objetivo / función principal del software, se debe considerar la plataforma. Al considerar la plataforma a través de la cual se debe lograr este objetivo principal y final, se debe tener  una comprensión básica, en lo que tiene que ver con  la programación, de lo que debe hacer para tener éxito. Exactamente qué enfoque o metodologia es necesaria, con la plataforma y el lenguaje, para construir algo que logre la función deseada.

Consideración de características y funciones adicionales en el alcance de un proyecto

Ahora que tiene una comprensión básica del trayecto que tendrá que emprender y conoce  el panorama general con la codificación, para asi lograr las funciones principales previstas por el software y  entiende cómo se realizará.Ya Conociendo las tecnologias a usar y las plataforma y el lenguaje en cuestión, considere las características secundarias de manera similar para tener exito.

Para resumir, resuelva las cosas básicas que tendrá que hacer posible dentro de las reglas establecidas que descubrió anteriormente, para que las características secundarias funcionen. Estos deben ser siempre una prioridad menor, su planificación y diseño se centran en lograr sus objetivos dentro de las reglas que establece la funcionalidad principal. Asegúrese de que la implementación de estos no genere pasos adicionales en la creación de la funcionalidad principal y que no se conviertan en un proyecto tan grande o más grande que el objetivo principal.

Evitar el síndrome de NIA

Sindrome de no inventado aquí, otro miedo no muy diferente del infierno del desarrollo, es algo que definitivamente debe planear evitar. Esto se puede lograr observando los obstáculos y desafíos descubiertos en los pasos anteriores, y considerando las bibliotecas externas o los fragmentos de código de código abierto con licencia gratuita que puede integrar en su proyecto para lograr las cosas de manera más eficiente.

Es muy fácil caer en la madriguera de los subproyectos para crear componentes y marcos que ya existen. Puede ahorrar mucho tiempo y dolores de cabeza simplemente adoptando API, bibliotecas y código con la licencia adecuada. No caiga en la mentalidad de desarrollador y de que cada línea de código debe ser original en el proyecto.

Consideración de otras especialidades en el alcance de un proyecto

Ahora ya sabe, en general, lo que tiene que lograr y averiguar para la funcionalidad principal, y sabe lo que debe hacer para lograr la funcionalidad secundaria sin interferir con el propósito principal del programa. También tiene una lista de posibles bibliotecas, fragmentos de código y otras API que puede utilizar para hacer que el desarrollo sea más rápido y más limpio.

Ahora, mire todo esto. Considere si se trata de disciplinas o habilidades que tal vez usted o su equipo actual no tengan. Quizás requiera alguien que tenga un conocimiento más significativo de matemáticas, o alguien más íntimamente familiarizado con algunas de esas bibliotecas importadas. Quizás necesite un diseñador de interfaces capacitado, que es muy común cuando se trata de aplicaciones web o móviles. A pesar de la simplicidad de las interfaces web y móviles, al menos visualmente, pueden ser difíciles de diseñar debido a que tienen en cuenta varios tamaños de pantalla y relaciones de aspecto con esas plataformas.

 Adquiera personas con las habilidades antes de comenzar el desarrollo real. En los casos en que las personas con estas habilidades se nieguen a trabajar en proyectos que no tienen nada que mostrar por sí mismos, al menos tenga un diagrama de flujo simplista de cómo funcionará la programación dentro del programa, mostrándoles que sabe cómo hacer que el software funcione.

Agendamiento

Muy bien, ahora tiene la gente que necesita, si necesita a alguien, tiene los recursos para acelerar las cosas y, en general, sabe lo que tiene que hacer para que todo funcione. ¡Eso es fantástico! Pero tienes una fecha límite, de una forma u otra. Si se trata de un proyecto personal o un proyecto independiente sin un cliente al que responder, aún debe tenerlo funcionando dentro de una cantidad específica de tiempo y la cantidad de tiempo que debe elegir.

En el mundo profesional, los directivos  probablemente pasarán por una fecha límite, aunque si son sabios, consultarán primero con usted y su equipo. Este es un desafío, averiguar cuánto tiempo tomará implementar la funcionalidad, cuánto tiempo tomará cualquier miembro del equipo especializado para crear los elementos que necesita y qué tan importantes son los elementos para lograr ciertas etapas en el desarrollo.

Desafortunadamente, no hay una respuesta definitiva a esta. El mejor enfoque es considerar la funcionalidad principal del programa y cómo puede hacer que funcione visiblemente sin los “pelos y señales” y sin las características secundarias. Estime cuánto tiempo llevará escribir la forma más simple y estable del proyecto como base para construir el resto del programa. Sea amplio con su estimación, especialmente si hay desafíos que aún no está seguro de cómo resolver.

Cuando tenga una solución a esto, y haya consultado con su equipo y con cualquier especialista, es relativamente fácil averiguar cuánto tiempo llevará desarrollar el programa, hacer que las características secundarias funcionen y perfeccionarlo para convertirlo en un producto final.

Nuevamente, sea amplio con esto y sobreestime en aproximadamente un 30%. Así es, debería usar al Sr. Scott de Star Trek como ejemplo, afirmando que hacer que algo funcione tomará más tiempo de lo que termina tomando. ¡Habría sido un buen desarrollador si hubiera reducido un poco el whisky!

Planificación del proyecto

Ahora que tiene un marco de tiempo y sabe lo que se debe hacer, grábelo en etapas. Los primeros auxilios deberían ser poner en funcionamiento esa funcionalidad básica con algún tipo de forma visible de mostrar que realmente funciona. No tiene que ser bonito, ni siquiera tiene que ser fácil de operar, solo tiene que funcionar.

El siguiente paso debería ser implementar las características secundarias más importantes, si las hay, en esa misma construcción básica. En este punto, tiene el software realmente operativo, pero todavía no es muy agradable.

Para cuando comience a implementar versiones básicas de las funciones secundarias, cualquier especialista que cree algoritmos, bibliotecas, interfaces con bibliotecas existentes, elementos de interfaz de usuario o lo que sea, debería estar en camino de producirlos.

A partir de ahí, cada paso debe ser el objetivo de implementar mejores interfaces, optimizar la infraestructura existente de todas las formas posibles e implementar mejores soluciones siempre que sea posible. A partir de ese momento, se trata de probar y perfeccionar al usuario en las fases de prototipo tradicionales de Alpha, Beta, candidatos de lanzamiento y, finalmente, una versión final.

Obtenga más información sobre el alcance de un proyecto, definiendo su producto digital aquí

Conclusión

Entonces, ¿qué necesita para preparar y completar un proyecto de software? Necesita una receta: una definición de funcionalidad primaria y secundaria, una comprensión de lo que puede usar para hacer que esta implementación sea más rápida, acceso a personas que pueden producir componentes que su equipo o usted como individuo no pueden, y luego un plan con hitos , logrando la implementación de todo, refinando todo, etc.

¿Esto te convertirá en un programador maestro? No, hay mucho más que eso, pero ciertamente tiene el proyecto planeado y tiene los recursos que necesita para llegar allí.

Si tienes dudas sobre cómo definir el alcance de un proyecto, estamos aquí para asesorarte en todo lo que necesite y acompañarle en cada etapa. Déjenos su información y empecemos a trabajar juntos.

Ago 28, 2021