Luca Morelli
Software engineer and analyst
Team lead

Software architect and solution architect: a role that changes with the size of the project.

Who decides how a cloud application is built? On a small project it is the developer who writes it; on a large programme it is a group of people who do nothing else. This page is an introduction to the subject: it brings together my view of these roles, based on the projects I have worked on, and how I would operate if I were asked to take them on. It covers only part of my career: my main role remains that of a developer.

The work matters more than the titleThe same names mean different tasks from one company to another: what counts is who makes the decisions and who answers for them.
Decisions that lastWhere the software runs, who sees the data, how it is updated: these choices are costly to change later.

Two levels, before the individual project

A production system has to meet precise goals: performance, reliability, security and compliance, traceability, manageability, flexibility and cost. Meeting them takes work on two levels, before you even reach the application's features.

The solution architect defines the architecture of the services: which cloud services to use and how to connect them to meet those goals. Microsoft describes the role as advising stakeholders and translating business requirements into technical designs, working with developers, administrators, and security and data specialists.

The software architect defines the common software rules that make those choices work: how each component writes logs and uses the monitoring tools, how it uses the services, how it handles errors and configuration.

Neither level is enough without the other. Monitoring has to be planned in the architecture, but useful data only arrives if development follows precise rules too. With restricted access to production this is obvious: when something goes wrong, you can rely only on what was planned beforehand.

Cloud experience

For both roles, these services and rules almost always need assessing: they form a foundation, almost a framework in its own right, for a project that makes use of the cloud environment, can grow and can be monitored.

Once that is done, you move into the individual project and work out what it really needs. The software architect chooses which architecture to develop, for example whether to use Clean Architecture, and defines the development rules; together, the team chooses the services and cloud patterns that suit the case. Depending on the situation, you start with a prototype (proof of concept) that checks these rules are being met, then move on to development proper.

How I organise code

The project's needs can also change the foundation: regulated data or high volumes may call for different services.

These are not standard titles. Large organisations add the enterprise architect, who works on the systems as a whole and on technology strategy rather than on a single project.

The role did not begin with the cloud, but today the two subjects almost always meet. In the cloud, infrastructure is not a one-off purchase: you choose from many services, describe them in versioned files and pay every month. An architecture decision also becomes a decision about cost, risk and dependence on a supplier.

Four different situations

01

Small projects: architecture is part of development

On a small project there is no separate role: the people developing the software make the architecture decisions as they go.

The decisions still exist: where to host the application, how to separate its parts, which services to add. One experienced person who makes them and answers for them is enough; a separate role would cost more than it returned.

What it takes

  • Someone who decides and answers for the decisions
  • A few written decisions, with the reasons
  • A structure that can grow later

My role

Here I made the decisions myself, working directly with the client.

An example

02

More complex projects: defining the solution and preparing the ground

When there are several systems and many developers, architecture becomes demanding work in its own right.

Deciding what the solution will look like is not enough: you have to put in place what allows the team to work. Common rules in the code, for example on logs, monitoring and the use of services; separate development, test and production environments, described with infrastructure as code; pipelines that compile, check and release; rules on who can access what; a controlled path for database changes. All of this then has to be maintained, because it changes along with the project.

At this size, the same person or a small group often both defines and builds. As the project grows, maintenance passes to DevOps or platform specialists, and the architect steers their choices.

What it takes

  • Repeatable infrastructure and releases that do not depend on someone's memory
  • A way to try every change without depending on the cloud
  • Dedicated time: this is not something to do on the side of development

My role

The solutions of this kind that I have worked on were already in operation. I worked on them as part of the team, but I do not consider them my own creation.

03

Large programmes: dedicated roles, often a team

On very large programmes, software architects and solution architects do nothing else, and one person is often not enough.

Microsoft distinguishes platform teams, which build the common foundation, from teams that govern rules and security and from those that develop the applications. SAFe, a framework for large-scale agile work, provides for an architect at each level, from the group of teams to the portfolio, and notes that the role is often held by a small team.

Dedicated does not mean separate. Martin Fowler points out that architecture is deeply intertwined with programming: when the people deciding move away from the code, their choices lose touch with what is really happening.

My role

