The Fullstack Architect role is directly inspired by the Full Stack Web Development movement in which a Fullstack developer is able to work on both front end and back end of a web application thus the fullstack name. The important idea here was that to develop a good web application you have to know not only the front but also the back end. We basically extended this idea to the architecture: to design a good architecture you need to know all the layers (from top to bottom) on which your product will rely. We’re not saying here that the Fullstack Architect has to be a subject matter expert of all the stacks but a good knowledge of them definitively helps. And when we say from top to bottom, we mean from infrastructure (hosting and storage) and network (as we’re building more and more distribution systems) up to middlewares (databases, messages oriented middleware …) and development technologies and not forgetting Continuous Integration and Continuous Delivery practices.
Again, defining a role is always difficult as each company can have its own roles set already or can have its perspective and specificities. We tried to describe the main activities we think a Fullstack Architect should be doing. It’s perfectly fine if in your organization these activities are performed by another role.
Within the product team, she/he is the Technical Architect covering all stacks (Application, Data, Integration, Infrastructure, Security …) for the product:
-
Design the architecture across all technical layers taking into account the ecosystem in which his products will operate (end 2 end perspective with the involvement of other fullstack architects), the product lifecycle (from cradle to grave) and operability concerns to ensure products will be operable in production.
-
Manage, with the Product Architect, the Architecture Runway of his product to deliver the required enablers supporting business needs, non functional requirements and manage the product technical debt (obsolescence of all underlying technical components for instance).
-
Propose new studies (or spyke) to cover needs for which standard solutions are irrelevant. This set of studies must be part of the architecture runway and this the product backlog.
-
Co-animate the decision-making process for his products: from identification of decisions to resolution up to communication. Good decisions are understood and supported by teams and the Fullstack Architect plays a key role here.
-
Provide the “just right” Architecture document to help communicate how the product was designed.
-
Support, explain, promote and communicate the technical architecture of the product.
-
Organize all architecture ceremonies recommended by the Continuous Architecture approach (such as weekly architecture, scoping 360 architecture design workshops …)
We propose the below visual to recap these different activities and the other roles with which a fullstack architect will be connected.