Prefacio

Este trabajo se ha traducido utilizando IA. Agradecemos tus opiniones y comentarios: translation-feedback@oreilly.com

Recuerdo muy claramente la primera vez que decidí utilizar un pequeño motor de flujo de trabajo de código abierto, implementado en Java, para escribir un software empresarial para un amigo, hace 20 años. Esta decisión cambió mi vida. Me entusiasmé con la automatización de procesos y participé en la comunidad de ese proyecto de código abierto. En última instancia, esta experiencia me empujó a cofundar mi propia empresa, que pasó a convertirse en el principal proveedor de herramientas de automatización de procesos de código abierto (¡nunca, nunca podría haber soñado con que los grandes nombres utilizaran ahora nuestro software!) Mi objetivo con este libro no es sólo compartir mi entusiasmo por la automatización de procesos, sino también explicar cómo aplicar la tecnología de automatización de procesos en la vida real, de forma pragmática y fácil para los desarrolladores.

Pero antes, una anécdota. Durante el instituto, un buen amigo mío montó su propio negocio: una tienda especializada en tarjetas gráficas. Puede que recuerdes estas tarjetas si has montado un ordenador: se podían "modificar" para obtener más potencia del chip, lo que permitía a los jugadores comprar tarjetas más baratas y conseguir un mejor rendimiento. El modelo de negocio requería tratar cada tarjeta gráfica física como un artículo individual y establecer procedimientos muy específicos en torno a las ventas y la distribución.

Mi amigo tuvo éxito con este modelo de negocio. En realidad, mucho éxito. Tanto éxito que el proceso, que se basaba en la manipulación manual y los correos electrónicos, se vino abajo. Los pedidos se retrasaban, y montones de tarjetas gráficas, así como paquetes devueltos sin procesar, empezaron a llenar las salas.

Discutimos los remedios a esta situación y finalmente acabamos desarrollando un software a medida que automatizaba algunos de sus procesos a la vez que apoyaba las especificidades de su modelo de negocio. Tenía un enfoque bastante limitado, pero les ayudó a eliminar todos los montones de cosas. Redujeron el tiempo de ciclo, de modo que los pedidos se enviaban en un día. El trabajo manual en el proceso rediseñado se redujo a los pasos relacionados con la mercancía física (por ejemplo, empaquetar el paquete), mientras que otras tareas se automatizaron (generar e imprimir la factura y la etiqueta de envío, enviar confirmaciones al cliente, etc.). Los clientes obtenían transparencia sobre el estado de sus pedidos, e incluso proporcionábamos un portal de seguimiento de autoservicio muy sencillo. El software escalaba los problemas si algún proceso se atascaba durante demasiado tiempo, por lo que ya no era necesario esperar a que los clientes se quejaran para tomar medidas correctivas. En general, por muy práctico que fuera el software, fue un gran éxito.

Por aquel entonces nunca lo habría expresado así, pero experimenté de primera mano las ventajas de la automatización de procesos: mejora de la calidad de los procesos, reducción de los tiempos de ciclo, automatización de tareas aburridas, capacidad de ampliación y reducción del gasto operativo.

Durante los 20 años siguientes, vi cómo se automatizaban los procesos básicos y de apoyo en todas las industrias. Vi cómo la NASA procesaba los datos del robot de Marte mediante un proceso automatizado en la Tierra para enviar señales de control al espacio. Vi cómo las compañías de seguros automatizaban los procesos de contratación y tramitación de siniestros, incluida la notificación de accidentes a través de aplicaciones y la gestión totalmente automatizada de estos informes. Vi cómo se aplicaba la tecnología de automatización de procesos a casos de uso en el comercio y la transferencia de dinero, y a muchos procesos diferentes en las telecomunicaciones. Incluso vi robots de laboratorio controlados por un motor de flujo de trabajo.

