Llegamos a ustedes gracias a:



Reportajes y análisis

5 herramientas de desarrollo para regular su SDLC

[17/05/2022] El desarrollo de software ha avanzado mucho en los últimos 30 años. Recuerdo cuando podía administrar el ciclo de vida de desarrollo de software (SDLC, por sus siglas en inglés) en mi propia computadora. Podía escribir código, depurarlo, compilarlo y enviarlo todo desde su desktop. La fuente se almacenaría en un servidor de archivos y se administraría guardando un archivo zip al final de cada día. Si usó una herramienta de control de código fuente, fue CVS o SVN -con un servidor central- lo que hizo que la bifurcación y la fusión fueran un verdadero desafío. Lanzar software significaba enviar un disquete "dorado a un fabricante que enviaba físicamente el software a las tiendas y proveedores de catálogos.

[Reciba lo último de CIO Perú suscribiéndose a nuestro newsletter semanal]

Hoy es a la vez más fácil y más complejo. La mayoría del software nuevo es entregado por el navegador. Los equipos de desarrolladores remotos administran grandes bases de código utilizando sofisticados repositorios de código centrales. Coordinan el trabajo con herramientas de seguimiento y comunicación de problemas, y realizan integración continua y despliegue continuo con herramientas diseñadas específicamente para ese propósito. El modelo de entrega de SaaS les permite a los equipos lanzar nuevas funciones de forma instantánea cuando lo deseen.

Ese proceso requiere muchas herramientas de software. Algunos podrían argumentar que las buenas sillas y los monitores de pantalla ancha harán más para mejorar el proceso de desarrollo, pero aquí nos ceñiremos a las herramientas de software.

Entonces, ¿cuáles son las herramientas de software necesarias para realizar el desarrollo moderno de software? Los equipos modernos necesitan al menos estas cinco.

Ambiente de desarrollo integrado

Escribir código se vuelve más difícil cada día y los desarrolladores necesitan una herramienta que pueda mantenerse al día. Un buen IDE permitirá la edición de código, el resaltado de sintaxis, la finalización de código, la gestión de control de código fuente, la compilación y la depuración. Un buen IDE también proporcionará algún tipo de API de extensión que le permita a cualquier persona mejorar las capacidades del editor.

A menos que tenga una necesidad muy específica, recomendaría usar Visual Studio Code porque es simplemente el IDE más popular, poderoso, abierto y capaz que existe. Microsoft crea y mantiene VS Code y es de código abierto. Es enormemente popular, puede manejar casi cualquier lenguaje de programación y tiene miles de extensiones útiles. Con más de 20 millones de desarrolladores usándolo, VS Code es, por lejos, la herramienta preferida. La capacidad de agregar GitHub Copilot, el asistente de codificación basado en IA de GitHub, brinda aún más motivación.

Herramientas de comunicación

La COVID ha cambiado la forma en que los equipos de desarrollo trabajan juntos. De repente, todos los equipos de desarrollo trabajaban desde casa y necesitaban una forma de comunicarse cuando no podían reunirse físicamente. La combinación de Slack y Zoom se convirtió en el camino a seguir y lo sigue siendo.

Slack se beneficia de ser muy utilizado y, por lo tanto, tiene una gran biblioteca de complementos e integraciones que le permiten hacer muchas cosas que ni siquiera se le ocurrirían antes de comenzar a hurgar. Zoom se ha convertido en la herramienta de videoconferencia de facto para equipos y reuniones de todo tipo. Integrar Slack y Zoom es fácil y poderoso. Recomiendo esta combinación debido al amplio uso de ambas herramientas, lo que facilita mucho la comunicación con empleados, clientes y proveedores en toda su organización, y no solo con el equipo de desarrollo.

Un finalista cercano aquí es Microsoft Teams, que tiene la ventaja de combinar chat y videoconferencia en una sola aplicación.

Control de versión de origen

