Siga estos pasos clave para iniciar un proyecto de desarrollo de software exitoso

La mayoría de las veces, el comienzo de un proyecto te pilla desprevenido. Puede que estés en el equipo del proyecto desde el primer día, pero el cronograma es ajustado y no hay suficiente tiempo para la preparación. Peor aún, puede pasar por alto algunos pasos, y eso podría volver a atormentarlo más tarde.

El proyecto comienza, pero después de unos meses terminas en un punto oscuro. Esas cosas molestas que te frustraron durante tus asignaciones anteriores han vuelto.

Si eso le suena demasiado familiar, este artículo es para usted. Siga estas pautas cuando comience un proyecto y prepárese para el éxito.

Establecer vías de comunicación claras

Desde el primer día, asegúrese de que los roles estén bien definidos y que todos sepan quién maneja qué. Las personas solicitarán acceso a sistemas externos, pedirán aclaraciones o señalarán emergencias. Cualquiera que sea el escenario, asegúrese de que las personas de contacto clave se identifiquen fácilmente. Mantenga esta información en un lugar conocido y hágalo accesible para todos.

Definir las mejores prácticas y convenciones

Cuando el proyecto comience, no comience a codificar de inmediato. Si lo hace, la mayoría de las veces su código base se convertirá en un enredo que nadie quiere tocar o mantener.

Tómese un tiempo para evaluar sus experiencias pasadas e identificar qué salió bien y qué no. Le ayudará a definir cómo quiere que sucedan las cosas para esta nueva iniciativa. Involucre a todo el equipo en el ejercicio y asegúrese de escuchar lo que están diciendo.

El resultado final debe ser una lista de convenciones y mejores prácticas validadas por todo el equipo. Siga estas convenciones y desarrollará una solución mucho más coherente y organizada.

Cree una definición significativa de Terminado

¿Cuántas veces descubrió justo antes de la demostración que no puede mostrar una función porque falta algo? Lo sé, con demasiada frecuencia.

Los desarrolladores tienden a considerar que una función se realiza una vez que funciona en su máquina local. Sin embargo, un ciclo completo de desarrollo de software implica mucho más que eso.

Es posible que la función solo funcione en su máquina local, por lo que debe probarla en al menos otro entorno. Luego, debe pedir a sus compañeros que revisen su trabajo. Esto asegura que se cumplan los criterios de aceptación y los estándares de calidad.

El siguiente paso es agregar los pasos de implementación, para que pueda lanzar la función al entorno de demostración. Debe poner estos pasos juntos en la Definición de Terminado, junto con cualquier otro paso relevante.

Después de eso, asegúrese de que su equipo use la Definición de Terminado como una lista de verificación antes de completar una tarea. Esto le dará mucha más confianza en que un ticket resuelto es lo que espera que sea.

Elija un sistema de integración continua adecuado

La integración continua es crucial para cada proyecto. Desea asegurarse de poder lanzar los nuevos desarrollos con el mínimo esfuerzo. Afortunadamente, hay una amplia gama de opciones disponibles en el mercado, Jenkins y TeamCity son dos de ellas. Sin embargo, hay un par de factores muy importantes a tener en cuenta al hacer esta elección.

Uno de ellos es la preferencia del equipo y el otro es el precio de la herramienta. Siempre es más prudente utilizar una herramienta de integración continua que su equipo haya utilizado antes. Eso significa que todos están familiarizados con la herramienta y no necesitará hacer un esfuerzo adicional para aprender un nuevo sistema.

Sin embargo, no pase por alto el factor de precios. Si su herramienta de elección es cara, es posible que los patrocinadores del proyecto no estén dispuestos a pagar por ella. Todos sabemos que esto sucede, pero no es el fin del mundo.

Hay muchas herramientas poderosas de integración continua que son gratuitas. Tómate el tiempo para probarlos y elegir el más adecuado para ti.

Elija sus herramientas y aplicaciones

Una cosa que debe evitar es utilizar demasiadas herramientas diferentes para lograr el mismo propósito. Imaginemos que su equipo tiene que desarrollar una API REST.

Uno de los miembros del equipo con menos experiencia, John, necesita ayuda para probar un punto final para la creación de usuarios. Le pide ayuda a Alex, que está ansiosa por ayudar, hasta que se da cuenta de que John está usando SOAP UI para probar sus puntos finales.

Alex, un gran fan de Postman, pasa unos minutos tratando de entender cómo usar la herramienta, pero sin demasiado éxito. Ella se rinde después de algunos intentos, por lo que deciden acercarse a George, el chico con más experiencia del equipo.

Sin embargo, George es un programador de la vieja escuela. Le gusta hacer todo desde la línea de comandos, por lo que le pide a John que vuelva a escribir sus llamadas API para probarlas con cURL. No es una situación ideal para nadie.

Sabemos que a los desarrolladores les encanta tener la libertad de elegir sus propias herramientas, pero no siempre es óptimo trabajar de esa manera. A la larga, el equipo se beneficiará más de usar el mismo conjunto de herramientas. Intente evitar este tipo de situaciones eligiendo herramientas específicas para cada propósito.