La automatización de procesos está en todas partes, y es superemocionante. La necesidad de automatización crece casi a diario. Se está produciendo una transformación digital que permite modelos de negocio completamente nuevos y exige que las empresas cambien los procesos empresariales a un nivel fundamental. Recientemente, la pandemia de COVID-19 puso esto de manifiesto: las empresas tuvieron que pasar del papeleo firmado in situ a procesos electrónicos básicamente de la noche a la mañana; las empresas tuvieron que escalar procesos completos que antes eran relativamente infrecuentes, como las aerolíneas que cancelan billetes y compensan vuelos; y las organizaciones pivotaron rápidamente hacia modelos de negocio completamente nuevos, como la distribución de mascarillas.

Estos son sólo algunos ejemplos de la tendencia mayor que Gartner denomina "hiperautomatización".

Las empresas se embarcan en este viaje por muchas razones: los procesos existentes pueden ser demasiado ineficaces, demasiado lentos, demasiado caros de operar, imposibles de escalar o simplemente no lo bastante flexibles para soportar nuevos modelos de negocio (¡o todas esas cosas a la vez!). Y los procesos ejecutados manualmente o mal automatizados no proporcionan suficientes datos para obtener una visión procesable de lo que ocurre, lo que dificulta el aprendizaje y la adaptación. Esto hace que la empresa sea vulnerable a los competidores que ya han adoptado la transformación digital y la automatización de procesos.

La automatización de procesos suele abordar procesos que deben adaptarse a las necesidades de una organización. Por tanto, no pueden comprarse como software de aplicación estándar. Aunque estos procesos suelen ser los mismos en distintas organizaciones (por ejemplo, incorporación de clientes, gestión de pedidos, liquidación de siniestros), la forma en que cada organización los diseña e implanta es única y puede suponer un factor diferenciador para ellas en su mercado. La automatización de procesos permite a las organizaciones ser más competitivas, dirigir su negocio con mayor eficacia, ahorrar costes, aumentar los ingresos y avanzar en su transformación digital.

Hay muchas probabilidades de que trabajes en una empresa así, quizá como arquitecto de software, arquitecto empresarial, analista de negocio o desarrollador. La automatización de procesos será una de las herramientas clave de tu caja de herramientas.

Mi misión con este libro es ayudarte en tu viaje compartiendo lo que he aprendido a lo largo de 20 años de experiencia de primera mano con la automatización de procesos.

Herramientas y técnicas de automatización de procesos

Hay muchas formas de automatizar procesos, desde el simple desarrollo de software hasta el procesamiento por lotes, los microservicios basados en eventos y cualquier otra práctica de desarrollo que se te ocurra.

Pero la automatización de procesos tiene características y requisitos específicos, y existe software específico creado para abordarlos. Los analistas definen distintas categorías de mercado de software relacionadas con la automatización de procesos: por ejemplo, automatización digital de procesos (DPA), suites inteligentes de gestión de procesos empresariales (iBPMS), plataformas de bajo código, automatización robótica de procesos (RPA), orquestación de microservicios, orquestación de procesos, monitoreo de procesos, minería de procesos, apoyo a la toma de decisiones y automatización.

Todas las diferentes categorías de software proporcionan herramientas y tecnologías que permiten a las organizaciones coordinar, automatizar y mejorar los procesos empresariales. Estos procesos pueden incluir personas, software, decisiones, robots y cosas.

Es un ámbito muy amplio. Entonces, ¿en qué nos centraremos en este libro?

El alcance de este libro

Este libro examina cómo puede aplicarse la automatización de procesos en las arquitecturas de sistemas y las prácticas de desarrollo de software modernas. Examina cómo debe ser el soporte de herramientas para convertirse en una parte vital de la caja de herramientas de todo desarrollador. Demuestra que el componente central para que esto ocurra es un motor de flujo de trabajo ligero y fácil de usar para el desarrollador, que se explorará con gran detalle a lo largo del libro.

