User-driven (Software) Architecture is next step in software architecture. It uses microservices and cloud based architectures as components and its purpose is to provide tools for users to automate their daily tasks without huge integration projects.
Currently this type of activities has been driven by IT departments as different type of RPA (Robotic Process Automation). The purpose has been to automate simple work processes and help end users to focus on more productive tasks.
The biggest problem in these RPA projects has been the lack of real integration between different applications and systems. Applications are “integrated” with each other using copy-paste integrations and guess which button I try to click now. In real world situations, many of the solutions don’t offer any kind of way to communicate with application data or logic, so automations are done by mimicking user actions with keyboard and mouse. This leads to fragile automations that can break easily.
User-driven Software Architecture (UDA) addresses to this problematic area. It provides architecture where users can themselves automate their daily activities without difficult integration and automation projects with the tools their IT-department can support and monitor. User-driven Architecture is based in following principles:
- Interfaces. Each application or system must provide API (Application Programming Interface) and documentation for API in OpenAPI Specification (OAS) format. See more about OAS from https://swagger.io/
- Security. Each application or system must provide authentication (OAuth 2.0). Each application or system should also provide role based authorization to operations and data provided using interface. This means that users should only see the data they are entitled to see. In many applications or systems this has been implemented in user interface, not inside of application logic.
- Workflow. Each organization should have workflow service that users can utilize. This workflow can be for example Microsoft Flow or Amazon Simple Workflow Service. It can be even some EAI product that will be configured to connect different interfaces that each application or system provides.
- Federation. This is optional, but recommended. Federation means cross organization communication. Each organization can publish selected set of interfaces and/or workflows to their clients or other interest groups. For example, a client could order a product automatically from their internal workflow and organizations internal workflow can be started to make an order to product supplier, if number of products in stock is getting too low.
User-driven Software Architecture (UDA) focuses to design and build solutions from user’s perspective. Each application should be easy to automate without using user interface. This type of thinking allows both users and organizations to automate simple and repeatable tasks and let users to focus on matters that will help organizations to be more profitable.