On programmes of this scale I have worked as a developer and team lead, not as an architect. I have applied architectures defined by others, seen their consequences at close range and worked on systems already in operation.

Cloud experience

04

Moving a company to the cloud

There is also work that goes beyond development: moving a company's activities and resources to the cloud.

It starts with analysing the situation: applications, servers, data, contracts, people, and why moving them is worthwhile. Not everything moves in the same way: AWS lists seven strategies, including retiring what is no longer needed, leaving in place what is not ready and replacing with an existing product. Microsoft places migration within a broader journey: strategy, plan, preparing the common foundation, adoption, governance, security and management.

On this journey, the solution architect turns the goals into architectures and leads the technical side. The decisions remain with the company, which also involves finance, security and compliance.

My role

I have not worked in this area; I mention it because it is another meaning of the term. My migration work concerns individual applications.

How I migrate them

The questions that matter to a company

If I were asked to take on this role, I would start from these questions. They are only the main ones: each answer can open up others, and the analysis and decisions always depend on the context and the project.

Where does the software run?

Azure offers services for web applications, for software in containers, for functions triggered by events, and Kubernetes. Kubernetes gives the most control and requires more management: it should be chosen for a concrete need, not out of habit.

How long can it be down, and how much data can be lost?

Without these figures, along with expected users and budget, nothing can be sized. More reliability costs more.

Who can see production data?

Compiling the software does not entitle anyone to read customer data. Indirect routes count too: logs, backups, exports, diagnostic tools.

Can a change be tried without the cloud?

If every test needs a release, the team slows down and costs rise. The software has to be organised so it can be tried on the developer's computer; some things, such as networking and identity, are still checked in the cloud.

Who creates the resources and who releases the software?

These are separate activities, not alternatives. The pipeline compiles, checks and releases the software; Terraform or Bicep describe the resources and are normally run by the same pipeline. They are worth using even for a single project, and become essential when the solution has to be installed in several copies. If an operation succeeds, the resources exist: that does not mean the service works.

Where do developers work from?

If the services can only be reached on a private network, you need a VPN, Zero Trust access or a cloud PC connected to the network. Costs and management change, the principle does not: every change must remain verifiable with independent tests, and being on the network gives no access to production data.

How do database changes reach production?

In development, databases are sometimes changed by hand. Those changes have to be collected, reviewed and versioned, never copied automatically.

What if the release goes wrong?

Going back to the previous version of the software is usually possible; with data it is much harder. It has to be decided beforehand.

A release across several systems

What does it really cost?

A budget on Azure warns you, but does not stop consumption. A service that switches off when idle does not bring spending to zero: data, network and logs remain. You have to look at the whole system, including the time of the people who run it.

One installation per customer or a shared one?

For those selling software as a service, a dedicated copy makes it easier to separate data and restore it, but it raises costs considerably and multiplies updates. You need a register of installations, updates in waves and procedures for customers joining and leaving.

What ends up in an AI model? Data sent to the model falls within the same limits as production data. The guarantees depend on the service and how it is configured.

AI security

How I would work in this role

  1. Numbers first

    Availability, volumes, regulated data, budget. Without these, any product choice is premature.

  2. Written decisions

    What was chosen, what the alternatives were, why, and how to go back.

  3. A prototype, when needed

    One feature taken from the code to a real environment, with tests, release and monitoring, to check that the project meets the rules before development proper.

  4. Like-for-like comparisons

    Two solutions are compared on the same case and with the same requirements: idle cost, release, recovery.

  5. Failure drills

    A backup is actually restored, and a release interrupted halfway is simulated.

This is a way of working, not a guarantee of results.

My experience, in brief

This profile applies to only some of the projects on my CV.

  • I defined architecture and technical choices, as sole developer, with direct clients (C-06, C-07).
  • I worked within solutions already in operation, as part of the team: releases across several systems, diagnosis with restricted production access, infrastructure as code (C-01, C-05, Cloud experience).
  • I have not worked on moving an entire company to the cloud: my migrations concern individual applications (Migration).

Supporting sources

The sources describe roles and services. The four situations and the way of working in this role are my own reading, based on experience, not an official classification.

Content last updated

Do you need someone to take on this role on a project?

Detailed CV and references available on request.