En el camino, discutiremos algunos conceptos erróneos típicos. Los motores de flujo de trabajo no son ajenos al desarrollo de software, como algunos podrían esperar. E incluso si ni los informes de los analistas ni las herramientas de los grandes proveedores están especialmente centrados en el desarrollador o son fáciles de usar para el desarrollador, hoy en día existen herramientas alternativas, como verás a lo largo de este libro. Puede que algunas de ellas no encajen en las categorías antes mencionadas, pero otras sí.

Dicho esto, no dedicaré mucho tiempo a lo que dicen los analistas sobre el software de automatización de procesos, sino que me centraré en dar consejos prácticos sobre los motores de flujo de trabajo en el contexto del desarrollo de software en arquitecturas modernas. En este contexto, entrelazaré ideas de microservicios, sistemas basados en eventos y diseño basado en dominios.

Esto podría darte una nueva perspectiva sobre la automatización de procesos.

A quién va dirigido este libro

Este libro está dirigido a desarrolladores de software y arquitectos de software o de sistemas que quieran aprender sobre automatización de procesos.

Nota

Puede que prefieras que te llamen ingeniero de software en lugar de desarrollador, y eso está perfectamente bien. En este libro utilizo el término desarrollador de software, simplemente porque tenía que decidirme por uno.

Si eres desarrollador de software, puede que quieras utilizar un motor de flujo de trabajo en tu aplicación, servicio o microservicio para resolver problemas prácticos. Este libro te ayudará a entender qué problemas puede resolverte un motor de flujo de trabajo, y cómo empezar.

Si eres arquitecto de sistemas, este libro te ayudará a comprender las oportunidades y los escollos de la automatización de procesos. Te guiará a través de algunas decisiones arquitectónicas y compensaciones difíciles, como la comparación del uso de un motor de flujo de trabajo con enfoques alternativos o si un motor de flujo de trabajo debe funcionar de forma centralizada.

Pero también puedes beneficiarte si trabajas en otras funciones. Por ejemplo:

  • Si eres director de informática, este libro puede ayudarte a tomar decisiones mejor informadas y a formular internamente las preguntas adecuadas.

  • Si eres analista empresarial, este libro puede ayudarte si estás motivado para pensar con originalidad y comprender el lado técnico de las cosas.

En general, necesitarás cierta experiencia general en el campo de la ingeniería de software, pero ningún otro conocimiento específico.

El arquitecto siempre pone en práctica

Discutir conceptos sólo es divertido a medias si no puedes señalar ejemplos concretos de código. El código ejecutable te obliga a ser preciso, a pensar en detalles que puedes omitir en el nivel conceptual y, lo que es más importante, a menudo explica mejor las cosas. Personalmente, soy un gran fan del lema "el arquitecto siempre ejecuta". El inconveniente es que tengo que decidirme por una tecnología concreta (que puede no ser la que tú elijas) y por productos concretos (que pueden estar anticuados para cuando se imprima el libro). He intentado ser lo más neutral posible con respecto a los proveedores, pero como cofundador de un proveedor de automatización de procesos, Camunda, por supuesto que tengo opinión y tiendo a utilizar las herramientas que mejor conozco, que son las que proporciona mi empresa.

Por supuesto, mis opiniones también influyen en nuestro producto, lo que significa que cierta alineación es inevitable. Pero como adicto a la automatización de procesos con 20 años de experiencia en el mundo real, este libro tiene sus raíces en los compromisos con clientes de primera línea que han formado esas opiniones.

En algunos lugares utilizo código fuente ejecutable, ya que cualquier otra cosa dificultaría la comprensión de determinados conceptos. En estos casos utilizo la plataforma de automatización de procesos de Camunda.

Sitio web de acompañamiento y ejemplos de código

Además de este libro, puedes encontrar material complementario (ejemplos de código, etc.) para descargar en https://ProcessAutomationBook.com. Este sitio web también enlaza con el código fuente disponible en GitHub.