Mercurial fue un competidor allí por un tiempo, pero Git claramente ganó el concurso de herramientas de control de código fuente. Si no está usando Git, entonces se quedará rezagado.

Git es un sistema de control de versiones distribuido, pero el uso adecuado requiere un repositorio centralizado, y GitHub es el líder indiscutible en este espacio. GitHub es mi elección por su ubicuidad y por sus características más allá de ser un repositorio de código. GitHub es, con mucho, el host líder para proyectos de código abierto. Toda empresa debería tener algún tipo de presencia en GitHub.

Algunas de las características adicionales de GitHub incluyen seguimiento de problemas, revisión de código, y enlaces al proceso de compilación e implementación. GitHub incluso está liderando la carga hacia IDE-in-a-browser con su producto Codespaces, que se basa en Visual Studio Code.

Un segundo cercano para el control de fuente sería GitLab, que está disponible en una edición de código abierto, y le pisa los talones a GitHub en casi todos los sentidos.

Indicadores de características

Tengo que confesar que, hasta hace aproximadamente un año, ni siquiera sabía que las banderas de características existían. Ahora su uso está creciendo, ya que las soluciones SaaS le permiten activar y desactivar funciones con un clic del mouse. Los indicadores de funciones le permiten controlar las funciones prácticamente por cualquier razón que desee: por empresa, por nivel de cliente o por usuario. Esto le permite hacer cosas como implementar una prueba beta o probar una implementación "canaria en una pequeña parte de su base de clientes, para ver cómo sobrevive una nueva función en el mundo real.

El líder indiscutible aquí es LaunchDarkly, una plataforma SaaS para la administración de funciones que le brinda controles sobre cómo se implementan una aplicación y sus funciones. Es difícil no elegir una empresa que es una líder tan clara y que continúa ampliando su conjunto de características.

Herramienta de CI/CD

Llevo años haciendo integración continua. Pero el despliegue continuo es más nuevo, más desafiante y, francamente, un poco más aterrador. CI/CD requiere la creación de software, la ejecución de pruebas, la colocación de artefactos en el lugar correcto, el abastecimiento de recursos en la nube, la implementación de aplicaciones en múltiples ubicaciones, y una gran cantidad de actividades diferentes que intervienen en el proceso de tomar código, desde el momento en que se registra hasta ejecutarlo en producción, tan pronto como sea posible.

Muchos equipos están tratando de reducir el tiempo desde el registro del código hasta la implementación de días a 15 minutos (lo leyó bien). Esa es la parte aterradora -poner algo en producción tan rápido significa que debe estar listo para reaccionar rápidamente. En el lado positivo, los cortos tiempos de implementación ofrecen comentarios inmediatos si hay problemas, lo que les permite a los desarrolladores mantener el contexto de los cambios recientes en su cabeza, y corregir los errores de manera más rápida y sencilla a medida que ocurren.

Hacer CI/CD con corrección definitivamente requiere un poderoso conjunto de herramientas. Afortunadamente, existe CircleCI. CircleCI puede hacerlo todo, conectándose con una gran cantidad de marcos de trabajo y sistemas para construir e implementar su aplicación rápidamente. Me gusta CircleCI por su conjunto completo de funciones, velocidad y cumplimiento.

Una mención honrosa sería Jenkins, una herramienta de CI/CD de código abierto.

Estas cinco categorías de herramientas -IDE, comunicaciones, control de fuente, indicadores de características y CI/CD- son lo mínimo que necesita para desarrollar software moderno. Todas estas herramientas funcionan juntas para minimizar el tiempo dedicado a codificar y poner ese código en producción. Todos pueden estar basados en la nube, lo que lo libera de tener que preocuparse por cualquier cosa excepto por hacer el trabajo. Ya sea codificando en un IDE basado en la nube o implementando en minutos con una poderosa herramienta de CI/CD, estas son las herramientas que allanarán el camino para cualquier proceso de desarrollo de software.

Puede ver también: