In an ideal world, agile teams do all design work collectively, microservices allow a system's architecture to emerge. The crowd is king. Software architects are dead, really dead! But a system must handle millions of events fast. Users expect Martini availability — any time, any place, anywhere! The crowd is puzzled, really puzzled. Long live software architects!
This talk outlines the new role and responsibilities of architecture and architects in the face of IoT, the cloud and the ongoing digitization and digitalization of business.
Target Audience: Architects, Developers, Project Leads
Prerequisites: Software design and development experience
Who needs software architects? In an ideal world, agile teams do all design work collectively. Microservice architectures allow services and apps to be developed and operated independently of one another by small teams. Technologies like PowerApps and IFTTT enable non-software professionals to connect these apps to other apps and services. The system’s architecture is defined emergently by the ecosystem. The crowd is king. Software architects are dead, really dead!
But the devil is in the detail. Services, apps and infrastructure need to be developed and deployed efficiently at global scale. They must be able to integrate and interoperate with other services and apps, whether known, partly known or unknown. Yet they must be resilient in the face of failure or a misbehaving environment. The entire IoT system must handle millions of events in a short period of time and provide a consistent and competitive user experience. Users simply expect the system to work with Martini availability — any time, any place, anywhere! That’s a challenge. The crowd is puzzled, really puzzled. Long live software architects!
Obviously the role and meaning of architecture, and therefore the role and responsibilities of architects, have evolved during the rise of the Internet of Things and the technologies on which it is built. With the availability of cloud computing, big data, apps, microservices and open-source software for many computational domains, aspects that were an architectural decision in the past are now a minor detail because they are provided out-of-the-box. Agility empowered developers to take responsibility for their code and to cultivate an architecture for their system that emerges over time. There is no need for a nominated architect in such power teams.
On the other hand, what was a detail in the past can become a development bottleneck in the digital age. Communication in the IoT is remote, which requires an explicit design between the things. Service interfaces, service interactions, and service integration are no longer centrally coordinated, but matter when plugging services together to an entire system. Security and resilience are more important quality attributes in system design than they were in the past. The evolvability of a software regarding new technologies and market demands is essential to keep pace in an agile software business. Digital natives expect user experience, not just a GUI. With DevOps, the quality of the code, the choice of tools, and the structure of teams are all things that can dominate or reduce cost and enable agility. There is an endless list of novel architectural aspects to consider in the IoT world.
Architecture concerns many things, including the significant decisions that shape a system. These decisions can be few, but they matter, and they may change with time. Sometimes you can see the architecture in a PowerPoint diagram or a slogan, but most often you see it in the code and the config. Architecture involves organisation, prioritisation and evaluation — which details are the significant ones, which are not? And this changes with time, which means the concerns of architecture are ongoing and need to be integrated into the process.
This talk outlines the new role and responsibilities of architecture and architects in the face of IoT, the cloud and the ongoing digitization and digitalization of many non-software domains.
Topics covered include:
* Who needs an architect? On the role of architecture and architects (in agility) and why it is important
* How modern software technology, new architecture styles, and the IoT impact the role of software architects
* The fall of Architectus Reloadus -- reflections on an architect profile of the Pre-Agile era, and why it is threatened by extinction. Basis for the reflection is the characterization of Architectus Reloadus in Martin Fowler’s paper (Who Needs an Architect?)
* Architectus Oryzus -- reflections on the predominant architect species of today, and why Architectus Oryzus is not fully fit for the future. Basis for the reflection is the characterization of Architectus Oryzus in Martin Fowler’s paper (Who Needs an Architect?) and its mapping to the Digitalized, IoT world
* The rise of Architectus Digitus -- a discussion of a new species of architects in the Digital Age. Focus are in particular new and rediscovered architect responsibilities, for example, design for evolution and continuous change, design between things, end-to-end thinking, user experience, scalability, availability, security, and resilience.
* Software Architects are dead! Long Live Software Architects!