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

Descubre

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

Planifica

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

Compila y haz 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

Despliega

Cuando el código ya está escrito, probado 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

Opera

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

Observa

La gestión de incidentes ocurre cuando los departamentos de desarrollo y operaciones responden a eventos imprevistos y restauran los servicios mediante métodos fiables de priorización de incidentes y llegando a una resolución rápidamente.

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, el control de calidad y la seguridad tradicionales que se “fijan” al final de un ciclo de publicación ya no son suficientes para mantener el software seguro. En su lugar, deben incluirse pruebas a lo largo del ciclo de vida del desarrollo de software para reducir el número de errores en el código del software.

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.