No seas demasiado rígido, escucha las preferencias de tu equipo, pero haz una elección clara. Además, asegúrese de explicar a todos por qué esto es importante y obtenga la aceptación de sus pares. Después de todo, no quieres ser un fanático del control.

Utilice sabiamente los sistemas de control de versiones

Los sistemas de control de versiones son imprescindibles para cualquier proyecto de software. No se puede desarrollar una solución de software de forma colaborativa sin utilizar una. Sin embargo, no es suficiente seleccionar un sistema de control de versiones y comunicar la elección a su equipo.

Tienes que invertir algo de tiempo para definir la forma en que quieres que se utilice el sistema para tu nuevo proyecto. Un buen punto de partida es comparar los flujos de trabajo existentes y decidir cuál es el mejor para su caso de uso.

A continuación, debe validar el flujo de trabajo con su equipo. Si los comentarios son positivos, es probable que el sistema de control de versiones se utilice según lo previsto.

Evite tener varios sistemas de gestión de documentos

Una de las cosas más frustrantes es cuando necesita encontrar un dato y no sabe dónde buscarlo. Esto suele ocurrir porque hay demasiados lugares donde podría estar. ¡No debería ser tan complicado!

Cuando su encargado de DevOps quiera encontrar la IP del servidor de QA, debería tener que buscar en un solo lugar. Para que esto suceda, debe elegir un buen sistema de gestión de documentos y ceñirse a él.

Manténgalo organizado y confronte a cualquiera que intente almacenar información fuera del sistema. Todos verán los beneficios a largo plazo, incluso las personas a las que se les grita.

Defina los entornos necesarios para su solución

Todos sabemos que los desarrolladores, probadores y empresas no deben utilizar el mismo entorno. Pero este aspecto suele pasarse por alto durante la fase inicial de un proyecto.

Debe comenzar a considerar qué entornos son necesarios para sus proyectos desde el principio. Obtener la aprobación y configurarlos puede llevar un tiempo, por lo que es mejor comenzar lo antes posible.

Como pauta, debe tener al menos cuatro entornos: desarrollo, pruebas de aceptación del usuario (UAT), puesta en escena y producción.

Entorno de desarrollo

El entorno de desarrollo será la caja de arena del equipo de desarrollo. Es por eso que no será estable en todo momento y puede esperar inconsistencias de datos.

Entorno de prueba de aceptación del usuario

El UAT está destinado a la aceptación del usuario, por lo que aquí es donde los empresarios harán sus pruebas.

Entornos de puesta en escena y producción

Finalmente, la puesta en escena y la producción van de la mano y deben reflejarse entre sí. Esto asegurará que las operaciones que se ejecutan en la puesta en escena tengan los mismos resultados en la producción.

Pero cada proyecto es diferente. Es posible que necesite más entornos que los anteriores o no podrá tenerlos todos debido a los altos costos.

Cualquiera que sea el caso, asegúrese de considerar el panorama del sistema por adelantado y defina lo que necesita para poder entregar el proyecto.

Prepare la base de código y la estructura del proyecto

Una base de código bien organizada será de gran ayuda. Empiece a tomar algunos pasos proactivos desde el principio, para que su proyecto no se convierta pronto en una gran bola de barro.

Debe definir los módulos principales del proyecto, la estructura de la base de código, las convenciones de nomenclatura de archivos, las reglas de empaquetado, etc.

Hágalo lo más intuitivo posible, de modo que sea fácil para todos encontrar lo que buscan. Además, recuerde la lección aprendida de proyectos anteriores y asegúrese de no repetir los mismos errores.

Cree un documento para la configuración del proyecto local

Incluso si comienzas con un equipo muy pequeño, es probable que no seas el único en los proyectos. Cuando nuevas personas están a punto de unirse, usted desea hacerles la vida lo más fácil y posible y ayudarlas a ponerse al día en poco tiempo. Esto tiene que comenzar con la configuración del proyecto local.

He visto demasiados casos en los que el nuevo chico tiene que pasar una semana entera para ejecutar el proyecto en su máquina. Esto suele ocurrir cuando la documentación de instalación estaba mal escrita, incompleta o faltaba por completo.

Para evitar esto, comience con un documento que defina todos los pasos necesarios para la configuración del proyecto. Luego, asegúrese de probarlo por su cuenta y refinarlo.

A continuación, pida a sus compañeros que revisen los pasos de instalación e incorporen sus comentarios. Terminará con una guía de configuración concisa y fácil de seguir que hará que todos comiencen rápidamente.

Terminando

Sin embargo, una cosa más. No trate este documento como está escrito en piedra. Revíselo de vez en cuando y no olvide incluir nuevos pasos necesarios a medida que evoluciona el sistema. Tu equipo te lo agradecerá.

Estas son algunas cosas clave que puede hacer para configurar su próximo proyecto para el éxito. ¿Qué agregarías a esta lista? Deje sus pensamientos a continuación.