Too Long; Didn't Read
Software Architecture is the shared understanding that the expert developers have of the system design. Architecture is about the decisions you wish you could get right early in a product or project lifecycle. Software with well-defined architecture leads to good quality software and that leads to high velocity over time. Architectural investment pays off with the ease of developing new features in the short term. Common design principles mentioned above are the guiding light in software development and provides a very good reference point, but there will always be an exception where these principles may not fully make sense.