Estos ejemplos no sólo te ayudarán a comprender mejor los conceptos descritos en el libro, sino que también te darán una gran oportunidad de jugar con la tecnología cuando te aburras de leer.

Si tienes una pregunta técnica o un problema al utilizar los ejemplos de código, envía un correo electrónico a

Este libro está aquí para ayudarte a hacer tu trabajo. En general, si se ofrece código de ejemplo con este libro, puedes utilizarlo en tus programas y documentación. No es necesario que te pongas en contacto con nosotros para pedirnos permiso, a menos que estés reproduciendo una parte importante del código. Por ejemplo, escribir un programa que utilice varios trozos de código de este libro no requiere permiso. Vender o distribuir ejemplos de los libros de O'Reilly sí requiere permiso. Responder a una pregunta citando este libro y el código de ejemplo no requiere permiso. Incorporar una cantidad significativa de código de ejemplo de este libro en la documentación de tu producto sí requierepermiso.

Agradecemos la atribución, pero en general no la exigimos. Una atribución suele incluir el título, el autor, la editorial y el ISBN. Por ejemplo "Automatización Práctica de Procesos por Bernd Ruecker (O'Reilly). Copyright 2021 Bernd Ruecker, 978-1-492-06145-8".

Si crees que el uso que haces de los ejemplos de código no se ajusta al uso legítimo o al permiso concedido anteriormente, no dudes en ponerte en contacto con nosotros en

Comentarios

Siempre estoy dispuesta a recibir cualquier comentario a través de feedback@ProcessAutomationBook.com.

Cómo leer este libro

En general, te recomiendo que leas el Capítulo 1 y el Capítulo 2 primero y de forma secuencial. Esto te dará los conocimientos básicos para entender lo que trata el libro y cómo se aplica a tu escenario.

A partir de ahí, puedes simplemente seguir leyendo o avanzar rápidamente a los capítulos que te parezcan más interesantes. Aunque, por supuesto, hay una trama lógica a lo largo del libro, he intentado hacer referencias cruzadas por si te saltas ciertas partes.

Sin embargo, hay algunas desviaciones que puedo recomendar:

  • Si has tenido malas experiencias con la gestión de procesos empresariales (BPM) en el pasado, quizá quieras leer primero "No son las herramientas de automatización de procesos de tus padres ", ya que esto debería asegurarte que tienes el libro adecuado en tus manos.

  • Si tienes experiencia con sistemas basados en eventos y crees que no necesitas la orquestación, quizá quieras echar un vistazo al Capítulo 8 para entender mejor por qué este libro es relevante para ti. Echa también un vistazo al Capítulo 2 para comprender mejor lo que entiendo por automatización de procesos.

  • Si eres un fan de los microservicios o del diseño dirigido por dominios (DDD), puede que seas escéptico sobre cómo puede encajar la automatización de procesos en este mundo. Te recomiendo que leas el Capítulo 7 al principio, ya que es el que mejor demuestra cómo la forma de pensar sobre la automatización de procesos en este libro es diferente de muchos enfoques tradicionales en este campo.

  • Si eres un responsable de TI que se ha visto arrastrado a un proyecto de automatización de procesos o de negocio en un momento de desprevenido, quizá quieras empezar por el Capítulo 12, ya que te dará algunas orientaciones sobre cómo dar forma a tu viaje.

  • Si te parece bien seguir mi recomendación de utilizar un motor de flujo de trabajo basado en BPMN, puedes saltarte el Capítulo 5.

Convenciones utilizadas en este libro

En este libro se utilizan las siguientes convenciones tipográficas:

Cursiva

Indica nuevos términos, URL, direcciones de correo electrónico, nombres de archivo y extensiones de archivo.

Constant width

Se utiliza en los listados de programas, así como dentro de los párrafos para referirse a elementos del programa como nombres de variables o funciones, bases de datos, tipos de datos, variables de entorno, sentencias y palabras clave.

