19. Architecture

Architecture

The architecture selected for an application may not have much impact on the ability or way in which a lot of software development practices can be implemented, but it has a very large impact on a few of the other elements that do impact practices. The architecture partially determines or limits how and where the software will be deployed. It may be deployed to desktops, or as a web application, or as a web site, or embedded in hardware, or as an extension to another product, or delivered through an app store. Subsequently, the location to where the solution is deployed greatly affects the DevOps used to achieve that deployment. Although the choice of the best architecture is very important to the success of the solution, and it greatly affects the tools, techniques, frameworks, and languages used to build the solution, it does not have a broad effect on which software development practices will be most effective for the solution’s development.

What is the architecture of the solution in your context?
  • A multi-layered architecture
  • A microservices based web solution
  • A client-server application
  • A monolithic application
  • A peer-to-peer application
  • A plugin or extension
  • A messaging solution
  • A REST API
  • Software embedded in a controller. (Software in a Garmin GPS or street traffic signal)
Deployed as
  • A web application
  • A desktop application
  • A desktop application with a database
  • A static web site
  • A phone app
  • A combination of many of the above*