Close

Desarrollo de software

Descubre los aspectos fundamentales del desarrollo de software


El software se comió el mundo. Poco después de que Marc Andreessen proclamara en 2011 que “el software se está comiendo el mundo”, su afirmación se hizo realidad. En la economía digital actual, todas las empresas hacen un uso intensivo del software. Puede que Amazon sea el minorista más grande del mundo, pero no es una empresa minorista, sino de software, proclamó Jeff Bezos, el exdirector ejecutivo de Amazon. “Nuestro negocio no es lo que hay en las cajas marrones”, afirmó él. “Es el software que se encarga de enviar las cajas marrones a su destino”.

Bucle infinito de DevOps

¿Qué es el desarrollo de software?

El desarrollo de software abarca el diseño, la documentación, la programación, las pruebas y el mantenimiento continuo de una entrega de software. Este conjunto de diversos aspectos se utiliza para crear una canalización de flujo de trabajo, una secuencia de pasos que, al seguirla, produce entregas de software de alta calidad. Esta canalización se conoce como el “ciclo de vida de desarrollo de software”.

Si bien hay muchos matices, el ciclo de vida de desarrollo de software generalmente incluye elementos comunes, como se indica a continuación.


Pasos del ciclo de vida de desarrollo


Bombilla con órbitas a su alrededor

Concepto

Los proyectos se visualizan, se diseñan y se priorizan. Una metodología como la ágil ayuda a guiar el proceso de trabajo del proyecto. Prácticas como DevOps guían los procedimientos de desarrollo y las operaciones. Confluence es una herramienta excelente para desarrollar documentos de investigación de productos y compartir archivos de diseño durante esta etapa.

Flujo de trabajo sencillo

Plan + hoja de ruta

Se identifica a las partes interesadas, se establecen los presupuestos y se requisa la infraestructura. Los documentos de diseño de la fase de concepto se dividen en tareas viables. Jira Software y Trello gestionan, monitorizan y organizan estas listas de tareas.

Guardar código

Programación, revisión y pruebas

Los equipos de desarrollo trabajan para crear software listo para la producción que cumpla con los requisitos y el feedback. Las canalizaciones de CI/CD ayudan a ofrecer una experiencia eficaz a los desarrolladores. Bitbucket ofrece herramientas de revisión de código colaborativas y canalizaciones de CI/CD que se conectan al proceso de revisión del código.

Publicación de código

Implementación, publicación y alojamiento

Cuando el código ya está aprobado y fusionado, es hora de lanzarlo. Las canalizaciones de CI/CD de Bitbucket hacen que las implementaciones sean tan fáciles como pulsar un botón. El código de producción en directo necesitará un sitio donde alojarse. Sopesa la idea de usar el alojamiento en la nube que proporcionan Amazon AWS, Google Cloud Platform o Microsoft Azure.

Engranajes

Soporte, operación y mantenimiento

El soporte y el mantenimiento son obligatorios para los proyectos de software activos. Jira Service Management ofrece potentes herramientas para recoger, clasificar y resolver solicitudes de atención al cliente.

error

Gestión de incidentes

La gestión de incidentes es el proceso que utilizan los equipos de DevOps y de operaciones de TI para responder a eventos no planificados o interrupciones del servicio, a fin de recuperar el estado operativo. Los equipos necesitan un método fiable para dar prioridad a los incidentes, llegar más rápido a la resolución y ofrecer un mejor servicio a los usuarios.

Prácticas del ciclo de vida de desarrollo de software

CI/CD

Feedback continuo

Los equipos deben evaluar cada lanzamiento y generar informes para mejorar los lanzamientos futuros, pedir a los clientes que den su opinión sobre el valor y el impacto de las funciones del producto y compartir los resultados de negocio con las partes interesadas. Al recoger feedback de forma continua, los equipos pueden mejorar sus procesos y aportar más valor a los clientes.

Seguridad

Seguridad

A medida que las aplicaciones de software crecen en complejidad y escala, la seguridad tradicional que se “fija” al final de un ciclo de publicación ya no es suficiente para mantener el software seguro. En cambio, la seguridad debe incluirse a lo largo de todo el ciclo de vida del desarrollo de software para minimizar las vulnerabilidades del código.

Características clave del desarrollo de software eficaz


Agile

La metodología ágil es un enfoque iterativo de la gestión de proyectos y el desarrollo de software que ayuda a los equipos a aportar valor a los clientes de forma más rápida y con menos molestias. Las metodologías ágiles son tremendamente populares en el ámbito del software, ya que permiten a los equipos ser flexibles, estar bien organizados y tener la capacidad de responder a los cambios.

DevOps

