“Another way we can enable more market-oriented outcomes is by enabling product teams to become more self-sufficient by embedding Operations engineers within them, thus reducing their reliance on centralized Operations.”
Source: The DevOps Handbook: How to Create World-Class Agility, Reliability, and Security in Technology Organizations
“Instead of merely documenting the specifications of the production environment in a document or on a wiki page, we create a common build mechanism that creates all of our environments, such as for development, test, and production. By doing this, anyone can get production-like environments in minutes, without opening up a ticket, let alone having to wait week.s”
Source: The DevOps Handbook: How to Create World-Class Agility, Reliability, and Security in Technology Organizations
“Make infrastructure easier to rebuild than to repair”
Source: The DevOps Handbook: How to Create World-Class Agility, Reliability, and Security in Technology Organizations
“The perfect kind of architecture decision is the one which never has to be made”
“If the application is event-driven, it can be decoupled into multiple self-contained components. This helps us become more scalable, because we can always add new components or remove old ones without stopping or breaking the system. If errors and failures are passed to the right component, which can handle them as notifications, the application can become more fault-tolerant or resilient. So if we build our system to be event-driven, we can more easily achieve scalability and failure tolerance, and a scalable, decoupled, and error-proof application is fast and responsive to users.”
Source: Learning Reactive Programming with Java 8
“[...] you shouldn't be uneasy about any parts of the architecture. It shouldn't
contain anything just to please the boss. It shouldn't contain anything that's hard for you
to understand. You're the one who'll implement it; if it doesn't make sense to you, how
can you implement it?”
Source: Code Complete: A Practical Handbook of Software Construction
“The component structure cannot be designed from the top down. It is not one of the first things about the system that is designed, but rather evolves as the system grows and changes.”
Source: Clean Architecture
“Evolving a widely reused resource also requires coordination because changes must be compatible with all existing systems or users. Such coordination can slow down innovation... Some digital companies have even begun to explicitly favor duplication because their business environment rewards economies of speed.”
Source: The Software Architect Elevator: Redefining the Architect's Role in the Digital Enterprise
“Despite being roughly twice as many characters, it requires a fraction of the mental effort when you read it”
Source: The Programmer's Brain
“Even if the ecosystem doesn’t change, what about the gradual erosion of architectural characteristics that occurs? Architects design architectures, but then expose them to the messy real world of implementing things atop the architecture. How can architects protect the important parts they have defined?”
Source: Building Evolutionary Architectures: Support Constant Change