Goodreads helps you follow your favorite authors. Be the first to learn about new releases!
Start by following Neal Ford.
Showing 1-30 of 47
“Some presentation authors justify this by saying, “The photographer already knew it was going to be an uncredited effort and it really isn’t that hard to take a good photograph.”
― Presentation Patterns: Techniques for Crafting Better Presentations
― Presentation Patterns: Techniques for Crafting Better Presentations
“The problem with a completely new programming paradigm isn’t learning a new lan‐
guage. After all, everyone reading this has learned numerous computer languages—
language syntax is merely details. The tricky part is learning to think in a different way.”
― Functional Thinking: Paradigm Over Syntax
guage. After all, everyone reading this has learned numerous computer languages—
language syntax is merely details. The tricky part is learning to think in a different way.”
― Functional Thinking: Paradigm Over Syntax
“Life’s too short for malloc.”
― Functional Thinking: Paradigm Over Syntax
― Functional Thinking: Paradigm Over Syntax
“Consider something like a failover for a database from a hard failure. While the recovery itself might be fully automated (and should be), triggering the test itself is likely best done manually. Additionally, it might be far more efficient to determine the success of the test manually, although developers should still encourage scripts and automation.”
― Building Evolutionary Architectures: Automated Software Governance
― Building Evolutionary Architectures: Automated Software Governance
“When you give a presentation, play the role of mentor, not the role of hero. The audience is the hero. Motivation”
― Presentation Patterns: Techniques for Crafting Better Presentations
― Presentation Patterns: Techniques for Crafting Better Presentations
“Security—even if supervised by another part of the organization—”
― Building Evolutionary Architectures: Automated Software Governance
― Building Evolutionary Architectures: Automated Software Governance
“We use the term architecture characteristics throughout the book to refer to nondomain design considerations. However, many organizations use other terms for this concept, among them nonfunctional requirements, cross-cutting requirements, and system quality attributes.”
― Building Evolutionary Architectures: Automated Software Governance
― Building Evolutionary Architectures: Automated Software Governance
“Part of the traditional reasoning behind making long-term plans was financial; software changes were expensive.”
― Building Evolutionary Architectures: Automated Software Governance
― Building Evolutionary Architectures: Automated Software Governance
“the stage lighting prevents you from seeing the audience well. You construe the attendees’ silence to mean, “We already know what you’re saying.”
― Presentation Patterns: Techniques for Crafting Better Presentations
― Presentation Patterns: Techniques for Crafting Better Presentations
“But given the choice, I’ll optimize for the live presentation. Several”
― Presentation Patterns: Techniques for Crafting Better Presentations
― Presentation Patterns: Techniques for Crafting Better Presentations
“While many developers are accustomed to blissful ignorance for bedrock abstractions such as memory, they are less accustomed to similar abstractions appearing at a higher level. Yet these higher-level abstractions serve the same purpose: handling the mundane details of machinery while freeing developers to work on unique aspects of their problems.”
― Functional Thinking: Paradigm Over Syntax
― Functional Thinking: Paradigm Over Syntax
“All too often architects make a decision that is the correct decision at the time but becomes a bad decision over time because of changing conditions like dynamic equilibrium. For example, architects design a system as a desktop application, yet the industry herds them toward a web application as users’ habits change. The original decision wasn’t incorrect, but the ecosystem shifted in unexpected ways.”
― Building Evolutionary Architectures: Support Constant Change
― Building Evolutionary Architectures: Support Constant Change
“There is one thing that will separate the pack into winners and losers: the on-demand capability to make bold and decisive course-corrections that are executed effectively and with urgency.”
― Software Architecture: The Hard Parts: Modern Trade-Off Analyses for Distributed Architectures
― Software Architecture: The Hard Parts: Modern Trade-Off Analyses for Distributed Architectures
“including requirements around performance, reliability, security, operability, coding standards, and integration, to name a few.”
― Building Evolutionary Architectures: Automated Software Governance
― Building Evolutionary Architectures: Automated Software Governance
“Holistic fitness functions run against a shared context and exercise a combination of architectural aspects. Developers design holistic fitness functions to ensure that combined features that work atomically don’t break in real-world combinations.”
― Building Evolutionary Architectures: Automated Software Governance
― Building Evolutionary Architectures: Automated Software Governance
“The mere fact that a picture appears on the Internet doesn’t give you the freedom to use it in your presentation,”
― Presentation Patterns: Techniques for Crafting Better Presentations
― Presentation Patterns: Techniques for Crafting Better Presentations
“Don’t mistake the function part of our definition as implying that architects must express all fitness functions in code.”
― Building Evolutionary Architectures: Automated Software Governance
― Building Evolutionary Architectures: Automated Software Governance
“For any dimension in our architecture that requires protection from the side effects of evolution, we create fitness functions. A common practice in microservices architectures is the use of consumer-driven contracts, which are atomic integration architecture fitness functions.”
― Building Evolutionary Architectures: Support Constant Change
― Building Evolutionary Architectures: Support Constant Change
“we formerly considered all the different architecture verification mechanisms as separate—code quality versus DevOps metrics versus security, and so on. Fitness functions unify many existing concepts into a single mechanism, allowing architects to think in a uniform way about many existing (often ad hoc) “nonfunctional requirements” tests. Collecting important architecture thresholds and requirements as fitness functions allows for a more concrete representation for previously fuzzy, subjective evaluation criteria. We leverage a large number of existing mechanisms to build fitness functions, including traditional testing, monitoring, and other tools. Not all tests are fitness functions, but some tests are—if the test helps verify the integrity of architectural concerns, we consider it a fitness function.”
― Building Evolutionary Architectures: Automated Software Governance
― Building Evolutionary Architectures: Automated Software Governance
“most companies bigger than a certain size have an entire department dedicated to managing domain evolution, called quality assurance: ensuring that existing functionality isn’t negatively affected by changes.”
― Building Evolutionary Architectures: Automated Software Governance
― Building Evolutionary Architectures: Automated Software Governance
“An Infodeck isn’t meant to be displayed as a slide show; rather, it is meant to be consumed by a single person—either at a computer, on a printout, or on an alternate display like a tablet computer—as a series of discrete narrative elements. An”
― Presentation Patterns: Techniques for Crafting Better Presentations
― Presentation Patterns: Techniques for Crafting Better Presentations
“Data sovereignty per service is the nirvana state for a distributed architecture.”
― Software Architecture: The Hard Parts: Modern Trade-Off Analyses for Distributed Architectures
― Software Architecture: The Hard Parts: Modern Trade-Off Analyses for Distributed Architectures
“Some dimensions fit into what are often called architectural concerns (the list of “-ilities” referred to earlier),”
― Building Evolutionary Architectures: Automated Software Governance
― Building Evolutionary Architectures: Automated Software Governance
“Bounded contexts are business workflows, and often the entities that need to cooperate in a transaction show architects a good service boundary. Because transactions cause issues in distributed architectures, if architects can design their system to avoid them, they generate better designs.
........
Building transactions across service boundaries violates the core decoupling principle of the microservices architecture (and also creates the worst kind of dynamic connascence, connascence of value). The best advice for architects who want to do transactions across services is: don’t! Fix the granularity components instead. Often, architects who build microservices architectures who then find a need to wire them together with transactions have gone too granular in their design. Transaction boundaries is one of the common indicators of service granularity.”
― Software Architecture Fundamentals Part 1
........
Building transactions across service boundaries violates the core decoupling principle of the microservices architecture (and also creates the worst kind of dynamic connascence, connascence of value). The best advice for architects who want to do transactions across services is: don’t! Fix the granularity components instead. Often, architects who build microservices architectures who then find a need to wire them together with transactions have gone too granular in their design. Transaction boundaries is one of the common indicators of service granularity.”
― Software Architecture Fundamentals Part 1
“practices invalidate that premise by making change less expensive”
― Building Evolutionary Architectures: Automated Software Governance
― Building Evolutionary Architectures: Automated Software Governance
“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?”
― Building Evolutionary Architectures: Support Constant Change
― Building Evolutionary Architectures: Support Constant Change
“Don’t try to use this pattern solely to tame a big, unruly subject. This technique doesn’t scale upward in information density very well; the visual metaphors break down, and you are left with a lot of distracting, visually noisy, seemingly random movement. Mechanics”
― Presentation Patterns: Techniques for Crafting Better Presentations
― Presentation Patterns: Techniques for Crafting Better Presentations
“Stage lighting makes it easier for the audience to see you but much harder for you to see it.”
― Presentation Patterns: Techniques for Crafting Better Presentations
― Presentation Patterns: Techniques for Crafting Better Presentations