DevOps es un conjunto de prácticas, herramientas y filosofía cultural que sirve para automatizar e integrar los procesos que comparten el equipo de desarrollo de software y el de TI. Se centra en el empoderamiento de los equipos, la comunicación y colaboración entre ellos y la automatización de la tecnología.

Integración y entrega continuas (CI/CD)

La integración continua es la práctica de automatizar la integración de los cambios de código en un proyecto de software. Permite a los desarrolladores fusionar cambios de código con frecuencia en un repositorio central donde se ejecutan las compilaciones y las pruebas.

La entrega continua complementa a la integración continua, ya que se encarga de implementar automáticamente los cambios de código en un entorno de prueba/producción. En una canalización de entrega continua, las compilaciones, pruebas e implementaciones automatizadas se enlazan en un solo flujo de trabajo de publicación.

Microservicios

Una arquitectura de microservicios, o simplemente "microservicios", es un concepto para crear una aplicación en forma de una serie de servicios que se pueden implementar de forma independiente, están descentralizados y se desarrollan de forma autónoma. Estos servicios están poco vinculados, se pueden implementar de forma independiente y se mantienen fácilmente.

Con una arquitectura de microservicios, los desarrolladores se pueden organizar en equipos más pequeños especializados en servicios distintos, con implementaciones desacopladas y pilas diferentes.

Agile

La metodología ágil es un enfoque iterativo de la gestión de proyectos y el desarrollo de software que ayuda a los equipos a aportar valor a los clientes de forma más rápida y con menos molestias. Las metodologías ágiles son tremendamente populares en el ámbito del software, ya que permiten a los equipos ser flexibles, estar bien organizados y tener la capacidad de responder a los cambios.

DevOps

DevOps es un conjunto de prácticas, herramientas y filosofía cultural que sirve para automatizar e integrar los procesos que comparten el equipo de desarrollo de software y el de TI. Se centra en el empoderamiento de los equipos, la comunicación y colaboración entre ellos y la automatización de la tecnología.

Integración y entrega continuas (CI/CD)

La integración continua es la práctica de automatizar la integración de los cambios de código en un proyecto de software. Permite a los desarrolladores fusionar cambios de código con frecuencia en un repositorio central donde se ejecutan las compilaciones y las pruebas.

La entrega continua complementa a la integración continua, ya que se encarga de implementar automáticamente los cambios de código en un entorno de prueba/producción. En una canalización de entrega continua, las compilaciones, pruebas e implementaciones automatizadas se enlazan en un solo flujo de trabajo de publicación.

Microservicios

Una arquitectura de microservicios, o simplemente "microservicios", es un concepto para crear una aplicación en forma de una serie de servicios que se pueden implementar de forma independiente, están descentralizados y se desarrollan de forma autónoma. Estos servicios están poco vinculados, se pueden implementar de forma independiente y se mantienen fácilmente.

Con una arquitectura de microservicios, los desarrolladores se pueden organizar en equipos más pequeños especializados en servicios distintos, con implementaciones desacopladas y pilas diferentes.

Herramientas de desarrollo de software


Las herramientas de desarrollo de software pueden ayudar en cada paso del ciclo de vida del desarrollo de software. Por ejemplo, pueden guiar las prácticas ágiles y de DevOps, la gestión del código, la automatización a través de CI/CD, la respuesta ante incidentes, las pruebas y muchos otros procesos.

Logotipo de Jira Software

Jira Software

Jira es la herramienta líder de desarrollo de software que utilizan los equipos ágiles. Jira Software es una herramienta de gestión de proyectos con la que los equipos ágiles pueden planificar, supervisar y lanzar software de calidad con confianza.

Logotipo de Bitbucket

Bitbucket

Bitbucket es más que solo gestión de código de Git: ofrece a los equipos un sitio para planificar proyectos, colaborar en el código, probar y desplegar.

Logotipo de Compass

Compass

Con Compass, una plataforma de experiencia para desarrolladores, puedes desplazarte fácilmente por tu arquitectura distribuida, ya que reúne en un lugar centralizado que admite búsquedas la información desconectada sobre los procesos de ingeniería y los equipos que colaboran en ellos.

Atlassian Open DevOps

Los equipos tienen todo lo que necesitan para desarrollar y operar software con Open DevOps, sin tener que configurar nada. Open DevOps se utiliza en Jira Software, Confluence, Bitbucket y Opsgenie. Los equipos pueden añadir fácilmente las herramientas que quieran, por ejemplo GitHub o GitLab, con un solo clic.

Atlassian Open DevOps

Los equipos tienen todo lo que necesitan para desarrollar y operar software con Open DevOps, sin tener que configurar nada. Open DevOps se utiliza en Jira Software, Confluence, Bitbucket y Opsgenie. Los equipos pueden añadir fácilmente las herramientas que quieran, por ejemplo GitHub o GitLab, con un solo clic.