We kick off the season on software architecture from scratch with an overview of what we will cover. We also set the table for the assumptions we will make as we walk through our topics. Each topic will cover an area or two of architecting software that we need to address when we start at the beginning. These are not always rocket science. However, details matter, and we need to keep them in mind while mapping out our solution.
Software Architecture Requires QuestioningWe have many ways we can approach creating a solution. However, this season will assume we asked a lot of questions and got enough answers to build out a detailed list of requirements. This is a critical step when creating software and worth its own season of examination. Nevertheless, we will still be asking questions as part of architecting the solution. There are layers of understanding we need to achieve in order to design the best system for any set of requirements. When you think about requirements as answering the "what" questions, then software architecture will need to address the "how."
Constraints and EnvironmentsWe will see themes of questions as we move through this season. One is the idea of constraints. These may be due to resources, user experience needs, and technical considerations. However, we will often go back to questions the help us determine when, where, and how many limitations need to be taken into account with our architecture.
The Tip of The IcebergThere is a lot to cover when we tackle architecting a solution. It requires a broad amount of technical knowledge and robust experience. In this episode, we touch on some of the topics we will cover. However, this is just the tip of the iceberg. We will have numerous issues that feed into our architectural decisions and crafting before we get to the end of the season.