Summary
Software architecture is a set of characteristics that combines both the technical and business requirements, with which we will be able to define a skeleton that will help us to build a performant, secure, and easily extendable system.
Software architecture is not a one-time decision but a part of a continuous process.
A successful architecture builds a system used in real-life scenarios by real users and is validated by all relevant stakeholders. You can have the best system technically, but if it does not fulfill the needs of stakeholders, your effort is in vain.
Stakeholders are not only just users and should be part of the architecting process. Identify stakeholders, try to understand what they need, define the precise requirements, and implement them using quality attributes.
The next chapter will examine some popular patterns used in defining the architecture.