Consejo

Este elemento significa un consejo o sugerencia.

Nota

Este elemento significa una nota general.

Advertencia

Este elemento indica una advertencia o precaución.

Aprendizaje en línea O'Reilly

Nota

Durante más de 40 años, O'Reilly Media ha proporcionado formación tecnológica y empresarial, conocimientos y perspectivas para ayudar a las empresas a alcanzar el éxito.

Nuestra red única de expertos e innovadores comparten sus conocimientos y experiencia a través de libros, artículos y nuestra plataforma de aprendizaje online. La plataforma de aprendizaje en línea de O'Reilly te ofrece acceso bajo demanda a cursos de formación en directo, rutas de aprendizaje en profundidad, entornos de codificación interactivos y una amplia colección de textos y vídeos de O'Reilly y de más de 200 editoriales. Para más información, visita http://oreilly.com.

Cómo contactar con nosotros

Dirige tus comentarios y preguntas sobre este libro a la editorial:

  • O'Reilly Media, Inc.
  • 1005 Gravenstein Highway Norte
  • Sebastopol, CA 95472
  • 800-998-9938 (en Estados Unidos o Canadá)
  • 707-829-0515 (internacional o local)
  • 707-829-0104 (fax)

Puedes acceder a la página web de este libro, donde se recogen erratas, ejemplos y cualquier información adicional, en https://oreil.ly/Practical_Process_Automation.

Envía un correo electrónico para comentar o hacer preguntas técnicas sobre este libro.

Para obtener noticias y más información sobre nuestros libros y cursos, consulta nuestro sitio web en http://www.oreilly.com.

Encuéntranos en Facebook: http://facebook.com/oreilly

Síguenos en Twitter: http://twitter.com/oreillymedia

Míranos en YouTube: http://youtube.com/oreillymedia

Agradecimientos

Quiero dar las gracias a todas las personas que me han ayudado a escribir este libro. En primer lugar, a todas las personas que he conocido a lo largo de la última década, por ejemplo en la comunidad Camunda, en proyectos de clientes o en conferencias. Innumerables discusiones me ayudaron a comprender el mundo de la automatización de procesos, y los constantes comentarios dieron forma no sólo a la plataforma Camunda, sino también a mi material didáctico en torno a ella.

Quiero dar las gracias a todas y cada una de las personas de Camunda. Camunda no sólo es un lugar estupendo para trabajar, sobre todo por todos sus magníficos compañeros, sino que también está cambiando el mundo de la automatización de procesos. Lo que hemos conseguido con la empresa es mucho más de lo que podría haber soñado cuando la cofundé. Y cada día sigue siendo muy divertido, así que sigamos rodando :-)

Además, quiero dar las gracias a mi buen amigo Martin Schimak, que me ayudó a dar forma a los pensamientos iniciales plasmados en este libro. Martin también fue un gran sparring para estructurar el libro. También estoy muy agradecido a todos los magníficos revisores técnicos que me proporcionaron comentarios superútiles. Estas personas invirtieron un montón de tiempo libre ayudando a mejorar este libro, así que gracias a (enumerados alfabéticamente) Tiese Barrell, AdamBellamare, Rutger van Bergen, Colin Breck, Joe Bowbeer, Norbert Kuchenmeister, Kamil Litman, Chris McKinty, Surush Samani, Volker Stiehl y todos los demás.

Por supuesto, también doy las gracias a mi familia por haber soportado no sólo una pandemia, sino también que yo trabajara en este libro. Y por último, pero no por ello menos importante, quiero dar las gracias a todo el equipo de O'Reilly por hacer que el proceso de escribir el libro no sólo fuera indoloro, sino bastante agradable.

Get Automatización práctica de procesos now with the O’Reilly learning platform.

O’Reilly members experience books, live events, courses curated by job role, and more from O’Reilly and nearly 200 top publishers.