This page contains posts by Jayme related to the architecture of digital products and services. Software architecture is the up-front selection of tools, patterns, and technologies that will be used to develop software on a project.
Rather than make all decisions about tools, patterns, and technologies mid-project – software architecture leverages the skill of experienced members of the team to make some decisions before starting. This doesn’t mean these can’t change, and they often do, it simply helps a team get started with some solid guidance from the get go.
Products of significant complexity that involve multiple components, or use microservices, are especially in need of software architecture decisions as in lieu of this the complexity of a solution can quickly fall into technical debt that must be paid back at the expense of adding value.
Any team that has a designated person who is the Software Architect should try and select someone who is willing to solicit ideas from anyone on the team. This person should be an advocate for others’ contributions to software architecture and balance their experience with leveraging the ideas of their team members.